핵심 답변
두 가지 모두 타입을 정의하는 방법이지만 특성이 다릅니다.
선언 합치기(Declaration Merging): interface는 가능, type은 불가
확장: interface는
extends, type은 &(인터섹션)유니온 타입: type만 가능
원시 타입 별칭: type만 가능
주 용도: interface는 객체 구조 정의, type은 복잡한 타입 표현
예시 코드
typescript
// interface: 선언 합치기 가능
interface User { name: string; }
interface User { age: number; } // 자동으로 합치집니다
// 결과: { name: string; age: number; }
// type: 유니온, 인터섹션 가능
type Status = 'loading' | 'success' | 'error'; // 유니온 타입
type AdminUser = User & { role: 'admin' }; // 인터섹션 타입
type ID = string | number; // 원시 타입 포함 유니온핵심 용어
📌 선언 합치기(Declaration Merging)같은 이름의 interface를 여러 번 선언하면 자동으로 합쳐지는 TypeScript 기능입니다. 라이브러리 타입 확장에 유용합니다.
📌 유니온 타입(Union Type)
| 연산자로 여러 타입 중 하나를 표현합니다. string | number처럼 사용합니다.