Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

[tslint]Expected a 'for-of' loop instead of a 'for' loop with this simple iteration (prefer-for-of)

I have got a tslint error to my for loop when I try to resolve it it says to convert to for-of. I have seen many docs but its not helpful.How can I solve the lint error and I cannot do 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;
    }
}
like image 781
Juke Avatar asked Mar 12 '18 19:03

Juke


2 Answers

It is asking you to use format like the following. The of keyword loops over the objects in the array instead of looping over the indexes of the array. I'm assuming it is triggering because you are only using the index as a way of getting to the value in the array (which can be cleaned up using the of syntax).

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

As a note, you can accomplish the same thing using the following one-liner:

this.selectAllChecked = this.rows.every(row => row.selected);
like image 191
Daniel W Strimpel Avatar answered Nov 19 '22 19:11

Daniel W Strimpel


In tslint.json we can add inside the rules:

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

This will resolve the issue by disabling the relevant lint rule.

like image 5
Niranjana V S Avatar answered Nov 19 '22 18:11

Niranjana V S