← 질문 목록
#186깊이 0
타입스크립트의 구조적 타이핑은 무엇을 기준으로 판별하는가?
객체의 실제 구조와 필요한 속성이 일치하는지로 판별한다. 이름이 달라도 가지고 있는 멤버의 타입과 형태가 같다면 동일한 타입으로 간주한다.
| 기준 | 명목적 타이핑 | 구조적 타이핑 |
|---|---|---|
| 판별 근거 | 선언된 이름(명칭) | 객체의 형태(구조) |
| 유연성 | 엄격함 | 높음 |
이러한 특성으로 인해 인터페이스를 명시적으로 상속받지 않아도 요구하는 속성만 갖추고 있다면 타입 체크를 통과한다. 덕분에 외부 라이브러리와의 타입 호환성을 확보하기 쉽다.
다만 예상치 못한 타입 일치로 인해 런타임 오류가 발생할 위험이 있다. 뜻이 다른 타입에는 브랜드 태그나 고유 식별자를 붙여 구분한다.
추천 꼬리질문
관련 질문
- 이름이 같은 클래스가 다른 타입이 되는 조건은?언어 · 런타임타입스크립트의 구조적 타이핑과 클래스 이름이 달라도 타입이 결정되는 조건은 모두 타입 시스템의 타입 판별 기준에 관한 개념을 다룹니다.
- 이름이 다른 두 타입이 호환되는 기준은?언어 · 런타임타입스크립트의 구조적 타이핑은 이름이 다르더라도 내부 구조가 같으면 호환되는 구체적인 사례에 해당한다.
- 값 타입과 참조 타입은 무엇으로 구분하는가?언어 · 런타임구조적 타이핑은 값의 형태를 통해 타입을 판별하므로, 데이터가 메모리에 저장되는 방식인 값 타입과 참조 타입의 구분 개념과 연관된다.
- 메모리 관점에서 값 타입과 참조 타입의 선택 기준은 무엇인가?언어 · 런타임
- 스트레티지 패턴을 사용하는 판단 기준은 무엇인가?아키텍처 · 분산시스템