eslint对象 - 传入的变量的简写错误

Pet*_*ete 26 javascript ecmascript-6 eslint

我有以下功能,即设置一个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);
Run Code Online (Sandbox Code Playgroud)

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

错误预期的属性简写对象 - 速记

我已经完成了搜索和阅读文档,但它没有显示你是如何使用变量的,并且这个问题的未接受的答案似乎认为它可能是一个错误的eslint(虽然我没有发现任何证据支持)

有没有办法使这项工作或我应该禁用该行的规则?

Car*_*rds 60

关于这个问题的摘录摘录:

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

此规则强制使用简写语法.这适用于对象文字中定义的所有方法(包括生成器)以及键名与指定变量的名称匹配的任何属性.

更改

closeOnSelect: closeOnSelect
Run Code Online (Sandbox Code Playgroud)

只是

closeOnSelect
Run Code Online (Sandbox Code Playgroud)


Val*_*kov 5

规则检查是否使用了对象字面量简写语法,例如{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
  }
}
Run Code Online (Sandbox Code Playgroud)

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
  }
}
Run Code Online (Sandbox Code Playgroud)