타입스크립트는 자바스크립트 런타임 동작을 모델링하는 타입 시스템을 가지고 있다.
noImplicitAny
- any 타입을 불허
strictNullChecks
- 모든 타입에 null, undefinded 불허
타입스크립트 컴파일러의 2가지 역할
트랜스파일 (translate + compile) 변환되면서 interface, type을 모두 제거하기에 런타임에선 타입 체크를 할 수 없다.
타입 오류 체크 둘은 독립적이기에 컴파일 에러가 아닌 타입 체크 에러이다. 타입 오류가 있어도 컴파일이 된다.
noEmitOnError - 타입 오류가 있으면 컴파일 불허
타입과 런타임의 동작은 연관이 없다.
런타임에서의 타입이 선언 타임과 다를 수 있다.
따라서 C++과는 다르게 함수 오버라이딩이 안된다.
타입이 런타임 성능에 영향을 주지 않는다.
아니 글을 쓰는데...
https://pf.kakao.com/_MjcFxj?t_src=wallet&t_ch=brunch&t_obj=booking_channel