type vs interface
interface는 확장될 객체 계약, type은 조합 표현에 강하다
객체 모양이 자라나는지, 유니온·제네릭 조합이 핵심인지에 따라 선택한다.
| 질문 | 판정 |
|---|---|
| 객체 계약이 확장될 가능성이 큰가? | interface 우선 |
| Union이나 tuple 같은 조합이 핵심인가? | type alias 우선 |
| 선언 병합이나 라이브러리 확장이 필요한가? | interface가 자연스러움 |
| 팀 컨벤션이 이미 있는가? | 새 기준보다 기존 패턴을 따른다 |
| 기준 | 해석 |
|---|---|
| interface | 확장 가능한 객체 표면 |
| type | 복잡한 타입 표현에 이름 부여 |
| 판단 | 문법 취향보다 오류 메시지와 협업 표면을 기준으로 선택 |
핵심 둘 중 하나가 항상 우월한 것이 아니라, 표현하려는 계약의 성격이 다르다.