typescript - 如何声明一个异步函数的成功返回类型?
问题描述
有没有办法将变量声明为异步函数(或 Promise)的成功返回值?
当给定一个函数时,有可能将变量声明为
let foo: ReturnType<typeof myFunc>;
如果函数是async
,
let asyncFoo: ReturnType<typeof myAsyncFunc>;
上面的变量将输入为Promise<{...}>
,这很接近,但不是我想要的。我想获取await
ed 值的类型(或传递给.then()
回调的值)。这种类型的外观如何?
解决方案
使用“推断”关键字。
type ExtractPromiseType<T extends Promise<any>> =
T extends Promise<infer U> ? U : never;
let asyncFoo: ExtractPromiseType<ReturnType<typeof myAsyncFunc>>;
推荐阅读
- mongodb - MongoDB缓存或不缓存使用Redis
- reactjs - Parcel Bundler 和 React 服务器端渲染
- php - 查找和排序查询 PHP MONGODB
- excel - 如何记录宏以求和动态列?
- amazon-web-services - AWS 将 VPC 中的 Lambda 调用到另一个 VPC 中的另一个 Lambda
- java - 无法在 java maven springboot 项目中使用“response.setService/.setMesage/.setData”
- pandas - 在熊猫数据框热图显示中使用中心发散颜色图
- c - 乘/加双打返回错误
- r - 预测数据集中不同国家的概率
- python - 错误:在 SavedModel 中找不到与标签“服务”关联的 MetaGraphDef