arrow-body-style
Требовать фигурные скобки вокруг тела стрелочной функции
Некоторые проблемы, обнаруженные этой инструкцией, автоматически исправляются с помощью опции --fix командной строки
Стрелочные функции имеют две синтаксические формы для тела функции. Они могут быть определены с телом блока (обозначенным фигурными скобками) () => { ... } или с одним выражением () => ..., значение которого неявно возвращается.
Подробное описание правила
Это правило может навязывать или запрещать использование фигурных скобок вокруг тела стрелочной функции.
Опции
Правило принимает одну или две опции. Первая — строка, которая может быть:
-
"always"навязывает использование фигурных скобок вокруг тела функции -
"as-needed"навязывает отсутствие фигурных скобок, когда их можно опустить (по умолчанию) -
"never"навязывает отсутствие фигурных скобок вокруг тела функции (ограничивает стрелочные функции ролью возвращения выражения)
Вторая — объект для более тонкой настройки, когда первая опция "as-needed". В настоящее время доступна только опция requireReturnForObjectLiteral, булево свойство. Оно false по умолчанию. Если установлено в true, требуются фигурные скобки и явное возвращение для литералов объектов.
"arrow-body-style": ["error", "always"]
always
Примеры некорректного кода для этого правила с опцией "always":
/*eslint arrow-body-style: ["error", "always"]*/
let foo = () => ;
Примеры корректного кода для этого правила с опцией "always":
/*eslint arrow-body-style: ["error", "always"]*/
let foo = () => {
return 0;
};
let bar = (retv, name) => {
retv[name] = true;
return retv;
};
as-needed
Примеры некорректного кода для этого правила с опцией по умолчанию "as-needed":
/*eslint arrow-body-style: ["error", "as-needed"]*/
let foo = () => ;
let bar = () => ;
Примеры корректного кода для этого правила с опцией по умолчанию "as-needed":
/*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 }:
/*eslint arrow-body-style: ["error", "as-needed", { "requireReturnForObjectLiteral": true }]*/
let foo = () => ();
let bar = () => ();
Примеры корректного кода для этого правила с опцией { "requireReturnForObjectLiteral": true }:
/*eslint arrow-body-style: ["error", "as-needed", { "requireReturnForObjectLiteral": true }]*/
let foo = () => {};
let bar = () => { return { bar: 0 }; };
never
Примеры некорректного кода для этого правила с опцией "never":
/*eslint arrow-body-style: ["error", "never"]*/
let foo = () => ;
let bar = (retv, name) => ;
Примеры корректного кода для этого правила с опцией "never":
/*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