최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

 

이번 실무 프로젝트에서 사용한 타입스크립트 설정파일이다.

 

컴파일러 옵션에 대한 정확한 작동 방식을 돕기 위해서 꼼꼼하게 설명해 놓았다.

 

.tsconfig.json

{
  "compilerOptions": {
    
    // js와 jsx 파일도 포함시키도록 한다. 점진적으로 바꿔나갈때 사용
    "allowJs": true,

    // 모듈 타입.nodejs는 commonjs를 사용하므로 설정함
    "module": "commonjs",

    // es6 모듈 사양에 따라 commonJS모듈을 가져올 수 있다. 기본 내보내기가 없는 모듈에서 대체 모듈 가져오기를 실행한다. import foo from 'foo' 와 import * as foo from 'foo'
    "esModuleInterop": true,

    // 사용할 es 버전
    "target": "es6",

    // 타입스크립트 핵심. 암시적 any 선언여부. true로 활성해야 타입검사를 any로 예외없이 사용하지 않는다. 반드시 함수의 파라메터 값에 타입을 지정해줘야 한다
    // true이면 any를 사용하지 않는다, 정의가 없는 모듈은 정의(d.ts 파일)를 해주어야 한다. 이 기능을 true로 켜면 타입 지정해주지 않은 파라메터는 모두 에러가 나온다
    "noImplicitAny": true, 

    // 모듈 해석방법을 node의 require() 함수를 이용한 import 해석 과정을 모방하여 처리한다
    "moduleResolution": "node",

    // 디버깅할때 사용하며, 코드상의 위치를 기억하고 알려준다. 빌드 전 어떤파일, 라인에서 오류가 났는지 확인
    "sourceMap": true,

    // 동일 파일 참조에 대해 일관성 없는 대소문자를 비활성화
    "forceConsistentCasingInFileNames": true,

    // 타입을 저장할 폴더를 의미함 types는 직접 정의한 타입, @types 는 보통 부 라이브러리들의 정의
    "typeRoots": [
        "./types",
        "./node_modules/@types"
    ],
    
    // 시작하는 루트 폴더
    "rootDir": "./src",

    // 컴파일 완료된 파일의 위치
    "outDir": "./dist",
    
    // paths 옵션의 기준 디렉토리
    "baseUrl": ".",

    // 모듈의 위치 설정
    "paths": {
        "*": [
            "node_modules/*",
            "src/types/*"
        ]
    }
  },

  // 컴파일할 소스파일 위치, src 폴더의 깊이 제한없는 디렉토리의 모든 .ts 파일
  "include": [
      "src/**/*.ts"
  ],

  // 컴파일 대상을 제외하는 옵션
  "exclude": [
    "node_modules"
  ],
  
  // 주석제거
  "removeComments": true
}

 

 

댓글