版本

function-paren-newline

強制函式括號內的一致換行

🔧 可修正

此規則報告的一些問題可由 --fix 命令列選項自動修正

此規則已在 ESLint v8.53.0 中棄用。請使用 @stylistic/eslint-plugin-js 中的對應規則

許多樣式指南要求或禁止在函式括號內使用換行符。

規則詳細資訊

此規則強制函式參數或引數的括號內使用一致的換行符。

選項

此規則有一個選項,可以是字串或物件。

  • "always" 要求所有函式括號內都必須換行。
  • "never" 禁止所有函式括號內換行。
  • "multiline" (預設) 如果任何參數/引數之間有換行,則要求函式括號內換行。否則,禁止換行。
  • "multiline-arguments" 的運作方式與 multiline 類似,但如果只有一個參數/引數,則允許在函式括號內換行。
  • "consistent" 要求每對括號都一致使用換行符。如果一對括號中一個括號內有換行,而另一個括號沒有,則會報告錯誤。
  • { "minItems": value } 要求參數/引數的數量至少為 value 時,函式括號內才換行。否則,禁止換行。

設定範例

{
  "rules": {
    "function-paren-newline": ["error", "never"]
  }
}
{
  "rules": {
    "function-paren-newline": ["error", { "minItems": 3 }]
  }
}

使用 "always" 選項時,此規則的不正確程式碼範例

在遊樂場中開啟
/* eslint function-paren-newline: ["error", "always"] */

function foo(bar, baz) {}

var qux = function(bar, baz) {};

var qux = (bar, baz) => {};

foo(bar, baz);

使用 "always" 選項時,此規則的正確程式碼範例

在遊樂場中開啟
/* eslint function-paren-newline: ["error", "always"] */

function foo(
  bar,
  baz
) {}

var qux = function(
  bar, baz
) {};

var qux = (
  bar,
  baz
) => {};

foo(
  bar,
  baz
);

使用 "never" 選項時,此規則的不正確程式碼範例

在遊樂場中開啟
/* eslint function-paren-newline: ["error", "never"] */

function foo(
  bar,
  baz
) {}

var qux = function(
  bar, baz
) {};

var qux = (
  bar,
  baz
) => {};

foo(
  bar,
  baz
);

使用 "never" 選項時,此規則的正確程式碼範例

在遊樂場中開啟
/* eslint function-paren-newline: ["error", "never"] */

function foo(bar, baz) {}

function qux(bar,
             baz) {}

var foobar = function(bar, baz) {};

var foobar = (bar, baz) => {};

foo(bar, baz);

foo(bar,
  baz);

使用預設 "multiline" 選項時,此規則的不正確程式碼範例

在遊樂場中開啟
/* eslint function-paren-newline: ["error", "multiline"] */

function foo(bar,
  baz
) {}

var qux = function(
  bar, baz
) {};

var qux = (
  bar,
  baz) => {};

foo(bar,
  baz);

foo(
  function() {
    return baz;
  }
);

使用預設 "multiline" 選項時,此規則的正確程式碼範例

在遊樂場中開啟
/* eslint function-paren-newline: ["error", "multiline"] */

function foo(bar, baz) {}

var foobar = function(
  bar,
  baz
) {};

var foobar = (bar, baz) => {};

foo(bar, baz, qux);

foo(
  bar,
  baz,
  qux
);

foo(function() {
  return baz;
});

使用 "consistent" 選項時,此規則的不正確程式碼範例

在遊樂場中開啟
/* eslint function-paren-newline: ["error", "consistent"] */

function foo(bar,
  baz
) {}

var qux = function(bar,
  baz
) {};

var qux = (
  bar,
  baz) => {};

foo(
  bar,
  baz);

foo(
  function() {
    return baz;
  });

使用 "consistent" 選項時,此規則的正確程式碼範例

在遊樂場中開啟
/* eslint function-paren-newline: ["error", "consistent"] */

function foo(bar,
  baz) {}

var qux = function(bar, baz) {};

var qux = (
  bar,
  baz
) => {};

foo(
  bar, baz
);

foo(
  function() {
    return baz;
  }
);

使用 "multiline-arguments" 選項時,此規則的不正確程式碼範例

在遊樂場中開啟
/* eslint function-paren-newline: ["error", "multiline-arguments"] */

function foo(bar,
  baz
) {}

var foobar = function(bar,
  baz
) {};

var foobar = (
  bar,
  baz) => {};

foo(
  bar,
  baz);

foo(
  bar, qux,
  baz
);

使用一致的 "multiline-arguments" 選項時,此規則的正確程式碼範例

在遊樂場中開啟
/* eslint function-paren-newline: ["error", "multiline-arguments"] */

function foo(
  bar,
  baz
) {}

var qux = function(bar, baz) {};

var qux = (
  bar
) => {};

foo(
  function() {
    return baz;
  }
);

使用 { "minItems": 3 } 選項時,此規則的不正確程式碼範例

在遊樂場中開啟
/* eslint function-paren-newline: ["error", { "minItems": 3 }] */

function foo(
  bar,
  baz
) {}

function foobar(bar, baz, qux) {}

var barbaz = function(
  bar, baz
) {};

var barbaz = (
  bar,
  baz
) => {};

foo(
  bar,
  baz
);

使用 { "minItems": 3 } 選項時,此規則的正確程式碼範例

在遊樂場中開啟
/* eslint function-paren-newline: ["error", { "minItems": 3 }] */

function foo(bar, baz) {}

var foobar = function(
  bar,
  baz,
  qux
) {};

var foobar = (
  bar, baz, qux
) => {};

foo(bar, baz);

foo(
  bar, baz, qux
);

何時不使用它

如果您不想強制函式括號內使用一致的換行符,請不要開啟此規則。

版本

此規則是在 ESLint v4.6.0 中引入的。

資源

變更語言