← Back to NOTES 🌰 ← Back to Effective TypeScript

← 아이템 12 - 함수 표현식에 타입 적용하기

핵심 요약

타입스크립트에서 명명된 타입을 정의하는 방법에는 type과 interface가 있다. 대부분의 경우 둘 다 사용 가능하지만, 유니온 타입은 type만 가능하고, 선언 병합(declaration merging)은 interface만 가능하다. 프로젝트에서 일관된 스타일을 확립하고 보강 기법이 필요한지 고려하여 선택해야 한다.

자세한 내용

비슷한 점

  1. 기본 사용: 인터페이스로 정의하든 타입으로 정의하든 상태에는 차이가 없음
  2. 인덱스 시그니처: 둘 다 사용 가능
  3. 함수 타입: 둘 다 정의 가능 (단순 함수는 타입이 더 간결, 추가 속성이 있으면 차이 없음)
  4. 제네릭: 둘 다 가능
  5. 확장: 인터페이스는 extends, 타입은 & 사용
  6. 클래스 implements: 둘 다 사용 가능

다른 점

  1. 유니온 타입: type은 가능, interface는 불가능
  2. 튜플과 배열: type이 더 간결하게 표현 가능
  3. 선언 병합(declaration merging): interface만 가능

선택 기준

복잡한 타입