useBlockStatements
Summary
Section titled Summary- Rule available since:
v1.0.0
- Diagnostic Category:
lint/style/useBlockStatements
- This rule has an unsafe fix.
- The default severity of this rule is information.
- Sources:
- Same as
curly
- Same as
Description
Section titled DescriptionRequires following curly brace conventions.
JavaScript allows the omission of curly braces when a block contains only one statement. However, it is considered by many to be best practice to never omit curly braces around blocks, even when they are optional, because it can lead to bugs and reduces code clarity.
Examples
Section titled ExamplesInvalid
Section titled Invalid if (x) x;
code-block.js:1:2 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ℹ Block statements are preferred in this position.
> 1 │ if (x) x;
│ ^^^^^^^^^
2 │
ℹ Unsafe fix: Wrap the statement with a JsBlockStatement
1 │ ·if·(x)·{·x;·}
│ ++ ++
if (x) { x; } else y;
code-block.js:3:4 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ℹ Block statements are preferred in this position.
1 │ if (x) {
2 │ x;
> 3 │ } else y;
│ ^^^^^^^
4 │
ℹ Unsafe fix: Wrap the statement with a JsBlockStatement
3 │ ·}·else·{·y;·}
│ ++ ++
if (x) { x;} else if (y) y;
code-block.js:3:8 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ℹ Block statements are preferred in this position.
1 │ if (x) {
2 │ x;
> 3 │ } else if (y) y;
│ ^^^^^^^^^
4 │
ℹ Unsafe fix: Wrap the statement with a JsBlockStatement
3 │ }·else·if·(y)·{·y;·}
│ ++ ++
for (;;);
code-block.js:1:4 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ℹ Block statements are preferred in this position.
> 1 │ for (;;);
│ ^^^^^^^^^
2 │
ℹ Unsafe fix: Wrap the statement with a JsBlockStatement
1 │ - ···for·(;;);
1 │ + ···for·(;;)·{}
2 2 │
for (p in obj);
code-block.js:1:4 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ℹ Block statements are preferred in this position.
> 1 │ for (p in obj);
│ ^^^^^^^^^^^^^^^
2 │
ℹ Unsafe fix: Wrap the statement with a JsBlockStatement
1 │ - ···for·(p·in·obj);
1 │ + ···for·(p·in·obj)·{}
2 2 │
for (x of xs);
code-block.js:1:3 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ℹ Block statements are preferred in this position.
> 1 │ for (x of xs);
│ ^^^^^^^^^^^^^^
2 │
ℹ Unsafe fix: Wrap the statement with a JsBlockStatement
1 │ - ··for·(x·of·xs);
1 │ + ··for·(x·of·xs)·{}
2 2 │
do; while (x);
code-block.js:1:3 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ℹ Block statements are preferred in this position.
> 1 │ do;
│ ^^^
> 2 │ while (x);
│ ^^^^^^^^^^
3 │
ℹ Unsafe fix: Wrap the statement with a JsBlockStatement
1 │ - ··do;
1 │ + ··do·{}
2 2 │ while (x);
3 3 │
while (x);
code-block.js:1:4 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ℹ Block statements are preferred in this position.
> 1 │ while (x);
│ ^^^^^^^^^^
2 │
ℹ Unsafe fix: Wrap the statement with a JsBlockStatement
1 │ - ···while·(x);
1 │ + ···while·(x)·{}
2 2 │
with (x);
code-block.js:1:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ with
statements are not allowed in strict mode
> 1 │ with (x);
│ ^^^^^^^^^
2 │
How to configure
Section titled How to configure{ "linter": { "rules": { "style": { "useBlockStatements": "error" } } }}