type-challenges / type-challenges

Collection of TypeScript type challenges with online judge

Home Page:https://tsch.js.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

18220 - Filter

sunupupup opened this issue · comments

type Filter<T, Condition, Ret extends any[] = []> = T extends [
  infer First,
  ...infer Rest
]
  ? Filter<Rest, Condition, First extends Condition ? [...Ret, First] : Ret>
  : Ret;
type Filter<T, Condition> = T extends [infer First, ...infer Rest]
  ? First extends Condition
    ? [First, ...Filter<Rest, Condition>]
    : Filter<Rest, Condition>
  : [];