tsconfig.js
tsconfig.json에서는 타입스크립트 컴파일러 옵션을 설정한다. 여기엔 타입스크립트 ts 파일들을 .js 파일로 변환할 때 어떻게 변환할 것인지 세부설정이 가능하다.
tsc --init 명령어로 기본적인 tsconfig.json 파일 생성이 가능하다.
{
// src 폴더 안의 모든 ts파일들을 js로 컴파일 해준다.
"include": ["src"],
"compilerOptions": {
// 컴파일된 파일들을 build라는 폴더에 넣어준다.
"outDir":"build"
// 'es6','es2018' 권장
"target": "es6",
// 어떤 import 문법 쓸건지 'commonjs', 'amd', 'es2015', 'esnext'
"module": "commonjs",
// js 파일들 ts에서 import해서 쓸 수 있는지
"allowJs": true,
// 일반 js 파일에서도 에러체크 여부
"checkJs": true,
// tsx 파일을 jsx로 어떻게 컴파일할 것인지 'preserve', 'react-native', 'react'
"jsx": "preserve",
// 컴파일시 .d.ts 파일도 자동으로 함께생성 (현재쓰는 모든 타입이 정의된 파일)
"declaration": true,
// 모든 ts파일을 js파일 하나로 컴파일해줌 (module이 none, amd, system일 때만 가능)
"outFile": "./",
// js파일 아웃풋 경로바꾸기
"outDir": "./",
// 루트경로 바꾸기 (js 파일 아웃풋 경로에 영향줌)
"rootDir": "./",
// 컴파일시 주석제거
"removeComments": true,
// strict 관련, noimplicit 관련 모드 전부 켜기
"strict": true,
// any타입 금지 여부
"noImplicitAny": true,
// null, undefined 타입에 이상한 짓 할시 에러 발생
"strictNullChecks": true,
// 함수파라미터 타입체크 강하게
"strictFunctionTypes": true,
// class constructor 작성시 엄격한 타입체크
"strictPropertyInitialization": true,
// this 키워드가 any 타입일 경우 에러내기
"noImplicitThis": true,
// 자바스크립트 "use strict" 모드 켜기
"alwaysStrict": true,
// 쓰지않는 지역변수 있으면 에러 체크
"noUnusedLocals": true,
// 쓰지않는 파라미터 있으면 에러 체크
"noUnusedParameters": true,
// 함수에서 return 빼먹으면 에러 체크
"noImplicitReturns": true,
// switch문 이상하면 에러 체크
"noFallthroughCasesInSwitch": true,
// 에러가 있을 경우 컴파일 하지 않는 옵션
"noEmitOnError": true,
// 자바스크립트를 허용하는 옵션, 자바스크립트와 타입스크립트를 함께 사용
"allowJS":true,
// 모듈들을 주소를 절대 경로로 수정
"paths": {
"*": ["node_modules/*"]
}
}
}
3줄 요약
1. 타입스크립트 컴파일러는 매우 많은 설정을 가지고 있다.
2. 암시적 any 타입을 피하기 위해 noImplicitAny 설정을 고려하자.
3. 엄격한 타입 체크를 원한다면 strict 설정을 고려하자. 사실상 필수다.