minstudio

타입 별칭(Type Alias)과 Interface의 차이

두 가지 모두 데이터의 타입을 정의하는 문법이지만, 목적이 약간 다릅니다. 실무에서는 객체의 형태를 정의할 때는 가급적 interface를 쓰고, 특정 타입 덩어리에 단순히 별명(Nickname)을 붙이고 싶을 때 type을 사용하는 것이 국룰(컨벤션)입니다.

⚖️ Interface vs Type Alias Interface (설계도) 객체(Object) 전용 같은 이름 선언 시 알아서 합쳐짐 (Declaration Merging 지원) extends로 확장 가능 🔥 실무 국룰: 객체 형태 정의 시 사용 Type Alias (별명) 모든 타입(튜플, 유니온 등) 가능 같은 이름 중복 선언 절대 불가 (에러 발생) & (Intersection) 연산자로 확장 🔥 실무 국룰: 단순 묶음/별명 지을 때 사용
// 1. 타입 별칭 (type 키워드): 이퀄(=)을 사용하여 이름을 붙임
type Point = {
    x: number;
    y: number;
};
// 별칭은 객체뿐만 아니라, 원시값, 유니온 등 모든 것에 이름표를 붙일 수 있음!
type ID = string | number; 

// 2. 인터페이스 (interface 키워드): 이퀄(=) 없이 바로 중괄호
interface Point2D {
    x: number;
    y: number;
}
// 인터페이스는 오직 "객체"의 형태만 정의할 수 있습니다.
타입 별칭(Type Alias)과 Interface의 차이 | Minstudio