当 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
在很多情况下,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