Eslint:'while' 条件后应为 {

我 fork 了 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 个赞