【问题标题】:ReturnType<typeof F> where F is a function that returns type Promise<T>ReturnType<typeof F> 其中 F 是返回类型 Promise<T> 的函数
【发布时间】:2019-06-04 20:44:13
【问题描述】:

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

如果F 是一个没有返回promise 并且只返回T 类型的对象的函数,我会做这样的事情: let x: ReturnType&lt;typeof F&gt;

但是F是一个返回Promise&lt;T&gt;的函数

我该怎么做?

【问题讨论】:

    标签: typescript promise type-inference


    【解决方案1】:

    您可以修改 Typescript 手册的 Advanced Types 章节的 Type inference in conditional types 部分中给出的示例

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-05
      • 2021-07-05
      • 2019-02-10
      • 2020-05-30
      • 1970-01-01
      • 2018-09-20
      • 1970-01-01
      相关资源
      最近更新 更多