exhaustiveStringTuple<T>(): (<L>(...x: L extends any ? Exclude<T, L[number]> extends never ? L : Exclude<T, L[number]>[] : never) => L extends any ? Exclude<T, L[number]> extends never ? L : Exclude<T, L[number]>[] : never)
Type Parameters
T extends string
Returns (<L>(...x: L extends any ? Exclude<T, L[number]> extends never ? L : Exclude<T, L[number]>[] : never) => L extends any ? Exclude<T, L[number]> extends never ? L : Exclude<T, L[number]>[] : never)
<L>(...x: L extends any ? Exclude<T, L[number]> extends never ? L : Exclude<T, L[number]>[] : never): L extends any ? Exclude<T, L[number]> extends never ? L : Exclude<T, L[number]>[] : never
Type Parameters
L extends [T, ...T[]]
Parameters
Rest...x: L extends any ? Exclude<T, L[number]> extends never ? L : Exclude<T, L[number]>[] : never
Returns L extends any ? Exclude<T, L[number]> extends never ? L : Exclude<T, L[number]>[] : never