← Back to NOTES 🌰 ← Back to Effective TypeScript
타입스크립트 컴파일러는 타입 체크와 코드 생성이라는 두 가지 독립적인 역할을 수행한다. 타입 오류가 있어도 컴파일은 가능하며, 타입은 런타임에 제거되어 동작에 영향을 주지 않는다. 따라서 런타임에 타입을 사용하려면 별도의 방법(태그 기법, in 연산자, 클래스 등)이 필요하다.
이 두 가지 역할은 서로 완벽히 독립적이다.
컴파일은 타입 체크와 독립적으로 동작하기 때문에 타입 오류가 있는 코드도 컴파일이 가능하다. C나 자바와 같이 타입 오류가 있다고 해서 빌드를 멈추지 않는다 (warning이라고 보면 된다).
만약 오류가 있을 때 컴파일하지 않으려면, tsconfig.json에서 noEmitOnError를 설정한다.
noEmit과 noEmitError 차이점
TypeScript를 JavaScript로 변환되는 과정에 모든 인터페이스, 타입, 타입 구문은 제거된다.
런타임에서 타입을 명확하게 하기 위한 방법