如何获取打字稿中异步函数的返回类型?

马埃里·阿里(Maheer Ali)

考虑我们有如下功能

const upper = (str: string) : string => string.toUpperCase() 

我们可以使用获取函数的类型 ReturnType

type Test = ReturnType<typeof upper>

但是现在考虑我们有一个异步功能。

const getUserData = async (uid: string): Promise<{name: string, email: string}> => {
   ...
};

现在我们如何得到这种类型 {name: string, email: string}

福特04

您可以创建AsyncReturnType具有infer

type AsyncReturnType<T extends (...args: any) => Promise<any>> =
    T extends (...args: any) => Promise<infer R> ? R : any

测试:

const getUserData = async (uid: string): Promise<{ name: string, email: string }> => {...};

type T1 = AsyncReturnType<typeof getUserData> // { name: string; email: string; }

样品

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在打字稿中获取方法返回类型

覆盖打字稿中的函数返回类型

打字稿中的抽象函数返回类型

异步函数不允许打字稿中两个诺言类型的返回类型

如何从打字稿中的同步函数中的异步函数获取结果?

从打字稿中的异步函数返回值

如何基于参数中的函数返回类型指定打字稿条件类型

打字稿:如何从返回函数的输入参数推断高阶函数中的泛型类型

在打字稿中,如何定义异步功能的类型

如何修复打字稿NodeJ中的eslint错误:“函数中缺少返回类型”

如何在父函数中获得异步结果?打字稿

如何强制返回类型的数组到打字稿函数

在打字稿中返回两种类型的函数

什么是打字稿中函数返回类型的扩展

指定返回类型是打字稿中的构造函数或类

在打字稿中获取函数数组的参数类型

函数返回类型的打字稿错误

获取打字稿中子类的返回类型

如何在打字稿中公开API返回的类型

如何设置类型取决于打字稿中的函数参数?

如何在javascript中获取打字稿类型

如何在打字稿中“返回”外部函数定义

如何使用打字稿中的函数从firestore获取文档?

在打字稿中,返回void函数的函数的返回类型是什么?

打字稿如何返回键类型

打字稿中的联合返回类型

打字稿中的通用类型返回

打字稿异步/等待无法确定正确的返回类型

打字稿:为什么PromiseLike可能是异步函数对象中的这种类型?