[typescript] 타입 별칭과 인터페이스의 필수 프로퍼티 개념 비교

타입스크립트에서 타입 별칭인터페이스는 코드 베이스를 구조화하고 타입을 선언하는 데 사용됩니다. 이 두 가지 개념은 유사해 보일 수 있지만, 필수 프로퍼티의 정의 방식에서 조금 다르다는 점에 주목해야 합니다.

타입 별칭

타입 별칭은 기존 타입에 이름을 지어주는 방식으로 사용됩니다. 이를 통해 코드의 가독성을 높일 수 있으며, 유니온 타입이나 인터섹션 타입 등을 간결하게 표현할 수 있습니다.

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

type ID = string | number;

위 예시에서 PointID는 기존의 타입을 간결하게 나타내는 이름으로 사용됩니다.

인터페이스

인터페이스객체의 모양(shape)을 정의하는 데 사용됩니다. 필수적으로 포함되어야 하는 프로퍼티를 명시할 수 있습니다.

interface Point {
  x: number;
  y: number;
}

interface Config {
  width: number;
  height: number;
}

위 예시에서 PointConfig 인터페이스는 해당하는 객체가 최소한 정의된 프로퍼티를 가져야 함을 나타냅니다.

필수 프로퍼티

두 가지 방식의 가장 큰 차이점은 필수 프로퍼티를 정의하는 방법입니다. 타입 별칭은 새로운 타입을 정의하기 때문에 필수 프로퍼티를 명시할 수 없지만, 인터페이스는 필수 프로퍼티를 명시할 수 있습니다.

type Option = {
  width?: number;
  height?: number;
};

interface Config {
  width: number;
  height: number;
}

위의 예시에서 Option 타입은 widthheight 프로퍼티가 모두 선택적(optional)인 반면, Config 인터페이스는 widthheight필수로 가져야 합니다.

결론

타입 별칭인터페이스는 모두 유용한 도구로, 어떤 상황에 더 적합한지는 개발 환경과 요구 사항에 따라 다를 수 있습니다. 이 두 가지 방법을 적절히 활용하여 타입을 정의하고 코드를 구조화하는 것이 중요합니다.

이러한 세부 점을 이해하면 코드를 더욱 효율적으로 작성하고 유지보수할 수 있습니다.


참조: