no-useless-computed-key
Запрещает ненужные вычисляемые ключи свойств в объектах и классах
Некоторые проблемы, о которых сообщает это правило, можно исправить автоматически с помощью параметра командной строки --fix
Это правило в настоящее время заморожено, и запросы на добавление новых возможностей не принимаются.
Использовать вычисляемые свойства с литералами, например:
const foo = {["a"]: "b"};
Код можно переписать так:
const foo = {"a": "b"};
Подробности правила
Это правило запрещает ненужное использование вычисляемых ключей свойств.
Примеры неправильного кода для этого правила:
/*eslint no-useless-computed-key: "error"*/
const a = { };
const b = { };
const c = { };
const d = { };
const e = { };
const { } = obj;
const { } = obj;
class Foo {
}
Примеры правильного кода для этого правила:
/*eslint no-useless-computed-key: "error"*/
const a = { 'a': 0 };
const b = { 0: 0 };
const c = { x() {} };
const d = { a: 0 };
const e = { '0+1,234': 0 };
const { 0: foo } = obj;
const { 'x': bar } = obj;
class Foo {
"foo" = "bar";
0() {}
'a'() {}
get 'b'() {}
set 'c'(value) {}
static "foo" = "bar";
static 'a'() {}
}
Примеры дополнительного правильного кода для этого правила:
/*eslint no-useless-computed-key: "error"*/
const 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