Spec-Zone.ru › ESLint

no-lone-blocks

Запрещает ненужные вложенные блоки

В JavaScript до ES6 отдельные блоки кода, ограниченные фигурными скобками, не создают новую область видимости и не имеют практического применения. Например, эти фигурные скобки ничего не делают с foo:

{
    var foo = bar();
}

В ES6 блоки кода могут создавать новую область видимости, если в них присутствует блочное объявление (let и const), объявление класса или объявление функции (в строгом режиме). В этих случаях блок не считается избыточным.

Подробное описание правила

Это правило предназначено для устранения ненужных и потенциально запутывающих блоков на верхнем уровне скрипта или внутри других блоков.

Примеры неправильного кода для этого правила:

Открыть в Playground
/*eslint no-lone-blocks: "error"*/

{}

if (foo) {
    bar();
    {baz();}
}

function bar() {
    {baz();}
}

{functionfoo(){}}

{aLabel:{}}

class C {
    static {
        {foo();}
    }
}

Примеры правильного кода для этого правила:

Открыть в Playground
/*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 и строгом режиме, включённом с помощью "languageOptions": { "sourceType": "module" } в конфигурации ESLint или директивы "use strict" в коде:

Открыть в Playground
/*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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API