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

如何解决lint报错Assignment to property of function parameter 'item'

报错原因

这个报错是ESLint的no-param-reassign规则触发的,该规则禁止直接修改函数的入参,避免因为引用类型修改带来的意外全局副作用:你当前代码里的item是resp数组的子元素(引用类型数组),直接修改item[0]等价于直接修改原resp数组的内容,属于入参重赋值的违规场景。

解决方案

方案1:确定要修改原数组,仅消除lint报错

临时单行忽略

在修改入参的行前加单行忽略注释即可:

const resp = await getData(payload)
resp.forEach((item) => {
      // eslint-disable-next-line no-param-reassign
      item[0] = moment(item[0]).format('DD/MMM/YY');
});

全局规则配置(项目统一允许修改入参属性)

在项目的ESLint配置文件(.eslintrc.js/.eslintrc.json等)中修改规则配置,关闭入参属性修改的校验:

{
  "rules": {
    "no-param-reassign": ["error", { "props": false }]
  }
}

方案2:遵循无副作用规范,不修改原数组

如果你不需要改动原resp数组,推荐用map生成新数组,完全避免修改入参,符合lint规则的设计初衷:

const resp = await getData(payload)
const formattedResp = resp.map((item) => {
      // 拷贝原数组后再修改,不改动原入参
      const newItem = [...item]
      newItem[0] = moment(newItem[0]).format('DD/MMM/YY')
      return newItem
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:15:07