두 가지 모두 데이터의 타입을 정의하는 문법이지만, 목적이 약간 다릅니다. 실무에서는 객체의 형태를 정의할 때는 가급적 interface를 쓰고, 특정 타입 덩어리에 단순히 별명(Nickname)을 붙이고 싶을 때 type을 사용하는 것이 국룰(컨벤션)입니다.
실행해보기
아래의 코드는 Minstudio의 엔진을 통해 브라우저 상에서 타입스크립트로 변환되어 실행된 결과입니다. 하단의 Developer Console 창에서 console.log의 출력을 직접 확인해보세요!
// 1. 타입 별칭 (type 키워드: 이퀄(=)을 사용하여 이름 붙임)
type Point = {
x: number;
y: number;
};
// 별칭은 객체뿐만 아니라, 원시값, 유니온 등 모든 것에 이름을 붙일 수 있음!
type ID = string | number;
// 2. 인터페이스 (interface 키워드: 이퀄(=) 없이 바로 중괄호)
interface Point2D {
x: number;
y: number;
}
// 인터페이스는 오직 "객체"의 형태만 정의할 수 있습니다.
// --- 실행 확인 ---
const p1: Point = { x: 10, y: 20 };
const p2: Point2D = { x: 100, y: 200 };
console.log("Type Alias 객체:", p1);
console.log("Interface 객체:", p2);