TypeScript Compiler 정리

일상 코딩·2022년 4월 8일
0

TypeScript

목록 보기
8/12

01.What is Compilation Context?

  • 컴파일할때 타입스크립트 파일들을 묶어서 그룹화하고 그룹화된 파일을 JS로 변환할때 TS설정들을 해줍니다.
  • TSJS변환할때 어떤 파일을 컴파일 할건지 안할건지도 담겨져 있으며 TSJS로 변환할때 어떤 컴파일 옵션을 사용할지도 담겨 있습니다.
  • 그리고 이내용은 tsconfig.json에 담겨 있습니다.

TypeScript 학습에 도움되는 사이트


02.tsconfig schema

2-1.최상위 프로퍼티 목록

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

VS code 터미널

$ mkdir compilation-context
$ cd compilation-context
$ npm init -y 
$ npm i typescript -D // tsconfig.json 파일 생성
$ npx tsc --init
$ cat tsconfig.json

  • 현재 tsconfig.json 파일에서 가장 최상위 프로퍼티로 compilerOptions 프로퍼티가 사용중임을 알 수 있다.

03.compileOnSave

  • true / false (default value => false)
  • true 일 경우 이 프로젝트에서 파일을 저장하면 컴파일을 하겠다는 옵션이다.
// tsconfig.json 
{
   "compileOnSave": true,
   "compilerOptions": {
    ....
   }
}

04.extends

  • 파일 (상대) 경로명: String Type
  • 사용 예시: "extends": "./base.json"
  • 상대경로 및 절대경로 둘다 사용 가능!
  • TypeScript 2.1 New Spec 이상 버전에서 지원됨!
// tsconfig.json 
{ 
    "extends": "./base.json", 
    "compilerOptions": { .... } 
}
//   "strict": true, // tsconfig.json 파일에 있는 strict속성은 주석 처리

// base.json { 
	"compilerOptions": {
    	"strict": true 
    } 
 }
  • 이처럼 extends 프로퍼티로 다른 json파일을 상속 받아 사용할 수 있다.

05.files & include & exclude

  • tsconfig.jsonfilesinclude그리고 exclude가 없으면 모든 파일을 컴파일 합니다.
  • 우선 순위: files > exclude > include

files

  • 타입은 배열이며 배열안의 타입은 String입니다.
  • 상대 혹은 절대 경로의 리스트 배열 입니다.
/tsconfig.json

"files": ["./base.json"],
// 배열안에 String 타입으로 경로가 설정 되어 있음

include

  • 타입은 배열이며 배열안의 타입은 String입니다.
  • 컴파일할때 포함할 파일들을 설정하는 옵션 입니다.(filesexclude에 있는 파일들을 제외하고 모두 컴파일 하려고 함)
//tsconfig.json

"include": ["./base.json"],
// 배열안에 String 타입으로 경로가 설정 되어 있음

exclude

  • 타입은 배열이며 배열안의 타입은 String입니다.
  • 컴파일할때 제외할 파일들을 설정하는 옵션 입니다.(files에 있는 파일들은 제외하지 못함)
//tsconfig.json

"exclude": ["./base.json"],
// 배열안에 String 타입으로 경로가 설정 되어 있음
  • exclude를 설정하지 않으면 node_modules / bower_components / jspm_packages / <outDir> 이 4개는 디폴트로 제외됩니다.
  • <outDir>include에 있어도 항상 제외 됩니다.
  • <outDir>이란? : 컴파일 후 생성되는 js파일이 생성될 폴더명
profile
일취월장(日就月將) - 「날마다 달마다 성장하고 발전한다.」

0개의 댓글