표현 대상 확인
객체 계약인지, union이나 tuple 같은 조합 타입인지 먼저 본다.
표현할 수 없는 쪽을 고르면 구조가 꼬인다type과 interface는 객체 모양을 표현할 때 겹치지만 강점이 다르다. 타입 별칭은 union, tuple, primitive alias, mapped type, conditional type을 이름으로 묶을 수 있고, interface는 객체 계약 확장과 declaration merging에 강하다.
객체 계약인지, union이나 tuple 같은 조합 타입인지 먼저 본다.
표현할 수 없는 쪽을 고르면 구조가 꼬인다문자열 리터럴 union, 함수 타입, tuple, conditional type, mapped type은 type alias로 묶는다.
조합 표현력이 넓다외부에 공개되는 객체 모양이고 확장이나 merging이 필요한 경우 interface를 검토한다.
라이브러리 augmentation에 유리하다type은 intersection으로 조합하고 interface는 extends로 확장한다.
오류 메시지와 충돌 방식이 다를 수 있다둘 다 가능한 경우 공개 API와 내부 조합 타입에 대한 팀 기준을 정한다.
일관성이 읽기 비용을 줄인다