[typescript] 타입 별칭과 인터페이스의 차이점

TypeScript에서는 타입 별칭과 인터페이스를 사용하여 코드를 구조화하고 유연성을 제공합니다. 이 두 가지 개념은 유사해 보일 수 있지만, 각각의 특징과 사용 시점에 따라 다른 용도로 사용됩니다. 이번 포스트에서는 타입 별칭과 인터페이스의 차이점을 살펴보고, 어떤 상황에서 어떻게 사용해야 하는지 알아보겠습니다.

타입 별칭 (Type Aliases)

타입 별칭은 새로운 타입의 이름을 만들어내는 기능입니다. type 키워드를 사용하여 정의하며, 기존에 존재하는 타입이나 인터페이스를 기반으로 새로운 이름을 만들어 줄 수 있습니다.

type Point = {
  x: number;
  y: number;
};

위의 예제에서 Point는 객체 타입 { x: number; y: number; } 에 대한 별칭으로 사용됩니다. 이렇게 하면 코드를 더 읽기 쉽고 간결하게 만들 수 있습니다.

인터페이스 (Interfaces)

인터페이스는 TypeScript의 핵심 개념 중 하나로, 객체의 구조를 정의합니다. 타입 별칭과 유사해 보일 수 있지만, 인터페이스는 확장이 가능하고, 선언 병합(declaration merging)이 가능합니다.

interface Shape {
  color: string;
}

interface Square extends Shape {
  sideLength: number;
}

위의 예제에서 Shape 인터페이스는 color 속성을 가지고 있고, Square 인터페이스는 Shape 인터페이스를 확장하면서 sideLength 속성을 추가로 가지고 있습니다.

차이점

주요 차이점은 다음과 같습니다:

타입 별칭과 인터페이스는 각각의 특징에 따라 다른 상황에서 적합하게 사용됩니다. 적합한 상황에서 적절히 활용하여 코드의 가독성과 유지보수성을 높일 수 있습니다.

더 자세한 내용은 공식 TypeScript 문서를 참고하실 수 있습니다.