首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >链式函数的ReturnType<>推断

链式函数的ReturnType<>推断
EN

Stack Overflow用户
提问于 2021-05-29 11:16:54
回答 1查看 66关注 0票数 3

我在用twilio-node pkg,还有函数

代码语言:javascript
复制
lookupResponse = await twilioClient.lookups.v1.phoneNumbers('+123').fetch({type: 'carrier'});

具有明确定义的返回类型Promise。因为我预先初始化了lookupResponse,所以我想直接提取/推断函数的返回类型。

现在,我已经知道如何打开承诺的类型:

代码语言:javascript
复制
export type ThenArg<T> = T extends PromiseLike<infer U> ? U : T;

但是如何指定以前链接过的phoneNumbers函数的参数呢?试试看:

代码语言:javascript
复制
let lookupResponse: ThenArg<
  ReturnType<typeof twilioClient.lookups.v1.phoneNumbers.fetch>
>;

抛出Property 'fetch' does not exist on type 'PhoneNumberListInstance'

我要在这里通过什么?

代码语言:javascript
复制
let lookupResponse: ThenArg<
   ReturnType<typeof twilioClient.lookups.v1.phoneNumbers.???.fetch>
//                                                        ^^^            
>;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-29 11:23:06

我对Twilio一无所知,所以如果我把你引向错误的方向,我会提前道歉,但是基于您的代码,phoneNumbers是一个函数,而不仅仅是一个属性。因此,您需要fetch函数的返回类型,即返回类型的twilioClient.lookups.v1.phoneNumbers。类似于:

代码语言:javascript
复制
type LookupResponseType = ThenArg<
    ReturnType<
        ReturnType<
            typeof twilioClient["lookups"]["v1"]["phoneNumbers"]
        >["fetch"]
    >
>;

操场链接与模型

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67750712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档