有人可以解释一下为什么这段代码给我错误吗?
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 一样编译它时,我有这个:
错误:async.ts(7,10):错误 TS2339:类型“{}”上不存在属性“forEach”。
最佳答案
实际上我找到了解决方案 ,我们可以简单地将泛型类型添加到我们的 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();
现在它可以完美运行,代码中没有任何困惑:)
关于javascript - TypeScript 异步迭代对象错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38815849/