[typescript] 제네릭 인터페이스를 활용하여 다른 제네릭 타입의 비교 및 정렬 방법

목차

들어가기

제네릭 프로그래밍은 코드의 재사용성을 높이고, 데이터 타입에 대한 안정성을 강화하는 데 유용한 기법입니다. TypeScript에서 제네릭을 사용하면 다양한 데이터 타입을 다루는 함수나 클래스를 쉽게 작성할 수 있습니다. 이번 글에서는 TypeScript의 제네릭 인터페이스를 활용하여 다른 제네릭 타입의 비교 및 정렬 방법에 대해 알아보겠습니다.

제네릭 인터페이스란?

제네릭 인터페이스는 TypeScript에서 제네릭 타입을 인터페이스에 적용하는 방법을 제공합니다. 즉, 다양한 타입들에 대해 동일한 인터페이스를 유지하면서 사용할 수 있도록 합니다. 이를 통해 서로 다른 제네릭 타입을 비교하거나 정렬하는 기능을 구현할 수 있습니다.

제네릭 인터페이스 활용 예시

다음은 제네릭 인터페이스를 활용한 예시 코드입니다.

interface Comparable<T> {
  compareTo(other: T): number;
}

class MyType implements Comparable<MyType> {
  value: number;

  constructor(value: number) {
    this.value = value;
  }

  compareTo(other: MyType): number {
    return this.value - other.value;
  }
}

function sort<T extends Comparable<T>>(arr: T[]): T[] {
  return arr.sort((a, b) => a.compareTo(b));
}

const arr = [new MyType(3), new MyType(1), new MyType(2)];
const sortedArr = sort(arr);
console.log(sortedArr); // [MyType { value: 1 }, MyType { value: 2 }, MyType { value: 3 }]

위 코드에서 Comparable 제네릭 인터페이스를 정의하고, MyType이 이를 구현하도록 하였습니다. 그리고 sort 함수는 Comparable 인터페이스를 구현한 타입을 배열로 받아 해당 타입의 compareTo 메서드를 활용하여 정렬을 수행합니다.

다른 제네릭 타입의 비교 및 정렬 방법

제네릭 인터페이스를 활용하면 서로 다른 제네릭 타입의 객체들을 비교하거나 정렬하는 기능을 쉽게 구현할 수 있습니다. 이를 통해 코드의 재사용성을 높일 수 있으며, 안정성을 강화할 수 있습니다.

결론

TypeScript의 제네릭 인터페이스를 활용하면 다양한 제네릭 타입을 비교하고 정렬하는 코드를 작성할 수 있습니다. 제네릭을 통해 코드의 유연성과 안정성을 동시에 확보할 수 있으므로, 적절히 활용하는 것이 중요합니다.

참고 자료