【发布时间】:2021-11-02 21:55:55
【问题描述】:
我有一个主要目的是在 DOM 对象上设置属性的方法
function (el) {
el.expando = {};
}
我使用 AirBnB 的代码风格,这使得 ESLint 抛出 no-param-reassign 错误:
错误赋值给函数参数'el' no-param-reassign
如何操作作为参数传递的 DOM 对象,同时符合 AirBnB 的代码样式?
有人建议使用/* eslint react/prop-types: 0 */ 指代another issue,但如果我没记错的话,这适用于react,但不适用于本机DOM 操作。
我也不认为改变代码风格是一个答案。我相信使用标准样式的好处之一是在项目之间具有一致的代码,并且随意更改规则感觉就像对 AirBnB 等主要代码样式的滥用。
为了记录,我在 GitHub 上询问了 AirBnB,他们认为在这些情况下该怎么办in issue #766。
【问题讨论】:
-
不。首先,这意味着在此规则有意义的所有其他事件中禁用此功能。其次,我相信您要么遵循样式指南,要么不遵循。至少如果它是各种项目的许多开发人员所遵循的风格指南。
-
但是你在问如何不遵守风格指南,因为你正在做它试图阻止的事情。无论如何,只需disable it for that function
-
@Mathletics 不,我觉得这条规则很有意义,但它不适用于这种特定情况。我想知道是否有办法按照规则来做到这一点。
-
不管怎么说,你想要的操作都与规则冲突。也就是说,这似乎是一个 XY 问题。我不会像那样将属性直接附加到 DOM 节点。
标签: javascript dom eslint