Eslint: 'while' 条件の後に { が予期されています

カスタムフォーマットを追加するために Formatting toolbar をフォークしました。

これには discourse-formatting-toolbar/assets/javascripts/lib/discourse-markdown/formatting_bbcode.js at master · MonDiscourse/discourse-formatting-toolbar · GitHub が含まれています。

私のコードは次のようになります。

function replaceTitle(text) {
  while (
    text !==
    (text = text.replace(/\[title\](.+?)\[\/title\]/gi, function (match, p) {
      return `<div class="job-title">${p}</div>`;
    }))
  );
  return text;
}

しかし、eslint が次のように文句を言います。

    9:3  error  'while' 条件の後に { が必要です  curly

その while とその後のものを1行に移動しようとしました(ここのフォーマットはvscodeによって適用され、通常は私が管理する他のプラグインでも機能します)が、それも役に立ちませんでした。

誰か手がかりを教えてくれませんか?

編集:まあ、実際にはその関数は必要ないことがわかりましたが、問題が何であるかを知りたいです。

「いいね!」 1

ESLint の警告理由は、return text を波かっこで囲む必要があるためです。

つまり、次のようになります。

  while (
    text !==
    (text = text.replace(/\[title\](.+?)\[\/title\]/gi, function (match, p) {
      return `<div class="job-title">${p}</div>`;
    }))
  ) {
    return text;
  }

JavaScript では波かっこを省略できますが、ESLint は一貫した波かっこスタイルを強制します。

curly ルールに関する詳細はこちらをご覧ください。

「いいね!」 3