[typescript] 인터페이스를 사용하여 타입 별칭 정의하기

TypeScript에서는 코드를 타입 안전하게 유지하고 코드를 읽기 쉽고 이해하기 쉽도록 도와주는 여러 가지 타입 정의 방법이 제공됩니다. 그 중에서도 인터페이스와 타입 별칭은 코드를 구조화하고 유지보수하기 쉽도록 도와줍니다.

인터페이스란

인터페이스는 TypeScript에서 컨탄트를 정의하는 목적으로 사용됩니다. 클래스나 객체가 어떤 프로퍼티와 메소드를 가져야 하는지에 대한 규격을 정의하는 데 사용됩니다.

다음은 인터페이스의 예시입니다.

interface Person {
  name: string;
  age: number;
  greet: () => void;
}

위 예시에서 Person 인터페이스는 name, age, 그리고 greet 메소드를 가져야 한다고 정의합니다.

타입 별칭이란

타입 별칭은 특정 타입이나 인터페이스에 대해서 별칭을 지정하여 사용하는 방법입니다. 이를 통해 중복된 복잡한 타입을 간결하게 나타낼 수 있고 가독성을 높일 수 있습니다.

다음은 타입 별칭의 예시입니다.

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

이제 Point{ x: number; y: number; }의 별칭으로 사용될 수 있습니다.

인터페이스와 타입 별칭 비교

인터페이스와 타입 별칭의 주된 차이점은 인터페이스는 확장(extends)이 가능하고 병합(merge) 가능하다는 것입니다.

반면에 타입 별칭은 결합할 수 없으며, 예를 들어 유니언이나 인터섹션 타입을 지정할 수 없습니다. 그래서 만약 확장이나 결합이 필요하지 않고 정적인 타입을 선언하는 것이 목적이라면, 타입 별칭을 사용하는 편이 더 적합할 수 있습니다.

마치며

코드 작성시, 인터페이스는 객체의 모양(shape)을 정의하고 메소드를 포함할 때 주로 사용되며, 타입 별칭은 복잡한 타입을 간결하게 표현하거나 유니언/인터섹션 타입을 사용할 때 주로 활용됩니다. 적절한 상황에 맞게 선택하여 코드를 작성하면 코드의 유지보수성과 가독성을 높일 수 있습니다.

여러분의 TypeScript 프로젝트에서 적합한 타입 정의 방법을 선택하여 보다 안정적이고 가독성 높은 코드를 작성해보세요!

참고 자료