Skip to main content
Module

x/zod/helpers/enumUtil.ts

TypeScript-first schema validation with static type inference
Extremely Popular
Go to Latest
File
export namespace enumUtil { type UnionToIntersectionFn<T> = ( T extends unknown ? (k: () => T) => void : never ) extends (k: infer Intersection) => void ? Intersection : never;
type GetUnionLast<T> = UnionToIntersectionFn<T> extends () => infer Last ? Last : never;
type UnionToTuple<T, Tuple extends unknown[] = []> = [T] extends [never] ? Tuple : UnionToTuple<Exclude<T, GetUnionLast<T>>, [GetUnionLast<T>, ...Tuple]>;
type CastToStringTuple<T> = T extends [string, ...string[]] ? T : never;
export type UnionToTupleString<T> = CastToStringTuple<UnionToTuple<T>>;}