TypeScript中,当你这么用Promise.all时,会遇到类型检查错误的问题。
Promise.all( Promise<XX>[] )
因为lib.es6.d.ts中,对Promise.all这么定义
all<TAll>(values: Iterable<TAll | PromiseLike<TAll>>): Promise<TAll[]>;
所以,对上述案例,TAll被自动识别为了 Promise
该定义文件的PromiseLike跟Promise似乎没什么关系,所以没能自动识别。
所以使用时,如果Promise.all传入的是一个数组,那么建议的用法是强制制定类型,如下。
Promise.all<XX>( Promise<XX>[] )
(正文完)