Type Compatibility 타입 호환성
https://toss.tech/article/typescript-type-compatibility
- Structural SubTyping (구조적 서브타이핑)을 기반으로 한다.
- 구조적 타이핑이란 오직 멤버만으로 타입을 관계시키는 방식
- 명목적 타입과는 대조적
왜 타입호환성을 지원할까?
- 정상적으로 동작 할 수 있는 올바른 코드라면, 타입시스템은 개발자의 의도에 맞게 유연하게 대응하여 타입 호환성을 지원한다.
- 이러한 유연성을 위해 타입스크립트는 부분적으로 타입호환을 지원
- 구조적 서브타이핑 방식은, 타입 시스템이 객체의 프로퍼티를 체크하는 과정을 수행해주므로써, 명목적 서브타이핑과 동일한 효과를 내면서도 개발자가 상속 관계를 명시해주어야하는 수고를 덜어준다.