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  Expected { after 'while' condition  curly

لقد حاولت نقل while والأشياء التي تليها إلى سطر واحد (يتم تطبيق التنسيق هنا بواسطة 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 إعجابات