Files
thilalib/src/Types/UnionToTuple.ts
Julien Valverdé 70bf951c19
All checks were successful
Lint / lint (push) Successful in 12s
UnionToTuple
2024-08-21 03:20:38 +02:00

11 lines
313 B
TypeScript

import type { UnionToIntersection } from "type-fest"
type LastOf<T> = UnionToIntersection<T extends any ? (x: T) => void : never> extends (x: infer Last) => void
? Last
: never
export type UnionToTuple<T, Last = LastOf<T>> = [T] extends [never]
? []
: [...UnionToTuple<Exclude<T, Last>>, Last]