useValidForDirection
Summary
Section titled Summary- Rule available since:
v1.0.0
- Diagnostic Category:
lint/correctness/useValidForDirection
- This rule is recommended, which means is enabled by default.
- This rule doesn’t have a fix.
- The default severity of this rule is error.
- Sources:
- Same as
for-direction
- Same as
Description
Section titled DescriptionEnforce “for” loop update clause moving the counter in the right direction.
A for loop with a stop condition that can never be reached, such as one with a counter that moves in the wrong direction, will run infinitely. While there are occasions when an infinite loop is intended, the convention is to construct such loops as while loops. More typically, an infinite for loop is a bug.
Examples
Section titled ExamplesInvalid
Section titled Invalidfor (var i = 0; i < 10; i--) {}
code-block.js:1:5 lint/correctness/useValidForDirection ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ The update clause in this loop moves the variable in the wrong direction.
> 1 │ for (var i = 0; i < 10; i—) {
│ ^^^^^^^^^^^^^^^^^^^^^^^^
2 │ }
3 │
for (var i = 10; i >= 0; i++) {}
code-block.js:1:5 lint/correctness/useValidForDirection ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ The update clause in this loop moves the variable in the wrong direction.
> 1 │ for (var i = 10; i >= 0; i++) {
│ ^^^^^^^^^^^^^^^^^^^^^^^^^
2 │ }
3 │
for (var i = 0; i > 10; i++) {}
code-block.js:1:5 lint/correctness/useValidForDirection ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ The update clause in this loop moves the variable in the wrong direction.
> 1 │ for (var i = 0; i > 10; i++) {
│ ^^^^^^^^^^^^^^^^^^^^^^^^
2 │ }
3 │
Valid
Section titled Validfor (var i = 0; i < 10; i++) {}
How to configure
Section titled How to configure{ "linter": { "rules": { "correctness": { "useValidForDirection": "error" } } }}