繁体   English   中英

'confirmPassword' 被分配了一个值但从未使用过.eslint

[英]'confirmPassword' is assigned a value but never used.eslint

我知道修复“eslint 中未使用的错误”的方法,但我想知道第一个解构部分中的变量是否是必需的,或者我可以将其保留为const [, setConfirmPassword] = useState("");

下面是我的代码

const [confirmPassword, setConfirmPassword] = useState("");

谢谢你,很抱歉成为一个菜鸟......#我是新手,第一次来这里提问,如果打扰你的时间帮助我,抱歉

我试过运行我的文件并且它工作正常,但我想知道最佳实践并消除我的疑问。 从我从其他论坛搜索到的内容来看,他们说这可能会浪费空间并影响程序的运行,所以我很困惑是否可以将其保留为未使用或者如果我将其留空是否正确。

通常在 ESLint 中你可以在一个变量前加一个下划线作为前缀,以表明你有意赋值,但不打算使用它。 这在您忽略函数中的第一个参数的情况下也很有用:

// don't need to read value of password
const [_confirmPassword, setConfirmPassword] = useState("");

// only need to use second argument in callback
someObject.runCallback((_, b) => {console.log(b)})

在大多数情况下,相对于代码的可读性较低的开销,分配一个额外的变量具有较低的性能成本。 如果你需要修复一个错误,或者重写一些代码,或者添加一个新特性,并且在过去使用了一些变通方法来避免分配变量,并且由于代码的可读性较差,这会额外增加十分钟的开发时间,这可能是比分配一个额外的变量损失更多的价值。


具体来说,在您的代码片段中,不清楚为什么您需要 setter 而不是 getter。 您的问题中没有更大的上下文,但我怀疑在处理这段代码时,您会发现确实需要在某处使用confirmPassword的原因。

正如 Dakeyras 的回答所说,下划线可用于忽略变量,但您也可以使用带有varsIgnorePattern属性的自己的正则表达式来实现相同的目的。

文档:

varsIgnorePattern 选项指定不检查用法的异常:名称与正则表达式模式匹配的变量。 例如,名称中包含 ignored 或 Ignored 的变量。

{ "varsIgnorePattern": "[iI]gnored" } 选项的正确代码示例:

/*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/

var firstVarIgnored = 1;
var secondVar = 2;
console.log(secondVar);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM