eslint/curly スタイル
何を実行するか
このルールは、すべての制御文(if、else、for、while、do、with)で中括弧 {} を使用することを強制します。
ブロックがすべて中括弧で囲まれることで、コードの可読性と保守性が向上します。
なぜ悪いのか
中括弧を省略すると、コードの可読性が低下し、特に深いネストやインデントがある場合にエラーの発生リスクが高まります。
後から追加されたステートメントが適切に中括弧で囲まれていない場合、バグを引き起こす可能性があります。
中括弧を一貫して使用することで、コードの安全性と変更のしやすさが向上します。
例
"all" (デフォルト)
このルールに対して不正なコードの例:
/* curly: ["error", "all"] */
if (foo) foo++;
while (bar) bar--;
do foo();
while (bar);このルールに対して正しいコードの例:
/* curly: ["error", "all"] */
if (foo) {
foo++;
}
while (bar) {
bar--;
}
do {
foo();
} while (bar);"multi"
"multi" オプションを使用した場合の不正なコードの例:
/* curly: ["error", "multi"] */
if (foo) foo();
else {
bar();
baz();
}"multi" オプションを使用した場合の正しいコードの例:
/* curly: ["error", "multi"] */
if (foo) foo();
else bar();"multi-line"
"multi-line" オプションを使用した場合の不正なコードの例:
/* curly: ["error", "multi-line"] */
if (foo) foo();
else bar();
while (foo) foo();"multi-line" オプションを使用した場合の正しいコードの例:
/* curly: ["error", "multi-line"] */
if (foo) foo();
else bar();
while (foo) foo();
while (true) {
doSomething();
doSomethingElse();
}"multi-or-nest"
"multi-or-nest" オプションを使用した場合の不正なコードの例:
/* curly: ["error", "multi-or-nest"] */
if (foo) if (bar) bar();
while (foo) while (bar) bar();"multi-or-nest" オプションを使用した場合の正しいコードの例:
/* curly: ["error", "multi-or-nest"] */
if (foo) {
if (bar) bar();
}
while (foo) {
while (bar) bar();
}"consistent"
有効化された場合、"consistent" は if-else チェーン内の括弧の使用を一貫性のあるものにします。
チェーンの一部のブランチで中括弧を使用している場合、他のすべてのブランチも中括弧を使用しなければならず、最初のオプションでは厳密に必須ではない場合でも同様です。
"multi" と "consistent" を併用した場合の不正なコードの例:
/* curly: ["error", "multi", "consistent"] */
if (foo) {
bar();
baz();
} else qux();
if (foo) bar();
else {
baz();
qux();
}"multi" と "consistent" を併用した場合の正しいコードの例:
/* curly: ["error", "multi", "consistent"] */
if (foo) {
bar();
baz();
} else {
qux();
}
if (foo) {
bar();
} else {
baz();
qux();
}"multi-line" と "consistent" を併用した場合の不正なコードの例:
/* curly: ["error", "multi-line", "consistent"] */
if (foo) {
bar();
} else baz();"multi-line" と "consistent" を併用した場合の正しいコードの例:
/* curly: ["error", "multi-line", "consistent"] */
if (foo) {
bar();
} else {
baz();
}"multi-or-nest" と "consistent" を併用した場合の不正なコードの例:
/* curly: ["error", "multi-or-nest", "consistent"] */
if (foo) {
if (bar) baz();
} else qux();"multi-or-nest" と "consistent" を併用した場合の正しいコードの例:
/* curly: ["error", "multi-or-nest", "consistent"] */
if (foo) {
if (bar) baz();
} else {
qux();
}設定
curly ルールの設定は、1つまたは2つの要素を持つ配列で指定されます。
例:
["all"]- すべての場合で中括弧を必須とする(デフォルト)["multi"]- 複数のステートメントを含むブロックでのみ中括弧を必須とする["multi-line"]- 複数行にわたるブロックでのみ中括弧を必須とする["multi-or-nest"]- ネストされているか複数行にわたるブロックでのみ中括弧を必須とする["multi", "consistent"]- マルチモード +if-elseチェーン内の括弧の一貫性
1番目のオプション
type: "all" | "multi" | "multi-line" | "multi-or-nest"
curly ルールの適用タイプ。
"all"
すべての場合で中括弧を必須とする(デフォルト)
"multi"
ブロック内に複数のステートメントがある場合にのみ中括弧を必須とする
"multi-line"
ブロックが複数行にわたる場合にのみ中括弧を必須とする
"multi-or-nest"
ブロックがネストされているか複数行にわたる場合にのみ中括弧を必須とする
2番目のオプション
使い方
このルールを構成ファイルまたは CLI で有効化するには、以下の方法が利用可能です:
{
"rules": {
"curly": "error"
}
}oxlint --deny curly