为什么循环的arr.entries()在TS中不起作用? 这在Chrome控制台
中工作得很好 var arr = ['a', 'b', 'c'];
var e = arr.entries();
for (let [index, elem] of e) {
debugger;
console.log(`index = ${index}, elem = ${elem}`);
}
但在TypeScript 2.1.4中没有断点
我也想知道为什么我在ts中遇到这个错误:
Error:(67, 35) TS2495:Type 'IterableIterator<[number, string]>' is not an array type or a string type.
我可以设置为:any
,但很明显,这不是主意
问候
肖恩
答案 0 :(得分:2)
您可能定位es3
或es5
,并states in the docs:
在定位ES5或ES3时,只允许使用值的迭代器 数组类型。在非数组值上使用for循环是错误的, 即使这些非Array值实现了Symbol.iterator属性。
如果你定位es6
,它应该编译没有错误。
答案 1 :(得分:0)
根据Nitzan Tomer的回答,此代码适用于es5
:
var arr = ['a', 'b', 'c'];
for (let index = 0; index < arr.length; index++) {
let elem = arr[index];
console.log(`index = ${index}, elem = ${elem}`);
}
享受。
答案 2 :(得分:0)
tx的帮助,目标es6做到了!