其中 F 是返回类型 Promise 的函数,typescript,promise,type-inference"/>

首页 > 解决方案 > 返回类型其中 F 是返回类型 Promise 的函数

问题描述

我想将变量的类型设置为T.

如果F是一个没有返回承诺并且只返回一个类型的函数的函数T,我会做这样的事情: let x: ReturnType<typeof F>

但是F是一个返回 a 的函数Promise<T>

我怎样才能做到这一点?

标签: typescriptpromisetype-inference

解决方案


您可以调整Typescript 手册的高级类型的条件类型中的类型推断部分中给出的示例

type Unpacked<T> =
  T extends (...args: any[]) => infer U ? U :
  T extends Promise<infer U> ? U :
  T;

例如,fetch你会得到

type T = Unpacked<Unpacked<typeof fetch>>
// Response

推荐阅读