[typescript] 타입 별칭과 인터페이스의 확장과 상속 개념 비교
본 포스트에서는 TypeScript에서 타입 별칭과 인터페이스의 확장과 상속 개념을 비교하고, 어떤 상황에서 어떤 것을 사용해야 하는지에 대해 살펴보겠습니다.
1. 타입 별칭
타입 별칭은 기본적으로 이미 존재하는 타입에 대해 새로운 이름을 지정하는 데 사용됩니다. 이는 이미 정의된 타입이나 인터페이스를 재사용하고 코드를 더 읽기 쉽게 만드는 데에 유용합니다.
type Person = {
name: string;
age: number;
};
type Employee = Person & {
employeeId: string;
};
위의 예시에서 Person
이라는 타입 별칭은 name
과 age
라는 속성을 갖고 있습니다. 그리고 Employee
는 Person
을 확장하여 employeeId
속성을 추가한 것입니다.
2. 인터페이스
인터페이스는 타입을 정의하는 구조적인 형태를 제공합니다. 타입 별칭과 달리 확장이 가능하며, 상속을 통해 다른 인터페이스로부터 속성을 상속 받을 수 있습니다.
interface Shape {
color: string;
}
interface Square extends Shape {
sideLength: number;
}
let square: Square = {
color: "blue",
sideLength: 10
};
위의 예시에서 Shape
인터페이스는 color
속성을 갖고 있으며, Square
인터페이스는 Shape
를 확장하여 sideLength
속성을 추가한 것입니다.
3. 타입 별칭 vs. 인터페이스
- 타입 별칭은 유니언, 인터섹션 등과 함께 조합하여 사용할 수 있어 더 다양한 형태의 타입을 정의할 수 있습니다.
- 인터페이스는 클래스와 함께 사용될 때 확장이 가능하므로, 객체지향적인 설계에 유용합니다.
따라서, 타입 별칭은 간단한 타입을 정의할 때 사용하고, 인터페이스는 보다 구조적인 타입을 정의하거나 객체지향적인 설계를 할 때 사용하는 것이 좋습니다.
이상으로 TypeScript에서의 타입 별칭과 인터페이스의 확장과 상속 개념에 대해 알아보았습니다.