javascript - 使用对象解构时省略属性变量

标签 javascript ecmascript-6 eslint object-destructuring

这是一个例子:

const initObject = {
  a: 0,
  b: 0,
  c: 0
}

const { a, ...rest } = initObject

我们从对象中省略了属性 a,但随后为 const a 分配了一个值,但从未使用过 - 来自 eslint 的错误 (no-unused-vars) 。是否可以完全省略const a

最佳答案

一种可能的方法是使用 //eslint-disable-next-line no-unused-vars

例如

// eslint-disable-next-line no-unused-vars
const { a, ...rest } = initObject

或者使用ignoreRestSiblings

The ignoreRestSiblings option is a boolean (default: false). Using a Rest Property it is possible to “omit” properties from an object, but by default the sibling properties are marked as “unused”. With this option enabled the rest property’s siblings are ignored.

例如

/*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
// 'a' is ignored because it has a rest property sibling.
const { a, ...rest } = initObject;

有关 no-unused-vars 的更多信息

<小时/>

但是如果您的目标是删除属性 a,还有另一种方法。
您可以使用delete运算符。

来自MDN documentation

The JavaScript delete operator removes a property from an object

例如

const initObject = {
  a: 0,
  b: 0,
  c: 0
}

const rest = { ...initObject }; // create a shallow copy
delete rest.a;

console.log(rest);

关于javascript - 使用对象解构时省略属性变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56151661/

相关文章:

javascript - 循环遍历包含另一个表单的表单

javascript - 混合类型 react 的映射函数中的 typescript 类型问题

javascript - 开发过程中如何在VUE-CLI中启用控制台登录

javascript - 尝试在箭头函数中返回三元运算符时如何修复 ES6 Eslint 错误?

javascript - 单击按钮时显示菜单,单击页面或按钮上的任意位置时隐藏菜单

javascript - 在 JSON 中写入 HTML 字符串

javascript - 使用 Greasemonkey 编译一系列单选按钮?

javascript - ES6 大箭头符号函数给出 SyntaxError : missing ; before statement

javascript - 具有扩展类和模块的 es6 变量作用域

eslint - 如何禁用 "definition for rule ' 自定义规则“未找到”错误?