tsconfig.json은 크게 3가지로 나뉩니다
compilerOptions , include, exclude
compilerOptions
- Ts코드를 Js로 변환하기 위해서 필요한 옵션
include
- 컴파일할 파일 경로 목록
- 배열 데이터로 목록화해서 제공
exclude
- 컴파일에서 제외할 파일 경로 목록
{
"compilerOptions": {
//타입 스크립트를 ES2015로 변환 (ES2015 권장)
"target": "ES2015",
// 모듈 시스템 지정 ESNext , CommonJS , AMD 등이 있으며
// Node js 환경에서는 CommonJS를 사용하며, 브라우저에서는 ESM 방식 (ESNext와 동일)을 사용합니다
"module": "ESNext",
//모듈의 해석방식 Node와 Classic이 있으며 기본값은 Node입니다.
"moduleResolution": "Node",
// ECMA 방식과 Common js 방식을 호환가능 여부입니다 (기본값 false)
// ESM 과 Common 방식을 구분짓지않고 사용가능하게 가능한 true
"esModuleInterop": true,
// 모든 파일을 모듈로 컴파일, import 혹은 export 필수
"isolatedModules": false,
// 모듈 해석에 사용할 기준 경로 지정
"baseUrl": "./",
// 컴파일러가 참조할 타입 선언(d.ts)의 경로를 지정합니다
"typeRoots": ["./node_modules/@types"],
// TS를 변환(컴파일)시 내부적으로 사용할 라이브러리의 목록을 지정합니다
// 컴파일에서 사용할 라이브러리 목록- ESNext , DOM
"lib": ["ESNext", "DOM"],
// 엄격한 타입 검색 활성화 여부 (기본값 false) 가능한 true 사용하기
// Ts를 사용함으로써 보다 엄격하게 작성하기 위함 , false 사용시 Ts의 장점중 일부가 없어집니다.
// true 사용시 아래의 옵션들 true로 바뀌며, 세부 조정 가능합니다.
"strict": true,
// 기본값은 false이며, strict가 true가 됨에따라 같이 바뀌는 옵션들
// 암시적 any 타입 검사 활성화
"noImplicitAny": false,
// 암시적 this 타입 검사 활성화
"noImplicitThis": false,
// 엄격한 Nullish 타입 검사 활성화
"strictNullChecks": false,
// 엄격한 함수의 매개변수 타입 검사 활성화
"strictFunctionTypes": false,
// 엄격한 클래스의 속성 초기화 검사 활성화
"strictPropertyInitialization": false,
// 엄격한 Bind, Call, Apply 메소드의 인수 검사 활성화
"strictBindCallApply": false,
// 이외에도 다른 옵션들이 더 있으며, strict에 따라서 바뀌지 않는 옵션도 존재합니다.
//여기까지
},
"include": [
// 프로젝트의 어느 위치에서 TS를 찾을 수 있는지
"src/**/*.ts" // src /하위 폴더의/ ts로 끝나는 파일들
],
"exclude": [
// 변환(컴파일) 제외 폴더
"node_modules"
]
}
최소한의 옵션
{
"compilerOptions": {
"target": "ES2015", //타입 스크립트를 ES2015로 변환 (ES2015 권장)
"module": "ESNext", // 모듈 시스템 지정 ESNext , CommonJS , AMD
"moduleResolution": "Node", //모듈의 해석방식
"esModuleInterop": true ,// ECMA 방식과 Commomjs 방식을 호환가능하게.
"lib" : ["ESNext","DOM"], // TS를 변환(컴파일)시 내부적으로 사용할 라이브러리의 목록을 지정
"strict": true // TS를 엄격하게 사용할 것 인가.
},
"include": [ // 프로젝트의 어느 위치에서 TS를 찾을 수 있는지
"src/**/*.ts" // src /하위 폴더의/ ts로 끝나는 파일들
] ,
"exclude": [ // 변환(컴파일) 제외 폴더
"node_modules"
]
}
'JavaScript > TypeScript' 카테고리의 다른 글
[TypeScript] 추론과 명시적인 타입 지정.? (0) | 2023.04.10 |
---|---|
[TypeScript] 제네릭 - 인터페이스, 제약 조건 (0) | 2023.04.10 |
[TypeScript] 제네릭(Generic) - 클래스 (0) | 2023.04.10 |
[TypeScript] 제네릭(Generic) - 함수 (0) | 2023.04.10 |
[TypeScript] 클래스와 접근 제어자 (0) | 2023.04.10 |