/** * Create a generic String-Union key -> value mapping constraint * where the string union must be keys on the map and values */ export type StringUnionKeyToValue = { [K in U]: K }; /** * Generic String Enum enforcing the keys on an object are found in * enum and value is of type V */ export type StringEnumKeyToEnumValue = { [K in T]: V }; /** * Describes the index signature for a generic object * @interface IObject */ export interface IObject { [K: string]: T; } /** * Extracts the value of the a Record type * @template R * @alias {R extends Record ? A : never} */ export type RecordValue> = R extends Record ? A : never; /** * Generic way to extract the type of result of a promise */ export type UnWrapPromise = T extends PromiseLike ? U : T;