UNPKG

814 BTypeScriptView Raw
1
2//#region lib/types/utils.d.ts
3type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? true : false;
4type IsAny<T> = 0 extends 1 & T ? true : false;
5type Func = (...args: any[]) => unknown;
6type Pretty<T> = { [K in keyof T]: T[K] } & {};
7type Normalize<T> = _Normalize<UnionKeys<T>, T>;
8type _Normalize<Key extends keyof any, T> = T extends infer U ? Pretty<{ [K in Key as K extends keyof U ? undefined extends U[K] ? never : K : never]: K extends keyof U ? U[K] : never } & { [K in Key as K extends keyof U ? undefined extends U[K] ? K : never : never]?: K extends keyof U ? U[K] : never } & { [K in Key as K extends keyof U ? never : K]?: undefined }> : never;
9type UnionKeys<T> = T extends any ? keyof T : never;
10//#endregion
11export { Equal, Func, IsAny, Normalize, Pretty };
\No newline at end of file