Files
thilalib/src/Types/UnionToTuple.ts
Julien Valverdé 1bf1befd6d
All checks were successful
Publish / publish (push) Successful in 16s
Lint / lint (push) Successful in 11s
0.1.13 (#14)
Co-authored-by: Julien Valverdé <julien.valverde@mailo.com>
Reviewed-on: #14
2024-08-21 03:23:11 +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]