이펙티브 타입스크립트
Item 3. 코드 생성과 타입이 관계없음을 이해하기
타입스크립트 컴파일러는 두 가지의 역할을 수행한다. 구버전의 자바스크립트로 트랜스파일 타입 오류 체크 이 둘은 독립적으로 이루어지기 때문에 타입오류가 있는 코드도 컴파일이 가능하다. 만약 오류가 있을 경우 컴파일 하지 않으려면 noEmitOnError를 설정하거나 빌드 도구에 적용하면 된다. 런타임에는 타입체크가 불가능하다. 따라서 instanceof와 같이 런타임에 체크가 일어나는 경우 타입체크를 정상적으로 할 수 없다. 이러한 문제를 해결할 수 있는 방법은 1. 런타임에도 타입 정보를 체크할 수 있도록 코드 작성 function caculateArea(Shape){ if('height' in shape){ shape; //타입이 Rectangle return shape.width * shape.hei..