mirror of
https://github.com/datahub-project/datahub.git
synced 2025-08-01 05:47:17 +00:00
32 lines
896 B
TypeScript
32 lines
896 B
TypeScript
/**
|
|
* Create a generic String-Union key -> value mapping constraint
|
|
* where the string union must be keys on the map and values
|
|
*/
|
|
export type StringUnionKeyToValue<U extends string> = { [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<T extends string, V> = { [K in T]: V };
|
|
|
|
/**
|
|
* Describes the index signature for a generic object
|
|
* @interface IObject
|
|
*/
|
|
export interface IObject<T> {
|
|
[K: string]: T;
|
|
}
|
|
|
|
/**
|
|
* Extracts the value of the a Record type
|
|
* @template R
|
|
* @alias {R extends Record<string, infer A> ? A : never}
|
|
*/
|
|
export type RecordValue<R extends Record<string, unknown>> = R extends Record<string, infer A> ? A : never;
|
|
|
|
/**
|
|
* Generic way to extract the type of result of a promise
|
|
*/
|
|
export type UnWrapPromise<T> = T extends PromiseLike<infer U> ? U : T;
|