diff --git a/src/Types/UnionToTuple.ts b/src/Types/UnionToTuple.ts new file mode 100644 index 0000000..35cfdc1 --- /dev/null +++ b/src/Types/UnionToTuple.ts @@ -0,0 +1,10 @@ +import type { UnionToIntersection } from "type-fest" + + +type LastOf = UnionToIntersection void : never> extends (x: infer Last) => void + ? Last + : never + +export type UnionToTuple> = [T] extends [never] + ? [] + : [...UnionToTuple>, Last] diff --git a/src/Types/index.ts b/src/Types/index.ts index e6b8475..6cbef90 100644 --- a/src/Types/index.ts +++ b/src/Types/index.ts @@ -3,3 +3,4 @@ export * from "./Extend" export * from "./Merge" export * as PrismaJson from "./PrismaJson" export * from "./StaticType" +export * from "./UnionToTuple"