What’s the difference between two types
type FilterOut<T extends any[], F> = T extends [infer E, …infer Rest] ? [F] extends [E] ? FilterOut<Rest, F> : [E, …FilterOut<Rest, F>] : []; type FilterOut2<T extends any[], F> = T extends [infer E, …infer Rest] ? [E] extends [F] ? FilterOut<Rest, F> : [E, …FilterOut<Rest, F>] : []; type Test = FilterOut<[“a”, never], […]
Why is this conditional generic type not correctly narrowed?
I have the following type:
Generic function with argument based on conditional type in TypeScript 5
I have a type with some different config objects, like this: