[프로젝트]TypeScript tsconfig 설정

choiuhana·2021년 9월 15일
0

Amubook project

목록 보기
2/3

이번에 프로젝트 초기세팅을 하면서 TS 설정을 CNA를 그대로 가져와썻지만 설정항목이 무엇인지 확인하고 쓰고자 알아보았다.

{
  "compilerOptions": {
    "target": "esnext", //ecma version
    "lib": ["dom", "dom.iterable", "esnext"], // 컴파일에 포함될 라이브러리 목록
    "allowJs": true, // js파일 ts에 import 가능 여부
    "skipLibCheck": true, // *.d.ts 파일 type검사 skip
    "strict": true, // 모든 stric 타입 검사 여부
    "forceConsistentCasingInFileNames": true, //동일 파일 참조에 대해 일관성 없는 대소문자를 비활성화
    "noEmit": true, // 컴파일러가 JavaScript 파일 등의 출력 파일들을 만들어 내지 않도록 하는 설정
    "esModuleInterop": true, //런타임 Babel 생태계와의 호환성
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true, //확장자가 .json인 모듈의 import를 허용하는 설정
    "isolatedModules": true, //추가 검사를 수행하여 별도의 컴파일 (예를 들어 트랜스파일된 모듈 혹은 @babel/plugin-transform-typescript) 이 안전한지 확인
    "jsx": "preserve" //JSX 코드를 어떻게 컴파일할지 결정(preserve : .jsx 파일로 컴파일 된다. (JSX 코드가 그대로 유지됨))
  },
  "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
  "exclude": ["node_modules"]
}

기타 설정은 설명을 보고 알겠는데 noEmitesModuleInterop 두가지는 정말 와닿지가 않더라... 결국 일단 CNA설정을 따라가는걸로 했는데 설명을 봐도 모르겠으니 아직 내 지식이 부족함을 어쩌겠냐마는... 역시 배움에는 끝이없다 ㅠㅠ

📚 tsconfig 참조 링크 입니다.

profile
만드는 사람도 사용하는 사람도 편하고 만족하는 '것'을 추구하는 프론트엔드 개발자

0개의 댓글