为什么arr.entries()for循环在TS中不起作用?

时间:2016-12-26 15:18:15

标签: typescript

为什么循环的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,但很明显,这不是主意

问候

肖恩

3 个答案:

答案 0 :(得分:2)

您可能定位es3es5,并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做到了!

相关问题