当 ESLint 规则 "prefer-destructuring" 没有意义时该怎么办

What to do when ESLint rule "prefer-destructuring" makes no sense

在很多情况下,ESLint 的规则 "prefer-destructuring" 非常奇怪。考虑以下示例:

obj.someVar = myList[0];

在这两种情况下,linter 都在警告我。

linter 想要的预期行为是什么?我可以使用临时变量来保存列表项的值,然后再执行其余的逻辑,但我看不到它有任何好处。知道这是什么原因吗?

编辑:

我可以在某些情况下看到规则的好处,即:

// bad
const someVar = myList[0];

// good
const [ someVar ] = myList;

但是当赋值不是直接赋给 var 时(比如赋给对象的 属性 时)规则似乎无关紧要。

ESLint 对 obj.someVar = myList[0] 的期望是:

let obj = {};
let myList = [1,2];

[obj.someVar] = myList;

console.dir(obj);

这是关于该主题的 link 问题 prefer-destructuring flags a property assignment #11584