[typescript] 타입 별칭과 인터페이스의 확장과 상속 개념 비교

본 포스트에서는 TypeScript에서 타입 별칭인터페이스의 확장과 상속 개념을 비교하고, 어떤 상황에서 어떤 것을 사용해야 하는지에 대해 살펴보겠습니다.

1. 타입 별칭

타입 별칭은 기본적으로 이미 존재하는 타입에 대해 새로운 이름을 지정하는 데 사용됩니다. 이는 이미 정의된 타입이나 인터페이스를 재사용하고 코드를 더 읽기 쉽게 만드는 데에 유용합니다.

type Person = {
  name: string;
  age: number;
};

type Employee = Person & {
  employeeId: string;
};

위의 예시에서 Person이라는 타입 별칭은 nameage라는 속성을 갖고 있습니다. 그리고 EmployeePerson을 확장하여 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에서의 타입 별칭인터페이스의 확장과 상속 개념에 대해 알아보았습니다.

참고 자료