Eslint: Erwartet { nach 'while'-Bedingung

Ich habe Formatting toolbar geforkt, um einige sehr benutzerdefinierte Formatierungsfunktionen hinzuzufügen.

Es hat discourse-formatting-toolbar/assets/javascripts/lib/discourse-markdown/formatting_bbcode.js at master · MonDiscourse/discourse-formatting-toolbar · GitHub

Mein Code sieht so aus:

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

Aber eslint beschwert sich:

    9:3  error  Expected { after 'while' condition  curly

Ich habe versucht, diese while-Schleife und den nachfolgenden Code in eine einzige Zeile zu verschieben (die Formatierung hier wird von VSCode angewendet und funktioniert normalerweise mit den anderen Plugins, die ich verwalte), aber das hat auch nicht geholfen.

Kann mir jemand einen Hinweis geben?

EDIT: Nun, es stellt sich heraus, dass ich diese Funktion tatsächlich nicht brauche, aber ich würde trotzdem gerne wissen, was das Problem ist.

1 „Gefällt mir“

Der Grund für die ESLint-Warnung ist, dass Sie geschweifte Klammern um Ihr return text; benötigen.

Das heißt, es sollte wie folgt aussehen:

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

Obwohl JavaScript die Auslassung von geschweiften Klammern erlaubt, erzwingt ESLint einen konsistenten Stil für geschweifte Klammern.

Weitere Details zur curly-Regel finden Sie hier:

3 „Gefällt mir“