k8w.io
TypeScript使用Promise.all时类型检查的坑
2017-11-20作者:k8w

TypeScript中,当你这么用Promise.all时,会遇到类型检查错误的问题。

Promise.all( Promise<XX>[] )

因为lib.es6.d.ts中,对Promise.all这么定义

all<TAll>(values: Iterable<TAll | PromiseLike<TAll>>): Promise<TAll[]>;

所以,对上述案例,TAll被自动识别为了 Promise;而实际上,TAll应该是XX。
该定义文件的PromiseLike跟Promise似乎没什么关系,所以没能自动识别。
所以使用时,如果Promise.all传入的是一个数组,那么建议的用法是强制制定类型,如下。

Promise.all<XX>( Promise<XX>[] )
(正文完)
标签:TypeScript
留言(0条)
发表新留言
您的大名:
必填
电子邮箱:
不公开,仅用于向你发送回复