是否可以将变量声明为异步函数(或Promise)的成功返回值?
给定功能后,就有可能将变量声明为
let foo: ReturnType<typeof myFunc>;
如果函数为async
,则
let asyncFoo: ReturnType<typeof myAsyncFunc>;
上面的变量将被键入为Promise<{...}>
,这很接近,但与我要查找的不完全相同。我想获取await
ed值的类型(或传递到.then()
回调中的值)。这种类型看起来如何?
答案 0 :(得分:1)
type ExtractPromiseType<T extends Promise<any>> =
T extends Promise<infer U> ? U : never;
let asyncFoo: ExtractPromiseType<ReturnType<typeof myAsyncFunc>>;