推断链式函数的 ReturnType<>
Inferring the ReturnType<> of a chained function
我正在使用 twilio-node
pkg,还有 fetch
function:
lookupResponse = await twilioClient.lookups.v1.phoneNumbers('+123').fetch({type: 'carrier'});
具有明确定义的 return 类型,Promise<PhoneNumberInstance>
。由于我事先初始化了 lookupResponse
,我想直接提取/推断函数的 return 类型。
现在,我已经知道如何打开 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
是一个函数,而不仅仅是 属性。所以你需要 return 类型的 fetch
函数,它位于 twilioClient.lookups.v1.phoneNumbers
的 return 类型上。类似于:
type LookupResponseType = ThenArg<
ReturnType<
ReturnType<
typeof twilioClient["lookups"]["v1"]["phoneNumbers"]
>["fetch"]
>
>;
我正在使用 twilio-node
pkg,还有 fetch
function:
lookupResponse = await twilioClient.lookups.v1.phoneNumbers('+123').fetch({type: 'carrier'});
具有明确定义的 return 类型,Promise<PhoneNumberInstance>
。由于我事先初始化了 lookupResponse
,我想直接提取/推断函数的 return 类型。
现在,我已经知道如何打开 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
是一个函数,而不仅仅是 属性。所以你需要 return 类型的 fetch
函数,它位于 twilioClient.lookups.v1.phoneNumbers
的 return 类型上。类似于:
type LookupResponseType = ThenArg<
ReturnType<
ReturnType<
typeof twilioClient["lookups"]["v1"]["phoneNumbers"]
>["fetch"]
>
>;