版本

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" 选项时,不正确 代码示例

在 Playground 中打开
/* eslint function-paren-newline: ["error", "always"] */

function foo(bar, baz) {}

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

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

foo(bar, baz);

使用 "always" 选项时,正确 代码示例

在 Playground 中打开
/* eslint function-paren-newline: ["error", "always"] */

function foo(
  bar,
  baz
) {}

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

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

foo(
  bar,
  baz
);

使用 "never" 选项时,不正确 代码示例

在 Playground 中打开
/* eslint function-paren-newline: ["error", "never"] */

function foo(
  bar,
  baz
) {}

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

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

foo(
  bar,
  baz
);

使用 "never" 选项时,正确 代码示例

在 Playground 中打开
/* 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" 选项时,不正确 代码示例

在 Playground 中打开
/* 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" 选项时,正确 代码示例

在 Playground 中打开
/* 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" 选项时,不正确 代码示例

在 Playground 中打开
/* 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" 选项时,正确 代码示例

在 Playground 中打开
/* 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" 选项时,不正确 代码示例

在 Playground 中打开
/* 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" 选项时,正确 代码示例

在 Playground 中打开
/* 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 } 选项时,不正确 代码示例

在 Playground 中打开
/* 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 } 选项时,正确 代码示例

在 Playground 中打开
/* 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 中引入。

资源

更改语言