コンテンツへスキップ

@stylistic/

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/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/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/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/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/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/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/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/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/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/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/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/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ライセンスの下でリリースされています。