downleveling
이라 부른다. 기본으로 tsc의 target
은 es3
로 설정되어 있다.strict: true
로 하는게 좋다. 이를 키게 되면 noImplicitAny
(any를 명시하지 않는 것을 허용하지 않는 속성) 혹은 strictNullChecks
(null을 반드시 확인하는 속성)로 인해 런타임 에러가 발생하는 것을 막을 수 있다.interface | type alias | |
---|---|---|
상속 | extends를 사용 | intersections(&)를 사용 |
new field | 같은 interface를 정의하면 새로운 필드로 추가된다. | 에러 |
union type | 불가능 | 가능 |
typescript에서는 여러 가지 type guard들이 있다. 타입을 체크하는 특별한 코드를 의미하는데 이를 활용해 타입을 narrowing할 수 있다. 즉, 좀 더 specific한 타입으로 범위를 줄여가는 과정이다.
type predicates는 user가 custom하게 정의할 수 있고 이를 활용해 narrowing할 수 있다. pet is string
을 return 타입에 사용한다.
타입스크립트에서는 함수 오버로딩을 지원한다. 오버로딩은 크게 두 부분으로 나뉜다. overload signature / implementation signature
overload signature는 구현하는 부분이 아닌 함수의 인자와 리턴값의 관한 타입들을 표시하며, implementation signature는 실제로 이 함수를 어떻게 구현하는지를 표현한다.
implementation signature는 overload signature와 호환이 가능해야 한다.