Sha256: c585e44fdf120eba5f6b12c874966f152792af727115570b21cb23574f465ce1
Contents?: true
Size: 1.03 KB
Versions: 65
Compression:
Stored size: 1.03 KB
Contents
/** Returns the type that is wrapped inside a `Promise` type. If the type is a nested Promise, it is unwrapped recursively until a non-Promise type is obtained. 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(); // Here's an example that shows how this type reacts to recursive Promise types. type RecursiveAsyncData = Promise<Promise<string> >; let recursiveAsyncData: PromiseValue<RecursiveAsyncData> = Promise.resolve(Promise.resolve('ABC')); ``` */ export type PromiseValue<PromiseType, Otherwise = PromiseType> = PromiseType extends Promise<infer Value> ? { 0: PromiseValue<Value>; 1: Value }[PromiseType extends Promise<unknown> ? 0 : 1] : Otherwise;
Version data entries
65 entries across 65 versions & 6 rubygems