[typescript] 타입 가드를 제네릭과 함께 활용하여 다중 타입을 처리하는 방법을 알려주세요.

타입스크립트에서 여러 타입을 다룰 때, 제네릭과 타입 가드를 함께 사용하여 효과적으로 처리할 수 있습니다. 제네릭을 사용하면 함수나 클래스에서 다양한 타입을 처리할 수 있으며, 타입 가드를 활용하면 런타임에 타입을 검사하여 안전하게 다룰 수 있습니다.

제네릭을 사용하여 다중 타입 처리

제네릭을 활용하여 함수나 클래스를 정의할 때, 여러 타입을 다룰 수 있습니다. 이를 통해 코드의 재사용성을 높이고 일반화된 동작을 구현할 수 있습니다.

function processType<T>(value: T): void {
  // 여기에 다양한 타입에 대한 처리 로직을 구현
}

class Wrapper<T> {
  constructor(private value: T) {}
  // 다양한 타입을 다루는 메서드들
}

타입 가드를 활용한 안전한 타입 검사

타입 가드를 사용하여 런타임에 타입을 안전하게 검사할 수 있습니다. instanceof나 타입 검사 함수를 활용하여 코드 실행 중에 발생할 수 있는 타입 에러를 방지할 수 있습니다.

function isString(value: any): value is string {
  return typeof value === 'string';
}

function processValue(value: string | number) {
  if (isString(value)) {
    // value가 string 타입일 때의 동작
  } else {
    // value가 number 타입일 때의 동작
  }
}

제네릭과 타입 가드를 함께 활용

function processValue<T>(value: T) {
  if (typeof value === 'number') {
    // number 타입에 대한 처리
  } else if (Array.isArray(value)) {
    // 배열 타입에 대한 처리
  } else {
    // 기타 타입에 대한 처리
  }
}

위와 같이, 타입스크립트에서 제네릭과 타입 가드를 함께 사용하여 여러 타입을 처리할 때 유용하게 활용할 수 있습니다.

이러한 방법들을 통해 타입 안전성을 유지하면서 다양한 타입을 다룰 수 있습니다.


참고 자료: