从Bluebird构建一个类型化的allSettled()函数

时间:2017-04-15 01:19:11

标签: typescript bluebird

我想在Typescript中定义一个辅助函数allSettled(),它模拟Bluebird网站上讨论的模式:

http://bluebirdjs.com/docs/api/reflect.html

我的尝试在这里:

export function allSettled<T>(promiseHash: IDictionary<Promise<T>>): IDictionary<Promise.Inspection<T>> {
  return Promise.props(
    Object
      .keys(promiseHash)
      .reduce((newObject: IDictionary<Promise<T>>, key: string) => {
        newObject[key] = promiseHash[key].reflect();
        return newObject;
      }, {})
  );
}

我将IDictionary定义为:

interface IDictionary<T> {
  [key: string]: T;
};

从功能上讲,上面的脚本可以工作,但是Typescript抱怨:

  

类型'Bluebird'不能分配给'IDictionary&gt;'类型。     “Bluebird”类型中缺少索引签名。

非常感谢任何帮助。

0 个答案:

没有答案