[typescript] 타입 별칭과 인터페이스의 재귀적 타입 정의 비교

타입스크립트에서는 타입 별칭과 인터페이스를 사용하여 재귀적인 타입을 정의할 수 있습니다. 이러한 기능은 자료구조를 표현하거나 복잡한 타입을 다룰 때 유용합니다. 이번 포스트에서는 타입 별칭과 인터페이스를 사용하여 재귀적인 타입을 정의하는 방법을 비교해보겠습니다.

타입 별칭(Type Alias)

타입 별칭은 type 키워드를 사용하여 새로운 타입을 정의하는데 사용됩니다. 재귀적인 타입을 정의할 때 타입 별칭을 사용할 수 있습니다. 예를 들어, 단순 연결 리스트를 표현하는 재귀적인 타입을 정의해보겠습니다.

type ListNode<T> = {
  value: T;
  next?: ListNode<T>;
};

위의 예시에서 ListNode은 노드의 값과 다음 노드를 가리키는 포인터로 이루어진 단순 연결 리스트를 표현하는 타입입니다.

인터페이스(Interfaces)

인터페이스를 사용하여도 재귀적인 타입을 정의할 수 있습니다. 위의 예제를 인터페이스로 재정의해보겠습니다.

interface ListNode<T> {
  value: T;
  next?: ListNode<T>;
}

타입 별칭과 달리 인터페이스는 일반적으로 객체의 모양(shape)을 정의하는 데 사용되지만, 재귀적인 타입도 정의할 수 있습니다.

결론

타입 별칭과 인터페이스는 재귀적인 타입을 정의하는 데 모두 사용할 수 있습니다. 선택은 주로 개발자의 개인적인 기호에 따라 달라지며, 코드베이스의 다른 부분에서 이러한 타입이 사용되는 방식에 따라 선택할 수 있습니다.

재귀적인 타입을 사용하여 복잡한 자료구조를 나타내는 코드를 작성할 때 타입 별칭과 인터페이스의 사용에 집중하여 가독성과 유지보수성을 높일 수 있습니다.

참고 자료