Skip to content
← Back to rules

eslint/no-unexpected-multiline Suspicious

⚠️🛠️ A dangerous auto-fix is available for this rule.

何をするか

ほとんどの場合、コードが期待通りに解析され実行されるために、JavaScript でセミコロンが必要になるわけではありません。これは通常、セミコロンが固定されたルールに基づいて自動挿入されるためです。このルールは、セミコロンが自動的に挿入されず、予期せず異なる方法で解析される可能性があるケースを検出することを目的としています。

なぜ問題なのか

予期しない改行を含むコードは、開発者が意図した通りに解析・実行されない可能性があります。これにより、追跡が難しいバグが発生する恐れがあります。

このルールに対して不正なコードの例:

js
var a = b(x || y).doSomething();

var a = b[(a, b, c)].forEach(doSomething);

let x = (function () {})`hello`;

foo / bar / g.test(baz);

このルールに対して正しいコードの例:

js
var a = b;
(x || y).doSomething();

var a = b;
[a, b, c].forEach(doSomething);

let x = function () {};
`hello`;

foo;
/bar/g.test(baz);

使い方

設定ファイルまたは CLI でこのルールを有効化するには、次のようにします:

json
{
  "rules": {
    "no-unexpected-multiline": "error"
  }
}
bash
oxlint --deny no-unexpected-multiline

参照