[tslint]Erwartete eine ‘for-of’-Schleife anstelle einer ‘for’-Schleife mit dieser einfachen Iteration (prefer-for-of)

Lesezeit: 2 Minuten

Benutzeravatar von Juke
Juke

Ich habe einen tslint-Fehler in meiner for-Schleife, wenn ich versuche, ihn zu lösen, es heißt, in for-of zu konvertieren. Ich habe viele Dokumente gesehen, aber es ist nicht hilfreich. Wie kann ich den Lint-Fehler lösen und ich kann tslint:disable-next-line:prefer-for-of nicht ausführen

for (let i = 0; i < this.rows.length; ++i) {
    if (!this.rows[i].selected) {
        this.selectAllChecked = false;
        break;
    }
}

Benutzeravatar von Daniel W. Strimpel
Daniel W Strimpel

Sie werden aufgefordert, ein Format wie das folgende zu verwenden. Das of Das Schlüsselwort durchläuft die Objekte im Array, anstatt die Indizes des Arrays zu durchlaufen. Ich gehe davon aus, dass es ausgelöst wird, weil Sie den Index nur verwenden, um an den Wert im Array zu gelangen (der mit der of Syntax).

for (let row of this.rows) {
    if (!row.selected) {
        this.selectAllChecked = false;
        break;
    }
}

Als Hinweis, Sie können dasselbe mit dem folgenden Einzeiler erreichen:

this.selectAllChecked = this.rows.every(row => row.selected);

  • Ich bekomme diesen Fehler mit einer FileList, ist es ein falsch positives Ergebnis? Weil ich for..of nicht mit Dateilisten verwenden kann

    – Wutzebär

    17. Januar 2020 um 11:21 Uhr

  • @wutzebaer im Moment glaube ich, dass es sich um einen Fehlalarm handelt FileList ist noch kein iterierbares Objekt (obwohl es so aussieht, als würden sie dies basierend auf dem Hinweis in der Spezifikation ändern: w3.org/TR/FileAPI/#filelist-section)

    – Daniel W Strimpel

    17. Januar 2020 um 13:32 Uhr

  • Irgendwelche Vorschläge, wie man über eine FileList iteriert, ohne auf Flusen zu stoßen und gleichzeitig zukunftssicher zu sein?

    – Wutzebär

    20. Januar 2020 um 11:33 Uhr

  • @wutzebaer es gibt seit einiger Zeit ein Problem für genau diese Sache (github.com/palantir/tslint/issues/2021). Es sieht so aus, als ob TSLint zugunsten von ESLint veraltet ist, also wäre die langfristige Strategie, dies zu beheben, die Umstellung darauf. Kurzfristig können Sie diese Regel für diese Zeilen einfach mit der Kommentarsyntax deaktivieren.

    – Daniel W Strimpel

    20. Januar 2020 um 14:59 Uhr

  • Aber was ist, wenn Sie den Index des Elements haben möchten, ist es einfacher, die erste Syntax zu haben

    – Medin

    12. Januar 2021 um 15:32 Uhr

Benutzeravatar von Niranjana VS
Niranjana vs

Im tslint.json wir können innerhalb der Regeln hinzufügen:

"rules": {
    "prefer-for-of": false
}

Dadurch wird das Problem behoben, indem die entsprechende Flusenregel deaktiviert wird.

1430800cookie-check[tslint]Erwartete eine ‘for-of’-Schleife anstelle einer ‘for’-Schleife mit dieser einfachen Iteration (prefer-for-of)

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy