【发布时间】:2018-02-20 20:13:13
【问题描述】:
对于流,有experimental.const_params=true 和treats function parameters as const bindings 的选项。我可以通过将它分配给一个临时变量来轻松消除错误,但这是否真的解决了重新分配/改变函数参数的不良形式?
例如:
function someFunc(p1) {
let temp = p1;
temp.x = 10
return temp
}
相对于:
function someFunc(p1) {
p1.x = 10
return p1
}
对于流,这足以防止流抛出错误。
它是否真正解决了该规则试图解决的问题?如果不是应该改用什么?
【问题讨论】:
-
我会说这个选项是为了确保参数不被修改,所以通过重新分配它你只是在绕过规则。
-
该规则旨在减少副作用,在这种情况下,函数修改其输入。不管你怎么做,你目前只是在回避它的观点。如果您不想遵循这种做法,我建议您完全关闭该规则。
-
那么正确的形式是什么?据此,这是正确的,但我同意这似乎是在回避eslint.org/docs/rules/no-param-reassign
-
您链接到的 eslint 文档页面末尾有一个链接,解释了为什么存在这样的规则。
标签: javascript flowtype