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