跳至内容

@stylistic/js/

function-paren-newline

许多风格指南要求或禁止在函数圆括号内换行。

规则细节

此规则强制在函数参数或参数的圆括号内一致地换行。

选项

此规则只有一个选项,可以是字符串或对象。

  • "always" 要求在所有函数圆括号内换行。
  • "never" 禁止在所有函数圆括号内换行。
  • "multiline"(默认)如果函数参数/参数之间存在换行符,则要求在函数圆括号内换行。否则,它将禁止换行。
  • "multiline-arguments" 的工作方式与 multiline 相似,但允许在函数圆括号内换行,即使只有一个参数/参数。
  • "consistent" 要求每对圆括号内一致地使用换行符。如果一对圆括号中一个圆括号内有换行符,而另一个圆括号内没有,则会报告错误。
  • { "minItems": value } 要求在函数圆括号内换行,如果参数/参数的数量至少为 value。否则,它将禁止换行。

示例配置

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

此规则使用 "always" 选项的错误代码示例

js
/* eslint @stylistic/js/function-paren-newline: ["error", "always"] */

function foo
(
bar, baz
)
{}
var qux = function
(
bar, baz
)
{};
var qux =
(
bar, baz
)
=> {};
foo
(
bar, baz
)
;
错误

此规则使用 "always" 选项的正确代码示例

js
/* eslint @stylistic/js/function-paren-newline: ["error", "always"] */

function foo(
  bar,
  baz
) {}

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

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

foo(
  bar,
  baz
);
正确

此规则使用 "never" 选项的错误代码示例

js
/* eslint @stylistic/js/function-paren-newline: ["error", "never"] */

function foo
(
bar, baz
)
{}
var qux = function
(
bar, baz
)
{};
var qux =
(
bar, baz
)
=> {};
foo
(
bar, baz
)
;
错误

此规则使用 "never" 选项的正确代码示例

js
/* eslint @stylistic/js/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" 选项的错误代码示例

js
/* eslint @stylistic/js/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" 选项的正确代码示例

js
/* eslint @stylistic/js/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" 选项的错误代码示例

js
/* eslint @stylistic/js/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" 选项的正确代码示例

js
/* eslint @stylistic/js/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" 选项时,此规则的错误代码示例

js
/* eslint @stylistic/js/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" 选项时,此规则的正确代码示例

js
/* eslint @stylistic/js/function-paren-newline: ["error", "multiline-arguments"] */

function foo(
  bar,
  baz
) {}

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

var qux = (
  bar
) => {};

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

使用 { "minItems": 3 } 选项时,此规则的错误代码示例

js
/* eslint @stylistic/js/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 } 选项时,此规则的正确代码示例

js
/* eslint @stylistic/js/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
);
正确

何时不使用它

如果您不想在函数括号内强制执行一致的换行符,请不要启用此规则。