본문 바로가기
FrontEnd/TypeScript

TypeScript 컴파일러

by y.j 2022. 9. 28.
728x90

The compilation context

tsconfig.json파일내에 어떤 파일을 컴파일 할것인지 어떤 옵션을 적용할것인지를 정할 수 있다. 또, TypeScript를 파싱하거나 유효성 검증하는 맥락들을 설정할 수 있다.

tsconfig schema

최상위 프로퍼티

  • compileOnSave
  • extends
  • compileOptions
  • files
  • include
  • exclude
  • references
  • typeAcquisition
  • tsNode

compileOnSave 프로퍼티

save를 하게 되면 컴파일을 하게 해준다.

  • visual studio 2015 with Typescript 1.8.4이상
  • atom-typescript 플러그인
"compileOnSave": true

 

extends

외부 config파일을 import해주는 역할을 한다.

 

base.json

{
    "compilerOptions" : {
        "strict" : true
    }
}

 

tsconfig.json - "strict" :true는 주석처리

"extends": "./base.json"

 

만약 tsconfig.json에서 extends부분을 주석처리하면 에러가 사라지게 된다.

const a: number = undefined;

 

files, include, exclude

files

  • 경로내에 있는 파일들만 컴파일 하려고 한다.

 

include  

  • exclude보다 약합니다.
  • * 사용하면, .ts, .tsx, .d.ts만 include

 

exclude

  • 설정 안하면 4가지(node_modules, bower_components, jspm_packages, <outDir>)를 default로 제외합니다.
  • include에 있어도 <outDir>은 항상 제외한다.

셋다 설정이 없으면, 전부 다 컴파일하게 된다.

 

typeRoots

node_modules/@types라는 모든 경로를 찾아서 사용하도록 설정해줄수 있다.

 

type

배열 안의 모듈 혹은 ./node_modules/@types/ 안의 모듈 이름에서 찾아옵니다.

[] 빈 배열을 넣는다는건 이 시스템을 이용하지 않겠다는 의미이다.

 

 

target

자바스크립트의 버전을 할것인지 설정

 

lib

기본 type definition 라이브러리를 어떤 것을 사용할 것이냐

lib를 지정하지 않을때

  • target이 'es3'면 디폴트로 lib.d.ts를 사용한다.
  • target이 'es5'면 디폴트로 dom, es5, scripthost를 사용한다.
  • target이 'es6'면 디폴트로 dom, es6, scripthost를 사용한다.

 

lib를 지정하면 그 lib배열로만 라이브러리를 사용한다.

  • 빈 [] : no definition found

 

compileOptions 경로 

outFile

  • 모든 output을 하나의 자바스크립트 파일로 생성할 파일 경로를 선언한다.

 

outDir

  • 내가 작성한 output 폴더를 지정할 수 있다.

 

rootDir

  • 컴파일 root가 될 경로를 지정한다.
  • 아래화면에서 보면 src이하의 폴더의 내용물만 컴파일되었다.

 

strict

설 정 명 설            명
noImplicitAny  
   
   
   
   
728x90

'FrontEnd > TypeScript' 카테고리의 다른 글

Class 정의 / 초기화 / Getter And Setter  (0) 2022.10.08
Interface  (0) 2022.10.07
TypeScript 타입호환성  (0) 2022.09.27
TypeScript의 옵션  (0) 2022.09.26
TypeScript 타입  (0) 2022.09.20

댓글