![](/img/trans.png)
[英]eslint: disable warning - `defined but never used` for specific function?
[英]ESLint warning event is defined but never used
我在这段简单的代码中遇到 ESLint 错误:
var trigger = document.getElementById("hello");
var audio = new Audio('audio/hello.mp3');
window.addEventListener('DOMContentLoaded', (event) => {
trigger.addEventListener("click", function(event) {
event.preventDefault();
audio.play();
}, false);
});
我得到的错误是: 'event' is defined but never used.
我读过我可以通过在左括号后添加注释来禁用此错误,其中“事件”是这样使用的: // eslint-disable-line no-unused-vars
。
但我的问题是,这段代码实际上有什么问题吗?应该修复或改进吗? 而不是被忽略警告的评论所掩盖? 还是这种方法实际上没有任何问题,只是 ESLint 迂腐?
但我的问题是,这段代码实际上有什么问题吗?应该修复或改进吗?
您永远不会使用您在DOMContentLoaded
事件侦听器中定义的event
参数(您只使用在click
处理程序中定义的参数),因此您应该删除它:
window.addEventListener('DOMContentLoaded', () => {
// No `event` here −−−−−−−−−−−−−−−−−−−−−−−−−−^
话虽如此,但如果您控制加载代码的script
标记,则无需使用DOMContentLoaded
。 如果这样做,只需使用type="module"
或defer
以确保代码在构建 DOM 之前不会运行。
Linters 可能很烦人,但尝试让它们开心通常是个好主意。 但是,您可以通过以下划线开头的参数名称来指示您故意忽略该参数,而不是禁用该警告。
var trigger = document.getElementById("hello");
var audio = new Audio('audio/hello.mp3');
window.addEventListener('DOMContentLoaded', (_event) => {
trigger.addEventListener("click", function(event) {
event.preventDefault();
audio.play();
}, false);
});
您也可以只为参数名称使用下划线,或者完全不使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.