有人可以解释一下为什么这段代码会给我错误吗?
var promise = new Promise((resolve, reject) => {
resolve([1, 2, 3, 4, 5]);
});
async function doSomethingAsync() {
var data = await promise;
data.forEach(v => console.log(v));
}
doSomethingAsync();
当我尝试编译这个像tsc file.ts --target ES6我有这个:
error:async.ts(7,10): error TS2339: Property 'forEach' does not exist on type '{}'.
答案 0 :(得分:1)
其实我找到了解决方案 ,我们可以简单地在我们的Promise中添加泛型类型,如:
'use strict';
var promise = new Promise<any[]>((resolve, reject) => {
resolve(["gdfgdfgdf", "dfggfd", 1, 2, {}]);
});
async function doSomethingAsync() {
let data = await promise;
for (let i of data) {
console.log(i);
}
}
doSomethingAsync();
现在它完美无缺,代码中没有任何混乱:)