【发布时间】:2022-01-03 09:03:37
【问题描述】:
阻止eslint(使用eslint --fix时)改变需要什么规则和配置:
return regex.test(foo) ? true : false
进入这个:
return !!regex.test(postalCode)
虽然我了解这条规则的作用,但我不喜欢它。我认为它可能是其中之一 - 但是,它要么两者都不是,要么我只是不明白如何正确配置它们。
// eslintrc.js
module.exports = {
rules: {
'no-implicit-coercion': [2, { string: false, boolean: false, number: false }],
'no-extra-boolean-cast': [2, { enforceForLogicalOperands: true }],
}
}
【问题讨论】:
-
为什么还要有三元呢?
.test返回一个布尔值 -
也许是no-uneeded-ternary? (当然可以证明这种三元是多余的......)
-
为什么不运行没有修复的 eslint 并查看针对特定情况触发的规则?
-
[DanielA.White] 代表我的例子很糟糕,但最终有效地证明了我所指的内容。 [AlexanderNied] 那是票友。干杯。 [ASDFGerte] 回想起来,你是绝对正确的。我不知道为什么我不想这样做,哈哈。
-
我无法通过 eslint 将可读的
return a ? true : false转换为return !!a。它确实将其转换为return Boolean(a)。在 eslint (eslint.org/docs/rules/no-implicit-coercion) 中不鼓励使用!!,我不明白为什么“修复”会使用不鼓励的做法。
标签: javascript eslint eslintrc