typescript - compiler

HunGeun·2022년 5월 2일
0

TypeScript

목록 보기
3/5

tscongfig schema

TopLevel Property

CompileOnsave

  • save하면 compile 하는 option
  • true/false (default false)
  • Visual Studio 2015 with TypeScript 1.8.4 이상
  • atom-typescript 플러그인
"complieOnSace": true

extends

  • 상속시 주로 사용
  • 부로 파일의 경로명 작성
  • typescript 2.1 이상
"extens": "./base.json"

files, include, exclude

- files

만약에 files나 include 프로퍼티가 tsconfig안에 없으면 컴파일러는 모든 파일을 컴파일 할려고 함.
files에 세팅되어 있다면, exclude로 제외되어도 컴파일 됨.

- exclude

glob 패턴
include로 세팅되어 있는 파일에는 영향을 미치지만
file에 세팅되어 있는 파일에는 영향일 미치지 못함
exclude 미설정시 (node_modules, bower_components, jspm_packages, outDir)를 default로 제외함

- include

glob 패턴
exclude에 영향을 미치지 못함

compileOptions

typeRoots, types

-typeRoots
배열 안에 들어있는 경로들 아래서만 가져옴
-types
내장 type definition 시스템
배열 안의 모듈 혹은 ./node_modules/@types/ 안의 모듈 이름에서 찾아옴
빈 배열을 넣으면 시스템을 사용하지 않음

target, lib

  • target
    빌드의 결과물의 버전 지정
    default : es3

  • lib
    기본 type definition 라이브러리 지정
    default : target의 버전에 따라 변경됨
    ECMAScript feature

outdir, outfile, rootDir

컴파일시 src나 루트폴더의 위치를 지정해줌
outFile
outDir
rootDir

strict

엄격하게 type을

--noImplicitAny

타입 추론에 의해 'any'로 판단되면 컴파일 에러를 발생시키는 옵션
구현자가 any로 사용하고 싶다면 any라고 명시해주어야 함

--noImplicitThis

명시적이지 않게 any를 사용하여, this 표현식에 사용하면 에러 발생
즉 this에도 typing을 해야함

--strictNullChecks

모든 타입에 자동으로 포함되어 있는 null과 undefined를 제거 해줌

--strictFunctionTypes

반환 타입은 공변적, 인자 타입은 반공변적 but typescript에서 인자 타입은 공변적이면서 반공변적인데,
반공변적일때만 가능하도록 처리됨

--strictPropertyInitialization

정의되지 않은 클래스의 속성이 생성자에서 초기화되어있는지 확인(--strictNullChecks와 함께 사용)
즉, constructor에서 초기값을 할당해야 오류가 사라짐
만약 constructor를 사용하지 않고 async 같은 다른 함수로 initialize 하는 경우 !를 사용해서 할당을 할것을 명시해야 함

--strictBindCallApply

bind, call, apply에 대한 더 엄격한 검사 수행

--alwaysStrict

JS의 strict mode로 코드를 분석하고, strict를 emmit 함
syntax error가 ts error로 나오고 컴파일된 JS파일에 use strict가 추가됨

0개의 댓글