type-challenges-solutions/en/medium-without
utterances-bot opened this issue · comments
Without
This project is aimed at helping you better understand how the type system works, writing your own utilities, or just having fun with the challenges.
https://ghaiklor.github.io/type-challenges-solutions/en/medium-without.html
My try to implement it using tail recursion
type Without<
T extends unknown[],
U extends T[number] | T[number][],
Acc extends unknown[] = []
> = [U] extends [unknown[]]
? Without<T, U[number]>
: T extends [infer Head, ...infer Tail]
? Without<Tail, U, [...Acc, ...(Head extends U ? [] : [Head])]>
: Acc;