【发布时间】:2019-06-04 20:44:13
【问题描述】:
我想将变量的类型设置为T。
如果F 是一个没有返回promise 并且只返回T 类型的对象的函数,我会做这样的事情:
let x: ReturnType<typeof F>
但是F是一个返回Promise<T>的函数
我该怎么做?
【问题讨论】:
标签: typescript promise type-inference
我想将变量的类型设置为T。
如果F 是一个没有返回promise 并且只返回T 类型的对象的函数,我会做这样的事情:
let x: ReturnType<typeof F>
但是F是一个返回Promise<T>的函数
我该怎么做?
【问题讨论】:
标签: typescript promise type-inference
您可以修改 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
【讨论】: