반응형
서브 타입
두 개의 타입 A와 B가 있고 B가 A의 서브 타입이면 A가 필요한 곳에는 어디든 B를 안전하게 사용할 수 있습니다.
TypeScript에 기본적으로 있는 서브 타입의 몇 가지 예는 아래와 같습니다.
- 배열은 객체의 서브 타입입니다.
- 튜플은 배열의 서브 타입입니다.
- 모든 것은 any의 서브 타입입니다.
- never는 모든 것의 서브 타입입니다.
- Animal을 상속받는 Dog 클래스가 있다면 Dog는 Animal의 서브 타입입니다.
서브 타입의 정의를 여기에 적용하면 다음과 같이 설명할 수 있습니다.
- 객체를 사용해야 하는 곳에 배열도 사용할 수 있습니다.
- 배열을 사용해야 하는 곳에 튜플도 사용할 수 있습니다.
- any를 사용해야 하는 곳에 객체도 사용할 수 있습니다.
- 어디에나 never를 사용할 수 있습니다.
- Animal을 사용해야 하는 곳에 Dog도 사용할 수 있습니다.
슈퍼 타입
두 개의 타입 A와 B가 있고 B가 A의 슈퍼 타입이면 B가 필요한 곳에는 어디든 A를 안전하게 사용할 수 있습니다.
슈퍼 타입은 서브타입과 정반대로 동작합니다.
- 배열은 튜플의 슈퍼 타입입니다.
- 객체는 배열의 슈퍼 타입입니다.
- any는 모든 것의 슈퍼 타입입니다.
- never는 누구의 슈퍼 타입도 아닙니다.
- Animal은 Dog의 슈퍼 타입입니다.
반응형
'👶 TypeScript' 카테고리의 다른 글
형태와 배열 가변성 (0) | 2023.01.18 |
---|---|
가변성 (0) | 2023.01.17 |
디자인 패턴 - 빌더 패턴(builder pattern) (0) | 2023.01.17 |
디자인 패턴 - 팩토리 패턴(factory pattern) (0) | 2023.01.17 |
final 클래스 흉내 내기 (0) | 2023.01.17 |