ESLINT对象速度误差带有变量传递



i具有以下功能,该功能正在设置一个select2插件,如果它们是多重的,则需要选择以保持打开,但如果不是:

function setUpSelects($selects, closeOnSelect) {
  $selects.each((i, item) => {
    const $item = $(item);
    $item.select2({
      closeOnSelect: closeOnSelect,  // <-- error on this line
      minimumResultsForSearch: Infinity,
      placeholder: $item.data('placeholder') || $item.attr('placeholder'),
    });
  });
}
setUpSelects($('select:not([multiple])'), false);
setUpSelects($('select[multiple]'), true);

但是,当我尝试运行此代码时,ESLINT检查器正在给我一个错误(在上面显示的行上):

错误预期属性速记对象速记

我已经进行了搜索并阅读了文档,但并没有显示您的意图是如何使用变量,并且在这个问题上未接受的答案似乎认为这可能是ESLINT中的错误(尽管我没有发现证据支持这一点)

有没有办法进行这项工作,还是我应该禁用该行的规则?

关于问题的摘录:

要求对象文字速记语法(object -shorthand) - 规则详细信息

此规则强制使用速记语法。这适用于 所有方法(包括生成器)在对象文字和任何方法中定义 属性定义了关键名称与分配的名称匹配的位置 变量。

更改

closeOnSelect: closeOnSelect

只有

closeOnSelect

此规则检查是否使用了对象字面的速记语法,例如{a, b}而不是{a: a, b: b}。该规则是可配置的,有关更多详细信息,请参见选项。

尽管这种速记语法很方便,在某些情况下,您可能不想强制使用它。您可以在配置中禁用支票:

// .eslintrc.json
{
  "rules": {
    // Disables the rule. You can just remove it,
    // if it is not enabled by a parent config.
    "object-shorthand": 0
  }
}

tslint 的情况下,有一个不同的选项:

// tslint.json
{
  "rules": {
    // Disables the rule. You can just remove it,
    // if it is not enabled by a parent config.
    "object-literal-shorthand": false
  }
}

想要用密钥定义对象,并且不能使用任何对象。尝试一下。

接口映射{[键:字符串]:字符串|不明确的}

const HUMAN_MAP: Map = {
  draft: "Draft",
}
export const human = (str: string) => HUMAN_MAP[str] || str

最新更新