- 타입스크립트에서
type 키워드를 사용하는 타입 별칭과 함수 선언 방식과 유사한 인터페이스는 유사하지만 몇 가지 주요 차이점이 있습니다. ↔️
- 인터페이스는 속성 증가를 위한 병합(merging) 기능을 제공하여 타입 확장에 유리하며, 이로 인해 많이 사용되는 추세입니다. ➕
- 타입스크립트 타입 검사기는 인터페이스에서 더 빠르게 작동하며, 인터페이스는 내부적으로 캐시하기 쉬운 '명명된 타입'으로 간주됩니다. ⚡
- 인터페이스는 '이름 있는 객체'로 취급되어 복잡한 코드에서 더 읽기 쉬운 오류 메시지를 제공하며, 타입 별칭은 '이름 없는 구조'를 복사하는 방식이라 내부적으로 더 복잡합니다. 🏷️
- 선택적 속성(
?)은 인터페이스와 타입 별칭 모두에서 동일하게 지원되어, 해당 속성의 존재 여부를 유연하게 정의할 수 있습니다.❓
readonly 속성은 인터페이스에 정의된 객체의 속성 재할당을 방지하며, 타입 시스템 내에서만 존재하고 실제 객체에는 적용되지 않습니다. 🔒
- 인터페이스는 함수 타입을 메서드 구문과 속성 구문(화살표 함수)으로 정의할 수 있으며,
readonly는 메서드 구문에는 사용할 수 없고 속성 구문에만 적용 가능합니다. ✍️
readonly 속성은 인터페이스뿐만 아니라 타입 별칭에서도 동일하게 사용할 수 있어, 재할당 방지 기능을 폭넓게 적용할 수 있습니다. ✅
데브허브 | DEVHUB | 타입스크립트 - 인터페이스 vs 타입 별칭