파일을 저장하면 바로 컴파일해주며, 최상단에 작성해야한다.
files
또는 include
프로퍼티가 없다면 컴파일러는 모든 파일을 컴파일한다.
exclude
에있는 파일이더라도 files
에 있다면, 컴파일하게된다.
include
에 있는 파일들은 exclude
에 작성하면 컴파일이 제외된다.
exclude
설정을 안할경우, 기본으로 node_modules, outDir 등을 제외한다.
아무 설정 안할경우(기본설정) :node_modules/@types
모든 경로를 찾아서 사용해준다.
@types : 배열안에 있는 경로들 아래서만 가져온다.
types : 배열안 또는 ./node_modules/@types/
안의 모듈 이름에서 찾아온다.
[] 빈배열은 사용하지 않겠다는 의미이다.
typeRoots 와 types를 같이 사용하지 않는다.
// npm i react
import react from "react"
// .ts를 사용할경우 react가 type선언이 되어있지 않아 오류가 생긴다.
// npm i -D @types/react
npm i @types/react
// .ts로 작성할 경우 node_modules/@types에 react로 경로가 지정되어 오류가 안생긴다.
: 기본값은 es3
로 되어있으며, 어떤 버전으로 컴파일할지 결정한다.
: 기본 type definition
라이브러리를 어떤 것을 사용할지 지정한다.
기본으로 lib.d.ts
를 사용한다.
// 빈 배열의 lib를 사용할경우
console.log("typescript"); // 오류가 생긴다.
: 컴파일 후 생성되는 js파일이 생성될 폴더이름
: 컴파일 후 생성되는 단일 파일의 이름을 설정한다.
: 컴파일 시작하는 시작점을 설정한다.
엄격하게 타입을 검사하는 옵션이다.
noImplicitAny
: 타입추론을 실패한경우any를 사용, 명시해주어야한다.
noImplicitThis
: this표현식에 사용하면 에러를 발생한다.
함수의 첫번째 매개변수 자리에 this를 작성하며, this는 any로 지정해 사용한다.
strictNullChecks
: null, undefined값이 모든 유형에 속하지 않는다.
예외로 undefined에 void할당이 가능하다.
strictFunctionTypes
: 함수가 반공변적으로만 동작하도록 맞춰주기 위해 사용한다.
strictPropertyInitialization
: 정의되지 않은 클래스의 속성이 생성자에서 초기화 되었는지 확인한다. 이 옵션을 사용하기 위해서는 stritNullChecks
를 사용하도록 설정해야한다.
strictBindCallApply
alwaysStrict