Spec-Zone.ru › ESLint

arrow-body-style

Требовать фигурные скобки вокруг тел стрелочных функций

🔧 Исправляемое

Некоторые проблемы, о которых сообщает это правило, автоматически исправляются с помощью параметра командной строки --fix

❄️ Замороженное

Это правило в настоящее время заморожено, и запросы на добавление функций не принимаются.

У стрелочных функций есть две синтаксические формы тела функции. Оно может быть задано в виде блочного тела (обозначается фигурными скобками) () => { ... } или в виде одного выражения () => ..., значение которого возвращается неявно.

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

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

Параметры

Правило принимает один или два параметра. Первый — это строка, которая может иметь следующие значения:

  • "always" требует фигурные скобки вокруг тела функции
  • "as-needed" требует опускать фигурные скобки, если это возможно (значение по умолчанию)
  • "never" запрещает фигурные скобки вокруг тела функции (ограничивает использование стрелочных функций ролью возвращающих выражение)

Второй параметр — это объект для более точной настройки, если первый параметр имеет значение "as-needed". Сейчас доступен только параметр requireReturnForObjectLiteral — логическое свойство. По умолчанию его значение — false. Если установить значение true, правило будет требовать фигурные скобки и явный оператор return для литералов объектов.

"arrow-body-style": ["error", "always"]

always

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

Открыть в Playground
/*eslint arrow-body-style: ["error", "always"]*/

const foo = () => 0;

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

Открыть в Playground
/*eslint arrow-body-style: ["error", "always"]*/

const foo = () => {
    return 0;
};

const bar = (retv, name) => {
    retv[name] = true;
    return retv;
};

as-needed

Примеры неправильного кода для этого правила со значением параметра "as-needed" по умолчанию:

Открыть в Playground
/*eslint arrow-body-style: ["error", "as-needed"]*/

const foo = () => {return0;};

const bar = () => {return{bar:{foo:1,bar:2,}};};

Примеры правильного кода для этого правила со значением параметра "as-needed" по умолчанию:

Открыть в Playground
/*eslint arrow-body-style: ["error", "as-needed"]*/

const foo1 = () => 0;

const foo2 = (retv, name) => {
    retv[name] = true;
    return retv;
};

const foo3 = () => ({
    bar: {
        foo: 1,
        bar: 2,
    }
});

const foo4 = () => { bar(); };
const foo5 = () => {};
const foo6 = () => { /* do nothing */ };

const foo7 = () => {
    // do nothing.
};

const foo8 = () => ({ bar: 0 });

requireReturnForObjectLiteral

Этот параметр применяется только вместе с параметром "as-needed".

Примеры неправильного кода для этого правила с параметром { "requireReturnForObjectLiteral": true }:

Открыть в Playground
/*eslint arrow-body-style: ["error", "as-needed", { "requireReturnForObjectLiteral": true }]*/

const foo = () => ({});

const bar = () => ({ bar: 0 });

Примеры правильного кода для этого правила с параметром { "requireReturnForObjectLiteral": true }:

Открыть в Playground
/*eslint arrow-body-style: ["error", "as-needed", { "requireReturnForObjectLiteral": true }]*/

const foo = () => {};

const bar = () => { return { bar: 0 }; };

never

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

Открыть в Playground
/*eslint arrow-body-style: ["error", "never"]*/

const foo = () => {return0;};

const bar = (retv, name) => {    retv[name]=true;return retv;};

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

Открыть в Playground
/*eslint arrow-body-style: ["error", "never"]*/

const foo = () => 0;

const bar = () => ({ foo: 0 });

Версия

Это правило появилось в ESLint v1.8.0.

Ресурсы

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/arrow-body-style

Spec-Zone.ru

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