-
[TypeScript] tsconfig.json 알아보기Web 2022. 11. 23. 18:56728x90반응형
타입스크립트 형태로 프로젝트 생성을 하게 되면 root path 에 tsconfig.json 이라는 파일이 생성되어있을것이다.
이 파일의 목적은 타입스크립트 ts 파일들을 .js 파일로 변환할 때 어떻게 변환할 것인지 세부설정하기위한 설정파일이다. 기본적으로 생성되어있는 설정값으로 진행해도 되지만 어떠한 설정값이 있는지 알아볼것이다.
필자는 CRA(create-react-app) 을 통해서 타입스크립트용으로 프로젝트를 생성할때 tsconfig.json 기준으로을 시작을 한다.
$ npx create-react-app ts_demo --template typescript
을 입력시 리액트 프로젝트가 생성된다.
CRA 생성 위처럼 ts_demo 디렉토리를 가보면 tsconfig.json 가 생성되있을 것이다.
// 기본적으로 생성되는 tsconfig.json { "compilerOptions": { "target": "es5", "lib": [ "dom", "dom.iterable", "esnext" ], "allowJs": true, "skipLibCheck": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true, "strict": true, "forceConsistentCasingInFileNames": true, "noFallthroughCasesInSwitch": true, "module": "esnext", "moduleResolution": "node", "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, "jsx": "react-jsx" }, "include": [ "src" ] }
compilerOptions: ts 파일을 js로 컴파일하기 위한 설정값을위한 object
- target: 어떤 자바스크립트 버전으로 변경할지 설정하는 부분 (es5, es6, esnext 등 있음)
- lib: 컴파일시 포함되어야하는 라이브러리 목록 (예를들어 async -> Promise 변환하기 위해 필요)
- allowJs: 말그대로 js 허용할지 묻는 속성. 컴파일할때 자바스크립트 파일 포함되도 되는지 설정값
- skipLibCheck: 정의파일(*.d.ts 확장자를 가진 파일)의 타입 확인을 skip 여부
- esModuleInterop: js 문법중 import 와 require 호환성을 위한 설정값. true 라면 CommonJS 모듈을 ES6 모듈 기준으로 가져올수 있게 된다.
- allowSyntheticDefaultImports: 타입확인시 default export이 아닌 모듈에서도 default import 가 가능 여부 값.
- strict: 모든 엄격한 타입 검사 옵션을 활성화 여부 값.
- forceConsistentCasingInFileNames: 파일명에 대소문자 구분하지 않아도 되는지 여부 값. true 이면 대소문자 구분없이 import 시 대소문자 구분없이 사용가능. ex) import Api from 'Api' == import Api from 'api'
- noFallthroughCasesInSwitch: 스위치문 사용지 코드 이상 감지 활성화 여부. case 에 break 없으면 이상감지로 오류발생.
- module: 모듈설정. 무슨 import 문법을 사용할것인지 설정값 (commonjs, amd, es2015, esnext 등 있음)
- moduleResolution: module을 import 하거나 export 시 처리방식 설정값.
- resolveJsonModule: json 파일 모듈을 가져오게 할지 여부 설정값.
- isolatedModules: 타입스크립트 경우 import/export 없는경우 파일을 레거시 취급하여 이러한 파일들을 전역 네임스페이스 병합하는데, true 일경우 컴파일시 export {} 를 붙여서 모듈로 생성하도록 해준다.
// temp.ts const temp = 1 console.log(temp) ----------------------------------------------- // 컴파일시 const temp = 1 console.log(temp) export {} // <- 붙여서 하나의 모듈로 만들어준다.
- noEmit: true시에는 ts 파일을 오류확인만 하고 파일은 생성하지 않음(js 파일 생성안함.)
- jsx: 리액트파일 사용 여부 설정값
728x90반응형'Web' 카테고리의 다른 글
HTTP란 무엇인가? (0) 2025.04.15 💡 인터넷이란? – 백엔드 개발자가 꼭 알아야 할 핵심 개념 정리 (1) 2025.04.15 ContentType 을 알아보자! (multipart/form-data, application/json) (0) 2025.04.14 [Javascript] ESLint, Prettier 설정 (0) 2022.11.22 SSL 사설 인증서 생성방법 (0) 2022.10.12