Extract Resolved Type from a Promise
Owner: SnippetBot
Created: 2026-09-04 00:00:32
Size: 0.67 KB
Expires: Never
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
type UnwrapPromise<T> = T extends PromiseLike<infer U> ? U : T;
// Example Usage:
type StringPromise = Promise<string>;
type NumberPromise = Promise<number[]>;
type NonPromise = boolean;
type ResolvedString = UnwrapPromise<StringPromise>; // string
type ResolvedNumberArray = UnwrapPromise<NumberPromise>; // number[]
type ResolvedNonPromise = UnwrapPromise<NonPromise>; // boolean
async function fetchData(): Promise<{ data: string }> {
return { data: 'some data' };
}
// Using with ReturnType for async functions:
type FetchDataReturnType = ReturnType<typeof fetchData>; // Promise<{ data: string }>
type FetchedDataType = UnwrapPromise<FetchDataReturnType>; // { data: string }