コンテンツにスキップ

@stylistic/js/

function-paren-newline

多くのスタイルガイドでは、関数のパラメータの括弧内に改行を入れるか、入れないかを規定しています。

ルールの詳細

このルールは、関数のパラメータまたは引数の括弧内の改行の整合性を強制します。

オプション

このルールには、文字列またはオブジェクトのいずれかである単一のオプションがあります。

  • "always" は、すべての関数のパラメータの括弧内に改行を必須とします。
  • "never" は、すべての関数のパラメータの括弧内の改行を禁止します。
  • "multiline" (デフォルト) は、パラメータ/引数の間に改行がある場合、関数のパラメータの括弧内に改行を必須とします。そうでない場合は、改行を禁止します。
  • "multiline-arguments"multiline と同様に動作しますが、パラメータ/引数が1つだけの場合は、関数のパラメータの括弧内に改行を許可します。
  • "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
);
正しい

使用しない場合

関数のパラメータの括弧内の改行の整合性を強制したくない場合は、このルールを有効にしないでください。

MITライセンスの下でリリースされています。