бесполезные-вычисленные-ключи
Запретить ненужные вычисленные ключи свойств в объектах и классах
Некоторые проблемы, выявленные этим правилом, могут быть автоматически исправлены с помощью опции командной строки --fix командной строки
Не нужно использовать вычисленные свойства с литералами, такими как:
var foo = {["a"]: "b"};
Код можно переписать так:
var foo = {"a": "b"};
Подробное описание правила
Это правило запрещает ненужное использование вычисленных ключей свойств.
Примеры неправильного кода для этого правила:
/*eslint no-useless-computed-key: "error"*/
var a = { };
var a = { };
var a = { };
var a = { };
var a = { };
var { } = obj;
var { } = obj;
class Foo {
}
Примеры правильного кода для этого правила:
/*eslint no-useless-computed-key: "error"*/
var c = { 'a': 0 };
var c = { 0: 0 };
var a = { x() {} };
var c = { a: 0 };
var c = { '0+1,234': 0 };
var { 0: a } = obj;
var { 'x': a } = obj;
class Foo {
"foo" = "bar";
0() {}
'a'() {}
get 'b'() {}
set 'c'(value) {}
static "foo" = "bar";
static 'a'() {}
}
Примеры дополнительного правильного кода для этого правила:
/*eslint no-useless-computed-key: "error"*/
var c = {
"__proto__": foo, // defines object's prototype
["__proto__"]: bar // defines a property named "__proto__"
};
class Foo {
["constructor"]; // instance field named "constructor"
"constructor"() {} // the constructor of this class
["constructor"]() {} // method named "constructor"
static ["constructor"]; // static field named "constructor"
static ["prototype"]; // runtime error, it would be a parsing error without `[]`
}
Опции
Это правило имеет опцию объекта:
-
enforceForClassMembersзначениеfalseотключает это правило для членов класса (Значение по умолчаниюtrue).
enforceForClassMembers
По умолчанию это правило также проверяет объявления и выражения классов, так как значение по умолчанию для enforceForClassMembers равно true.
Когда enforceForClassMembers установлено в false, правило позволит ненужные вычисленные ключи внутри полей класса, методов класса, геттеров класса и сетеров класса.
Примеры неправильного кода для этого правила с опцией { "enforceForClassMembers": false }:
/*eslint no-useless-computed-key: ["error", { "enforceForClassMembers": false }]*/
const obj = {
,
,
,
,
};
Примеры правильного кода для этого правила с опцией { "enforceForClassMembers": false }:
/*eslint no-useless-computed-key: ["error", { "enforceForClassMembers": false }]*/
class SomeClass {
["foo"] = "bar";
[42] = "baz";
['a']() {}
get ['b']() {}
set ['c'](value) {}
static ["foo"] = "bar";
static ['baz']() {}
}
Когда не использовать
Если вы не хотите получать уведомления о ненужных вычисленных ключах свойств, вы можете безопасно отключить это правило.
Версия
Это правило было добавлено в ESLint v2.9.0.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-useless-computed-key