From 70bf951c19bb012b9815ae95a0f1f4e44c38914f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Wed, 21 Aug 2024 03:20:38 +0200 Subject: [PATCH] UnionToTuple --- src/Types/UnionToTuple.ts | 10 ++++++++++ src/Types/index.ts | 1 + 2 files changed, 11 insertions(+) create mode 100644 src/Types/UnionToTuple.ts 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"