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"
  ]
}

+ Recent posts