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>
: [];