forceConsistentCasingInFileNames: 프로그램에서 디스크의 케이스와 다른 케이스로 파일을 포함하려고 하면 TypeScript에서 오류가 발생합니다.(대소문자 구분)
noEmit: 컴파일러 출력 안함
esModuleInterop: 디폴트로 하면 false이고, CommonJS/AMD/UMD modules를 ES6 모듈처럼 다룬다. 이렇게 하면 (require와 import의 차이같은) mis-match로 인해 이슈가 생길 수 있다. 이 옵션을 켜면 이런 문제들을 컴파일 시에 fix 해준다.
타입스크립트의 타입 시스템은 열려있다.(봉인 x)
js의 덕타이핑을 그대로 모델링 하기 때문인데, type에 선언된 속성만을 가질 것이라 생각할 수 있지만 그렇지 않음
1장 내용요약
컴파일 vs 트랜스파일 컴파일이 더 큰 개념, 트랜스파일은 같은 고차원 언어로 변환되는 것
타입스크립트 컴파일러의 역할
결과물: 타입스크립트 -> 자바스크립트
타입체크와 컴파일(트랜스파일)은 별개의 문제
타입스크립트의 타입 시스템은 열려있다.(봉인 x)
타입 관련 구문의 제거
트랜스파일 과정에서 삭제되는 부분
타입을 명확히 하기 위한 기법 3가지
런타임 오버헤드가 아닌 빌드 타임 오버헤드