【发布时间】:2018-08-03 07:33:43
【问题描述】:
我有一个函数接受一个对象,其中每个道具都是一个承诺。它等待所有的承诺完成,然后返回一个具有相同道具但现在已解析值的新对象。
resolved_props.company 应该是 string,而不是 Promise<string>
// TODO: fix the types on this
function promise_props<T>(obj:T):Promise<T> {
const keys = Object.keys(obj)
const len = keys.length
const awaitables = new Array<T>(len)
for (var i = 0; i < len; i++) awaitables[i] = (obj as any)[keys[i]]
return Promise.all(awaitables).then((results) => {
const byName:any = {}
for (var i = 0; i < len; i++) byName[keys[i]] = results[i]
return byName
})
}
【问题讨论】:
-
你需要安装
typescript@next或者等待TypeScript 2.8发布。它将带来允许unwrap a promise type的条件类型。
标签: typescript typescript-typings