1 # Disallow unnecessary computed property keys in objects and classes (no-useless-computed-key)
3 It's unnecessary to use computed properties with literals such as:
6 var foo = {["a"]: "b"};
9 The code can be rewritten as:
17 This rule disallows unnecessary usage of computed property keys.
19 Examples of **incorrect** code for this rule:
22 /*eslint no-useless-computed-key: "error"*/
26 var a = { ['0+1,234']: 0 };
29 var a = { ['x']() {} };
32 Examples of **correct** code for this rule:
35 /*eslint no-useless-computed-key: "error"*/
41 var c = { '0+1,234': 0 };
46 This rule has an object option:
48 * `enforceForClassMembers` set to `true` additionally applies this rule to class members (Default `false`).
50 ### enforceForClassMembers
52 By default, this rule does not check class declarations and class expressions,
53 as the default value for `enforceForClassMembers` is `false`.
55 When `enforceForClassMembers` is set to `true`, the rule will also disallow unnecessary computed
56 keys inside of class methods, getters and setters.
58 Examples of **incorrect** code for `{ "enforceForClassMembers": true }`:
61 /*eslint no-useless-computed-key: ["error", { "enforceForClassMembers": true }]*/
75 If you don't want to be notified about unnecessary computed property keys, you can safely disable this rule.