UNPKG

@leyyo/cache

Version:
27 lines (20 loc) 812 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // endregion parts /* * * // @leyyo add export type MaximumOneOf<T, K extends keyof T = keyof T> = K extends keyof T ? { [P in K]: T[K]; } & Partial<Record<Exclude<keyof T, K>, never>> : never; type ValueOf<Obj> = Obj[keyof Obj]; type OneOnly<Obj, Key extends keyof Obj> = Omit<Obj, Exclude<keyof Obj, Key>> | Pick<Obj, Key>; type OneOfByKey<Obj> = { [key in keyof Obj]: OneOnly<Obj, key> }; export type OneOf<Obj> = ValueOf<OneOfByKey<Obj>>; export type Xor<a, b> = | XorIn<a & { [k in keyof b]?: undefined }> | XorIn<b & { [k in keyof a]?: undefined }>; type XorIn<t> = { [k in keyof t]: t[k] } & unknown; type Values<V> = V[keyof V]; type ObjectToAnyPair<V> = Values<{ [K in keyof V]: { [K1 in K]: V[K1] } }> * */