[typescript] 제네릭 인터페이스를 이용한 데이터 변환 및 필터링 방법

본 블로그 포스트에서는 TypeScript에서 제네릭(Generic) 인터페이스를 이용하여 데이터 변환 및 필터링 하는 방법에 대해 알아보겠습니다.

제네릭(Generic) 인터페이스란?

제네릭 인터페이스는 다양한 타입의 데이터를 처리하는 함수나 클래스를 정의할 때 사용됩니다. 이를 통해 코드의 유연성을 확보하고 재사용성을 높일 수 있습니다.

데이터 변환하기

제네릭 인터페이스를 이용하여 데이터 변환을 해보겠습니다.

다음은 제네릭 인터페이스를 사용하여 배열의 각 요소를 변환하는 예제 코드입니다.

interface Converter<T, U> {
  (item: T): U;
}

function convertArray<T, U>(arr: T[], converter: Converter<T, U>): U[] {
  return arr.map(converter);
}

const inputArray: number[] = [1, 2, 3, 4, 5];
const stringArray: string[] = convertArray(inputArray, String);
console.log(stringArray); // 출력: ['1', '2', '3', '4', '5']

위 코드에서 Converter 인터페이스는 T 타입의 데이터를 U 타입의 데이터로 변환하는 함수를 정의하고, convertArray 함수는 이를 활용하여 배열의 각 요소를 변환합니다.

데이터 필터링하기

이번에는 제네릭 인터페이스를 사용하여 데이터를 필터링하는 방법을 살펴보겠습니다.

interface Filter<T> {
  (item: T): boolean;
}

function filterArray<T>(arr: T[], filterFn: Filter<T>): T[] {
  return arr.filter(filterFn);
}

const numberArray: number[] = [1, 2, 3, 4, 5];
const evenNumbers: number[] = filterArray(numberArray, num => num % 2 === 0);
console.log(evenNumbers); // 출력: [2, 4]

위 코드에서 Filter 인터페이스는 T 타입의 데이터를 받아 boolean 값을 반환하는 함수를 정의하고, filterArray 함수는 이를 활용하여 배열을 필터링합니다.

마무리

이렇게 제네릭 인터페이스를 활용하여 데이터 변환 및 필터링을 할 수 있습니다. 제네릭을 적절히 활용하면 다양한 타입의 데이터를 처리하는 함수나 클래스를 더욱 유연하고 강력하게 만들 수 있습니다.

참고 문헌:

이상으로 제네릭 인터페이스를 이용한 데이터 변환 및 필터링에 대해 알아보았습니다. 감사합니다.