我有一个主要目的是在 DOM 对象上设置属性的方法
function (el) {
el.expando = {};
}
我使用 AirBnB 的代码风格,这使得 ESLint 抛出一个 no-param-reassign
错误:
error Assignment to function parameter 'el' no-param-reassign
如何在符合 AirBnB 代码风格的同时操作作为参数传递的 DOM 对象?
有人建议使用 /* eslint react/prop-types: 0 */
引用 another issue但如果我没记错的话,这适用于 React,但不适用于原生 DOM 操作。
我也不认为改变代码风格是一个答案。我相信使用标准风格的好处之一是在项目之间拥有一致的代码,随意更改规则感觉就像滥用了像 AirBnB 这样的主要代码风格。
作为记录,我在 GitHub 上询问了 AirBnB,他们认为在这些情况下该怎么做 in issue #766 .
最佳答案
正如@Mathletics 建议的那样,您可以 disable the rule完全通过将其添加到您的 .eslintrc.json
文件中:
"rules": {
"no-param-reassign": 0
}
或者您可以禁用专门针对参数属性的规则:
"rules": {
"no-param-reassign": [2, { "props": false }]
}
或者,您可以禁用该功能的规则:
/* eslint-disable no-param-reassign */
function (el) {
el.expando = {};
}
/* eslint-enable no-param-reassign */
或仅针对特定行:
function (el) {
el.expando = {}; // eslint-disable-line no-param-reassign
}
关于javascript - 在 DOM 对象上设置属性时如何避免无参数重新分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35637770/