You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用对象解构重构代码触发no-unused-vars错误如何合规解决

你当前的重构写法本身存在逻辑问题,并非eslint误报。
因为quantity和inStock都是数字类型的基本值,从对象参数中解构出来后拿到的是独立的值拷贝,你对这两个解构变量做自增自减操作,完全不会影响传入的原product对象的属性,本质属于无效代码,eslint的报错只是准确指出了这一点。

下面是同时满足你要求、逻辑对齐原代码、且能用上解构提升可读性的方案:

方案1:函数内部解构读取属性,修改仍作用于原对象

你可以只把解构用来简化读取判断的逻辑,修改操作还是直接作用在原对象上,既保留了解构的可读性优势,也不会触发no-unused-vars报错:

remove(product) {
  // 仅解构用来做条件判断的属性,简化读取逻辑
  const { quantity } = product
  if (quantity > 0) {
    product.quantity--
    product.inStock++
  }
}

方案2:参数位使用解构的兼容写法

如果一定要在参数位使用解构语法,也可以通过参数默认值的写法实现,逻辑和原代码完全等价:

remove(product, { quantity } = product) {
  if (quantity > 0) {
    product.quantity--
    product.inStock++
  }
}

这个写法所有定义的变量都有实际使用场景,不会触发eslint报错。

内容的提问来源于stack exchange,提问作者mjwals

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 17:39:01