我想创建一个具有一些默认值的变量,它是从 promise 中解析的返回类型的扩展接口(interface)。我的功能类似于:
function getAge(): Promise<number> {
return new Promise((resolve) => {
resolve(42)
})
}
我的默认值变量是:
let user: { name: string, age: number } = { name: "", age: 0 }
我试过使用 ReturnType<>,但我似乎只能得到返回类型 Promise<number>
,当我只想返回数字时。
最佳答案
您可以使用条件类型来提取 promise 的值类型:
function getAge(): Promise<{ name: string, age: number }> {
return new Promise((resolve) => {
resolve({ name: "", age: 42 })
})
}
type UnboxPromise<T extends Promise<any>> = T extends Promise<infer U> ? U: never;
let user: UnboxPromise<ReturnType<typeof getAge>> = { name: "", age: 0 }
阅读更多关于条件类型的信息 here
关于typescript - 获取已解决 promise 的返回类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57267067/