[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;
    }
}

Solution 1:

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);

Solution 2:

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.