javascript - [tslint]Förväntade en 'for-of'-slinga istället för en 'for'-slinga med denna enkla iteration (prefer-for-of)
Jag har fått ett tslint-fel på min for-loop och när jag försöker lösa det säger det att jag ska konvertera till for-of. Jag har sett många dokument men de är inte hjälpsamma. Hur kan jag lösa lint-felet och jag kan inte göra tslint:disable-next-line:prefer-for-of
for (let i = 0; i < this.rows.length; ++i) {
if (!this.rows[i].selected) {
this.selectAllChecked = false;
break;
}
}
Svar #1
Den ber dig att använda formatet som följande. Nyckelordet of loopar över objekten i arrayen istället för att loopa över indexen i arrayen. Jag antar att det triggas eftersom du bara använder indexet som ett sätt att nå värdet i arrayen (vilket kan förenklas med of-syntaxen).
for (let row of this.rows) {
if (!row.selected) {
this.selectAllChecked = false;
break;
}
}
Som en anmärkning kan du uppnå samma sak med följande enradare:
this.selectAllChecked = this.rows.every(row => row.selected);
Svar #2
I tslint.json kan vi lägga till inne i reglerna:
"rules": {
"prefer-for-of": false
}
Detta kommer att lösa problemet genom att inaktivera den relevanta lint-regeln.
