🌍 Typescript deep dive
typescript용어들이 한국어로 매우 잘 번역되어 있다.
💻 Compilation context
◽ 그룹화된 타입스크립트 파일을 자바스크립트로 변환할 때의 설정
◽ 컴파일 할 파일, 컴파일 하지 않을 파일 선택
◽ 사용할 타입스크립트 컴파일 옵션 지정
◽ 옵션들은 tsconfig.json
파일에 선언되어 있다. 원하는 옵션을 주석처리하거나 type을 지정할 수 있다.
💻 tsconfig top level properties
tsconfig의 최상위 속성
compileOnSave
◽ 저장과 동시에 컴파일하는 기능
◽ default는 false다.
"type": "boolean"
extends
◽ 설정을 상속받아 사용하기
◽ 설정을 상속 받아올 부모 설정의 경로를 작성한다.
◽ typescript 2.1 이상
"extends" : "./base.json"
"type" : "string"
📍 typescript에서 공개한 extends할 수 있는 설정을 모아놓은 repository
npm install --save-dev @tsconfig/deno
{
"extends": "@tsconfig/deno/tsconfig.json".
}
files, include, exclude
◽ 서로 관계지어 발생되지만 "files"
옵션이 최우선순위로, "exclude"
에 설정되어 있어도 "files"
옵션을 우선으로 한다.
◽ "include"
와 "exclude"
속성은 glob과 유사한 파일 패턴 목록을 갖는다.
✅ files
◽ 프로젝트 내 어떤 파일을 컴파일할 것인지 결정하는 옵션
◽ 설정하지 않으면 기본적으로 모든 파일을 컴파일한다.
◽ 상대 혹은 절대 경로의 리스트 배열로 지정한다.
{
"comilerOptions": {
"noImplicitAny": "commonjs"
},
"files": [
"core.ts",
"sys.ts",
"types.ts",
"scanner.ts",
"parser.ts",
"utilities.ts",
"binder.ts",
"checker.ts",
"emitter.ts",
"program.ts",
"commandLineParser.ts",
"tsc.ts",
"diagnosticInformationMap.generated.ts"
]
}
✅ exclude
◽ "files"
와 "include"
모두 지정되어 있지 않다면 "exclude"
로 제외된 것을 제외하고 모든 TypeScript파일을 포함하는 디렉토리와 하위 디렉토리에 포함시킨다.
◽ "include"
에 있는 파일을 제외시키는데 영향을 주지만, "files"
에는 영향을 주지 않는다.
◽ "exclude"
속성이 지정되지 않으면, "Outdir"
컴파일러 옵션을 사용하여 지정된 디렉토리의 파일은 항상 제외한다."include"
에 포함되어도 항상 제외함
◽ "exclude"
속성에 디렉토리가 지정되어 있지 않으면, 기본적으로 node_modules
, bower_componets
, jspm_packages
, outDir
를 제외한다.
◽ typsescript 2.0 이상
✅ include
◽ glob pattern에 일치하는 파일들을 컴파일에 포함
◽ typsescript 2.0 이상
✅ glob 와일드카드
◽ 와일드카드 문자로 여러 파일 이름의 집합을 지정할 수 있다.
◾ *
0개 이상의 문자와 매칭
◾ ?
한 문자와 매칭
◾ **/
반복적으로 모든 하위 디렉토리와 매칭
◽ 기본적으로 .ts
.tsx
.d
.ts
확장자 파일은 포함이며 allowJs
가 true로 설정되어 있을 때만 .js
.jsx
가 포함된다.
'FE' 카테고리의 다른 글
Interfaces 인터페이스 속성, type alias 타입 별칭, class 클래스 (0) | 2021.11.22 |
---|---|
컴파일 옵션 CompilerOptions (0) | 2021.11.22 |
맥북 M1 zsh, brew, rbenv, gem, github 블로그까지 (0) | 2021.11.20 |
타입스크립트 데이터 타입시스템, 옵션, 타입 만들기 (0) | 2021.11.17 |
TypeScript 타입, Type Annotation 타입 지정 (0) | 2021.11.17 |