Skip to content
← Back to rules

eslint/arrow-body-style スタイル

An auto-fix is available for this rule.

何を実行するか

このルールは、アロー関数の本体に波括弧を使用するかどうかを強制または禁止できます。 アロー関数は次のいずれかの形式を使用できます:

  • ブロック本体 () => { ... }
  • あるいは簡潔な本体 () => 式(暗黙的な戻り値付き)

なぜこれが問題なのか

ブロック本体と簡潔な本体の使い方が一貫していないと、コードの読みやすさが低下します。 簡潔な本体は1つの式に限定されており、その値が暗黙的に返されます。

オプション

最初のオプション:

  • 型: string
  • 列挙値: "always", "as-needed", "never"
  • デフォルト: "as-needed"

可能な値:

  • never は関数本体の周りに波括弧を使用しないことを強制します(アロー関数を式の返却専用に制限)
  • always は関数本体の周りに波括弧を使用することを強制します
  • as-needed は省略可能な場合に波括弧を省略することを強制します(デフォルト)

2番目のオプション:

  • 型: object
  • プロパティ:
    • requireReturnForObjectLiteral: boolean(デフォルト:false)— オブジェクトリテラルに対して波括弧と明示的な return を必要とします。

注釈:このオプションは、最初のオプションが "as-needed" である場合にのみ適用されます。

例での設定:

json
{
  "arrow-body-style": ["error", "as-needed", { "requireReturnForObjectLiteral": true }]
}

"never"

never オプションでの不正なコード例:

js
/* arrow-body-style: ["error", "never"] */

/* ✘ 不正: */
const foo = () => {
  return 0;
};

never オプションでの正しいコード例:

js
/* arrow-body-style: ["error", "never"] */

/* ✔ 正しい: */
const foo = () => 0;
const bar = () => ({ foo: 0 });

"always"

always オプションでの不正なコード例:

js
/* arrow-body-style: ["error", "always"] */

/* ✘ 不正: */
const foo = () => 0;

always オプションでの正しいコード例:

js
/* arrow-body-style: ["error", "always"] */

/* ✔ 正しい: */
const foo = () => {
  return 0;
};

"as-needed"(デフォルト)

as-needed オプションでの不正なコード例:

js
/* arrow-body-style: ["error", "as-needed"] */

/* ✘ 不正: */
const foo = () => {
  return 0;
};

as-needed オプションでの正しいコード例:

js
/* arrow-body-style: ["error", "as-needed"] */

/* ✔ 正しい: */
const foo1 = () => 0;

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

const foo3 = () => {
  bar();
};

as-neededrequireReturnForObjectLiteral を使用

{ "requireReturnForObjectLiteral": true } オプションでの不正なコード例:

js
/* arrow-body-style: ["error", "as-needed", { "requireReturnForObjectLiteral": true }] */

/* ✘ 不正: */
const foo = () => ({});
const bar = () => ({ bar: 0 });

{ "requireReturnForObjectLiteral": true } オプションでの正しいコード例:

js
/* arrow-body-style: ["error", "as-needed", { "requireReturnForObjectLiteral": true }] */

/* ✔ 正しい: */
const foo = () => {};
const bar = () => {
  return { bar: 0 };
};

設定

1つ目のオプション

型: "as-needed" | "always" | "never"

2つ目のオプション

このオプションは以下のプロパティを持つオブジェクトです:

requireReturnForObjectLiteral

型: boolean

デフォルト: false

使用方法

このルールを設定ファイルまたは CLI で有効化するには、次のように使用できます:

json
{
  "rules": {
    "arrow-body-style": "error"
  }
}
bash
oxlint --deny arrow-body-style

参照