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