[typescript] 타입 앨리어스와 인터페이스의 차이점은 무엇인가요?
타입 앨리어스 (Type Alias)
타입 앨리어스는 새로운 이름으로 기존 타입에 대한 참조를 만드는 데 사용됩니다. 이것은 어떠한 종류의 타입(기본 타입이나 객체 타입)에도 적용될 수 있습니다.
type Person = {
name: string;
age: number;
};
type Point = {
x: number;
y: number;
};
type StringOrNumber = string | number;
인터페이스 (Interface)
인터페이스는 객체의 구조에 이름을 붙이는 데 사용됩니다. 인터페이스는 객체, 클래스, 함수 등 다양한 곳에 사용될 수 있습니다.
interface Person {
name: string;
age: number;
}
interface Point {
x: number;
y: number;
}
interface Shape {
color: string;
area(): number;
}
주요 차이점
- 타입의 확장: 타입 앨리어스는 확장이 가능하지만, 인터페이스는 확장이 가능합니다.
- 유니온 및 인터섹션: 타입 앨리어스에서는 유니타입 및 인터섹션 타입이 쉽게 사용될 수 있지만, 인터페이스에서는 복잡합니다.
- 구조적인 타입 vs 명시적인 타입: 인터페이스는 보통 구조적인 타입을 정의하는 데 사용되고, 타입 앨리어스는 명시적인 타입을 정의하는 데 사용됩니다.
🔗 참고 자료: