[어만오] error: ts2304

HOU·2024년 3월 19일
0

frontend

목록 보기
13/13

어쩌다 만난 오류의 줄임말 [어만오]

ts2304오류를 만나게됫다.

nest.js 와 react를 활용한 로그인 서비스를 만드는 블로그 글을 봣는데 nest는 친절하게 어떻게 만드는지 잘 설명되어 있었는데 react에 대해서는 별다른 설명이 없었다. 그냥 내 github repository 참고해라 자식들아 정도? 그래서 일단 react project를 만들기 위해서 create-react-app 을 사용해서 만들었는데 참고하려는 코드는 타입스크립트 기반이라 나도 타입스크립트를 사용해서 따라 만들고 싶었다. 그래서 이것저것 설정하다가 만나게 되었다!

ts2304 오류를 해결하기 위해서

  1. @types/node를 설치하라는 문구를 보았다. 설치를 해보았으나 엄청난 오류를 만날 수 있었다. 나는 ts2304의 해결을 원하지 @types/node 설치 오류를 해결하고 싶은게 아니였다 과감하게 pass!
  2. tsconfig.json 파일을 생성해서 그 안에 설정 파일을 넣어 보라는 내용!
{
  "compilerOptions": {
    "target": "es5",
    "lib": ["es6", "dom"],
    "module": "commonjs",
    "jsx": "react-jsx"
  },
}

이렇게 넣어봣다. 그리고 저장하니 oh! error 내용이 변화했다.

새롭게 만난 error

[Error] 'React' refers to a UMD global, but the current file is a module. Consider adding an import instead.
'React'는 UMD 전역을 참조하지만 현재 파일은 모듈입니다.

오.. 그래서 검색을 해서 찾아보니 tsconfig.ts파일에 아래 내용을 추가하라고 했다.

{
  "compilerOptions": {
    "target": "es5",
    "lib": ["es6", "dom"],
    "module": "commonjs",
    "jsx": "react-jsx"
  },
    "include":["src", "**/*.tsx"]
}

오 해결!

에러가 사라졌다. 허허허 해결되서 기쁜데 왜 해결 된거지??!!
include는 include 안에 작성된 파일을 컴파일러에 포함시킨 다는 다는데,
그럼 나의 파일들은 기본적으로 typescript 컴파일러에 포함되지 않았나?

왜그런거지? 처음부터 typescript용 react를 사용하지 않아서 그랬을지도 모르겠다.
명확한 이유가 뭘까~~~? 아시는 분 댓글로 좀 남겨주세요. ㅠ

참고

iberis님 velog
sooran님 velog

profile
하루 한 걸음 성장하는 개발자

0개의 댓글