eslint-plugin-unicorn
eslint-plugin-unicorn copied to clipboard
`unicorn/prefer-at` incorrectly fixes object property key lookup
for the following code:
const x = {
1: 1,
a: 2,
};
const y = x['a']; // can also be written as x.a
const z = x[1];
the prefer-at
rule will suggest and autofix const z = x[1];
to const z = x.at(1);
- this is an object and therefore does not have the .at
property available, while the x['a']
accessor remains unchanged.
While in TypeScript and Javascript, object property keys are supposed to always be strings, we cannot always assume that they are.
I believe that the rule should check whether you are accessing on an object and therefore not suggest the fix