본문 바로가기

TypeScript

[TypeScript] tsconfig.json 옵션

tsconfig.json 이란

tsc --init 명령을 실행하면 생성되는 파일로, tsconfig.json 은 TypeScript 프로젝트의 설정 파일이다.

주로 프로젝트의 컴파일 옵션 및 입력파일을 정의하는데 사용 됨.

 


 

tsconfig.json 주요 옵션

 

옵션 매뉴얼

https://www.typescriptlang.org/ko/tsconfig

 

1. compilerOptions - strict 옵션 - 무조건 true

 

엄격한 타입 검사 옵션을 모두 활성화 하는 옵션으로,  TypeScript 컴파일러가 보다 엄격한 타입 검사를 수행해 코드의 실수를 미리 찾아낼 수 있음. 해당 옵션을 true 로 선택하면 아래의 옵션들도 자동으로 true 가 된다.

 

  • strictNullChecks: 잠재적으로 null(undefined)이 될 수 있는 값들에 대해서 엄격하게 확인하는 옵션
  • strictFunctionTypes
  • strictBindCallApply
  • strictPropertyInitialization
  • noImplicitAny : 함수의 인자 또는 변수의 타입이 명시적으로 선언되지 않은 경우에 컴파일러가 자동으로 any타입을 부여하지 않도록 함. 또한, 이 옵션을 활성화하면 개발자가 누락된 타입 선언을 확인하고 명시적으로 타입을 선언할 수 있음.
  • noImplicitThis
  • alwaysStrict

2. compilerOptions - sourceMap 옵션 - true

 

컴파일된 JavaScript 파일에 대한 소스 맵을 생성하는 옵션으로, 소스맵을 사용하면 실행 중 에러가 발생했을 때 원래 TypeScript 의 소스코드 위치를 파악할 수 있다. 코드 디버깅에 매우 도움이 되므로 true 로 설정. 그러나 프로덕션 환경에서는 용량 및 성능상의 이유로 sourceMap을 사용하지 않을 수도 있음.

 

3. compilerOptions - target 옵션

해당 TypeScript 프로젝트 내 코드들이 어떤 JavaScript 버전으로 변환을 할 지 정하는 옵션으로, es2016(=es7) 로 설정하면 E2016 버전으로 컴파일 됨.

최신 브라우저는 보통 ES2016을 지원하니 이렇게 설정하는 것을 추천한다.

그러나, 이것을 정할 때는 TypeScript 가 어느 환경에서 실행되어야 하는지를 고려해서 해야함. 만약 내가 만드는 프로젝트가 레거시한 환경에서 동작해야 한다 -> es5 , 그렇지않으면 es2016

 

 

4. compilerOptions - module 옵션

 

TypeScript 파일을 컴파일 한 후 생성되는  JavaScript 모듈의 형식을 지정한다.

모듈을 가져오고 내보내는 방식을 결정하는 옵션으로 target 옵션과는 독립적인 관계니 프로젝트의 요구사항에 따라 설정.

 

5. compilerOptions - outDir 옵션

 

컴파일된 JavaScript 파일이 저장될 출력 디렉터리를 지정. 예를 들어, "outDir" : "dist" 로 설정하면, 컴파일된 파일들이 dist 폴더에 저장

 

6. include, exclude 옵션

 

tsc 가 컴파일을 할 때 포함하거나 제외할 파일이나 디렉터리를 지정하는 옵션

  • “include": ["src/**/*"] : src 디렉토리 밑의 친구들을 컴파일 하겠다는 의미
  • "exclude": ["node_modules", "dist"] : node_modules, dist 디렉토리 밑의 친구들은 컴파일 대상에서 제외하겠다는 의미