UNPKG

vike

Version:

The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.

11 lines (10 loc) 754 B
export type { IsNotEmpty }; export type { XOR5 }; export type { Combine }; type IsNotEmpty<T> = Not<IsEmpty<T>>; type IsEmpty<T> = keyof T extends never ? true : false; type Combine<T1, T2> = { [K in keyof T1 | keyof T2]?: (K extends keyof T1 ? T1[K] : never) | (K extends keyof T2 ? T2[K] : never); }; type XOR5<T1 extends boolean, T2 extends boolean, T3 extends boolean, T4 extends boolean, T5 extends boolean> = (T1 extends true ? T2 extends true ? false : T3 extends true ? false : T4 extends true ? false : Not<T5> : T2 extends true ? T3 extends true ? false : T4 extends true ? false : Not<T5> : T3 extends true ? T4 extends true ? false : Not<T5> : T4 extends true ? Not<T5> : T5); type Not<T extends boolean> = T extends true ? false : true;