typescript - De ce bucla for arr.entries() nu funcționează în TS?
De ce bucla for arr.entries() nu funcționează în TS? asta funcționează perfect în consola Chrome
var arr = ['a', 'b', 'c'];
var e = arr.entries();
for (let [index, elem] of e) {
debugger;
console.log(`index = ${index}, elem = ${elem}`);
}
dar nu se oprește la breakpoint în TypeScript 2.1.4, de asemenea mă întreb de ce primesc această eroare în ts: Error:(67, 35) TS2495: Tipul 'IterableIterator<[number, string]>' nu este un tip de array sau un tip de string. Pot seta ca :any dar evident că acesta nu este ideea
salutări
Sean
Răspuns #1
Probabil vizați es3 sau es5, și așa cum este menționat în documentație:
Când se vizează ES5 sau ES3, iteratoarele sunt permise doar pentru valorile de tip Array. Este o eroare să se folosească buclele for..of pe valori non-Array, chiar dacă aceste valori non-Array implementează proprietatea Symbol.iterator.
Dacă vizezi es6, ar trebui să compileze fără erori.
Răspunsul #2
Pe baza răspunsului lui Nitzan Tomer, acest cod ar funcționa cu es5:
var arr = ['a', 'b', 'c'];
for (let index = 0; index < arr.length; index++) {
let elem = arr[index];
console.log(`index = ${index}, elem = ${elem}`);
}
Bucură-te.
