gpt4 book ai didi

typescript - 推断链式函数的 ReturnType<>

转载 作者:行者123 更新时间:2023-12-05 03:41:27 25 4
gpt4 key购买 nike

我正在使用 twilio-node pkg 并且有 fetch function :

lookupResponse = await twilioClient.lookups.v1.phoneNumbers('+123').fetch({type: 'carrier'});

具有明确定义的返回类型, Promise<PhoneNumberInstance> .因为我正在初始化 lookupResponse事先,我想直接提取/推断函数的返回类型。

现在,我已经知道如何解包 promise 的类型了:

export type ThenArg<T> = T extends PromiseLike<infer U> ? U : T;

但是我如何指定先前链接的参数 phoneNumbers功能?试试这个:

let lookupResponse: ThenArg<
ReturnType<typeof twilioClient.lookups.v1.phoneNumbers.fetch>
>;

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

我需要在这里传递什么?

let lookupResponse: ThenArg<
ReturnType<typeof twilioClient.lookups.v1.phoneNumbers.???.fetch>
// ^^^
>;

最佳答案

我对 Twilio 一无所知,所以如果我以错误的方式引导您,请提前致歉,但根据您的代码,phoneNumbers 是一个函数,而不仅仅是一个属性。因此,您需要 fetch 函数的返回类型,它位于 twilioClient.lookups.v1.phoneNumbers 的返回类型上。像这样的东西:

type LookupResponseType = ThenArg<
ReturnType<
ReturnType<
typeof twilioClient["lookups"]["v1"]["phoneNumbers"]
>["fetch"]
>
>;

Playground link with mockup

关于typescript - 推断链式函数的 ReturnType<>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67750712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com