diff options
Diffstat (limited to 'node_modules/type-fest/source/promise-value.d.ts')
-rw-r--r-- | node_modules/type-fest/source/promise-value.d.ts | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/node_modules/type-fest/source/promise-value.d.ts b/node_modules/type-fest/source/promise-value.d.ts new file mode 100644 index 0000000..7686dd1 --- /dev/null +++ b/node_modules/type-fest/source/promise-value.d.ts @@ -0,0 +1,20 @@ +/** +Returns the type that is wrapped inside a `Promise` type. +If the type is not a `Promise`, the type itself is returned. + +@example +``` +import {PromiseValue} from 'type-fest'; + +type AsyncData = Promise<string>; +let asyncData: PromiseValue<AsyncData> = Promise.resolve('ABC'); + +type Data = PromiseValue<AsyncData>; +let data: Data = await asyncData; + +// Here's an example that shows how this type reacts to non-Promise types. +type SyncData = PromiseValue<string>; +let syncData: SyncData = getSyncData(); +``` +*/ +export type PromiseValue<PromiseType, Otherwise = PromiseType> = PromiseType extends Promise<infer Value> ? Value : Otherwise; |