no-lone-blocks
Запрет на ненужные вложенные блоки
В JavaScript до ES6 отдельные блоки кода, ограниченные фигурными скобками, не создают новую область видимости и не имеют практического применения. Например, эти фигурные скобки ничего не меняют в foo:
{
var foo = bar();
}
В ES6 блоки кода могут создавать новую область видимости, если присутствует объявление уровня блока (let и const), объявление класса или функции (в строгом режиме). В этих случаях блок не считается избыточным.
Подробное описание правила
Это правило направлено на устранение ненужных и потенциально запутывающих блоков на верхнем уровне скрипта или внутри других блоков.
Примеры неправильного кода для этого правила:
/*eslint no-lone-blocks: "error"*/
if (foo) {
bar();
}
function bar() {
}
class C {
static {
}
}
Примеры правильного кода для этого правила:
/*eslint no-lone-blocks: "error"*/
while (foo) {
bar();
}
if (foo) {
if (bar) {
baz();
}
}
function bar() {
baz();
}
{
let x = 1;
}
{
const y = 1;
}
{
class Foo {}
}
aLabel: {
}
class C {
static {
lbl: {
if (something) {
break lbl;
}
foo();
}
}
}
Примеры правильного кода для этого правила в среде ES6 и строгом режиме с помощью "parserOptions": { "sourceType": "module" } в конфигурации ESLint или "use strict" директивы в коде:
/*eslint no-lone-blocks: "error"*/
"use strict";
{
function foo() {}
}
Версия
Это правило было добавлено в ESLint v0.4.0.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-lone-blocks