타입 챌린지 18220 - Filter

소파의 벨로그·2025년 5월 21일

타입챌린지

목록 보기
90/131

문제 링크

문제

원시 타입 또는 유니온 원시 타입인 Predicate과 Predicate의 요소로 포함되는 배열을 반환하고, 배열 T를 가지는 Filter<T, Predicate> 타입을 구현하세요.

내 풀이

type Filter<T extends any[], P> =
  T extends [infer Start,...infer Rest]?
    Start extends P?[Start,...Filter<Rest,P>]
    :Filter<Rest,P>
  :[]

간단한 문제이다. 재귀적으로 P를 확장 가능한지 아닌지를 판단해 반환하는 방식으로 문제를 풀었다.

0개의 댓글