[typescript] 제한된 타입 가드 함수 작성 방법

타입스크립트에서는 제네릭이나 조건부 타입을 사용하여 특정 타입에서만 동작하는 함수를 정의할 수 있습니다. 이러한 함수를 “제한된 타입 가드 함수”라고 합니다.

다음은 제한된 타입 가드 함수인 filterByType의 예시입니다.

type Filter<T, U> = T extends U ? T : never;

function filterByType<T, U>(arr: T[], type: U): Filter<T, U>[] {
  return arr.filter((item) => item instanceof type);
}

위의 코드에서 Filter 타입은 TU에 할당 가능한지를 검사하여 적절한 결과를 반환합니다. filterByType 함수는 배열 arr의 요소를 type과 비교하여 적합한 요소만 필터링합니다.

이러한 방식으로 제한된 타입 가드 함수를 작성하면, 타입 안정성을 보장하면서 보다 유연하고 안전한 코드를 작성할 수 있습니다.

이상으로, 제한된 타입 가드 함수 작성 방법에 대해 알아보았습니다.

더 많은 정보는 TypeScript 핸드북을 참고하세요.

TypeScript 핸드북