Spec-Zone.ru › ESLint

arrow-body-style

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

🔧 Fixable

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

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

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

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

Опции

Правило принимает одну или две опции. Первая — строка, которая может быть:

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

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

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

always

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

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

let foo = () => 0;

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

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

let foo = () => {
    return 0;
};
let bar = (retv, name) => {
    retv[name] = true;
    return retv;
};

as-needed

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

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

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

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

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

let foo1 = () => 0;
let foo2 = (retv, name) => {
    retv[name] = true;
    return retv;
};
let foo3 = () => ({
    bar: {
        foo: 1,
        bar: 2,
    }
});
let foo4 = () => { bar(); };
let foo5 = () => {};
let foo6 = () => { /* do nothing */ };
let foo7 = () => {
    // do nothing.
};
let foo8 = () => ({ bar: 0 });

requireReturnForObjectLiteral

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

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

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

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

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

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

let foo = () => {};
let bar = () => { return { bar: 0 }; };

never

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

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

let foo = () => {return0;};
let bar = (retv, name) => {    retv[name]=true;return retv;};

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

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

let foo = () => 0;
let 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