src/content/docs/linter/rules/no-useless-lone-block-statements.mdx
import { Tabs, TabItem } from '@astrojs/starlight/components';
<Tabs> <TabItem label="JavaScript (and super languages)" icon="seti:javascript"> ## Summary - Rule available since: `v1.3.3` - Diagnostic Category: [`lint/complexity/noUselessLoneBlockStatements`](/reference/diagnostics#diagnostic-category) - This rule is **recommended**, meaning it is enabled by default. - This rule has a [**safe**](/linter/#safe-fixes) fix. - The default severity of this rule is [**information**](/reference/diagnostics#information). - Sources: - Same as [`no-lone-blocks`](https://eslint.org/docs/latest/rules/no-lone-blocks){
"linter": {
"rules": {
"complexity": {
"noUselessLoneBlockStatements": "error"
}
}
}
}
Disallow unnecessary nested block statements.
In JavaScript, prior to ES6, standalone code blocks delimited by curly braces do not create a new scope and have no use. In ES6, code blocks may create a new scope if a block-level binding (let and const), a class declaration or a function declaration (in strict mode) are present. A block is not considered redundant in these cases.
{}
if (foo) {
bar();
{
baz();
}
}
while (foo) {
bar();
}