11 lines
313 B
TypeScript
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]
|