[typescript] 제네릭을 사용하여 다중 타입을 처리하는 방법을 알려주세요.

제네릭은 TypeScript에서 다중 타입을 처리하는 데 유용한 기능입니다. 제네릭을 사용하면 코드를 더욱 유연하고 재사용 가능하게 만들어줍니다.

제네릭이란 무엇인가요?

제네릭은 함수, 클래스, 인터페이스 등을 정의할 때 타입을 파라미터로 전달받아 코드의 유연성을 높여주는 TypeScript의 기능입니다. 이를 통해 특정 타입에 의존하지 않고 여러 종류의 타입을 다룰 수 있습니다.

제네릭 함수 예시

아래는 제네릭을 사용하여 배열의 요소를 출력하는 함수의 예시입니다.

function printArray<T>(arr: T[]): void {
  arr.forEach(item => {
    console.log(item);
  });
}

// 숫자 배열 출력
printArray<number>([1, 2, 3]);

// 문자열 배열 출력
printArray<string>(['a', 'b', 'c']);

위 함수에서 T는 제네릭 타입 파라미터로, 함수를 호출할 때 실제 타입이 전달됩니다.

제네릭 클래스 예시

제네릭을 사용하여 범용적인 타입을 처리하는 클래스의 예시도 있습니다.

class Wrapper<T> {
  private value: T;

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

  getValue(): T {
    return this.value;
  }
}

// 숫자 래퍼 생성
const numberWrapper = new Wrapper<number>(123);
console.log(numberWrapper.getValue());

// 문자열 래퍼 생성
const stringWrapper = new Wrapper<string>('hello');
console.log(stringWrapper.getValue());

위에서 Wrapper 클래스는 T 타입의 값을 감싸고 반환하는 범용적인 클래스로 활용됩니다.

이렇게 제네릭을 활용하면 함수와 클래스를 확장하는 과정에서 유연하게 다양한 타입을 다룰 수 있습니다.

결론

제네릭은 TypeScript에서 다중 타입을 처리하기 위한 강력한 도구입니다. 제네릭을 활용하여 재사용 가능하고 유연한 코드를 작성할 수 있으므로, 프로젝트에서 적극적으로 활용하면 좋습니다.

더 많은 정보는 TypeScript 공식 문서를 참고하시기 바랍니다.