[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
타입은 T
가 U
에 할당 가능한지를 검사하여 적절한 결과를 반환합니다. filterByType
함수는 배열 arr
의 요소를 type
과 비교하여 적합한 요소만 필터링합니다.
이러한 방식으로 제한된 타입 가드 함수를 작성하면, 타입 안정성을 보장하면서 보다 유연하고 안전한 코드를 작성할 수 있습니다.
이상으로, 제한된 타입 가드 함수 작성 방법에 대해 알아보았습니다.
더 많은 정보는 TypeScript 핸드북을 참고하세요.