인터페이스 확장은 공통 객체 계약을 겹쳐서 키운다
기본 객체 모양을 먼저 만들고 extends로 더 구체적인 요구사항을 추가한다.
id, name처럼 모든 객체가 지켜야 할 공통 속성
email, role처럼 특정 도메인의 추가 계약
수정 금지와 누락 가능성을 타입에 표시
동적 키를 허용하되 값 타입은 제한
| 구분 | 역할 |
|---|---|
| 객체 리터럴 | 가까운 범위에서 한 번 쓰는 구조 |
| interface | 이름 있는 협업 계약으로 재사용 |
| extends | 공통 계약 위에 더 구체적인 계약을 얹음 |
핵심 TypeScript 객체 타입은 클래스 상속보다 넓다. 모양을 만족하면 계약을 따른다.