728x90

🌍 Typescript deep dive

typescript용어들이 한국어로 매우 잘 번역되어 있다.

 

Introduction - TypeScript Deep Dive

JavsScript, TypeScript, React 등 영어 고유 명사는 원문 유지, 필요시 한(영) 병서

radlohead.gitbook.io

 

 

 


💻 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

 

 

GitHub - tsconfig/bases: Hosts TSConfigs to extend in a TypeScript app, tuned to a particular runtime environment

Hosts TSConfigs to extend in a TypeScript app, tuned to a particular runtime environment - GitHub - tsconfig/bases: Hosts TSConfigs to extend in a TypeScript app, tuned to a particular runtime envi...

github.com

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가 포함된다.

 

728x90
+ Recent posts