TypeScriptでPromiseの型を知りたい
-
TypeScript で Promise の型を知りたい時、こうするとで型が取れます。
type ResolvedType<T> = T extends ((...args: any[]) => infer R)
? R extends Promise<infer S> ? S : R
: T;
const res: ResolvedType<typeof fetch> = await fetch('/api/user');解説
Tが関数の時TがPromiseに含まれているならばPromise(S)のSを返す- 含まれていないならば
Tの返り値Rを返す
Tが関数以外の時、Tを返す