【问题标题】:ESLint warning event is defined but never usedESLint 警告事件已定义但从未使用过
【发布时间】:2023-01-07 20:58:52
【问题描述】:

我在这段简单的代码中遇到 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 迂腐?

【问题讨论】:

  • “这段代码实际上有什么问题吗?应该修复或改进吗?”- ESLint 准确地告诉你“问题”是什么......你永远不会在 .addEventListener('DOMContentLoaded', (event) => { 中使用 event

标签: javascript undefined eslint


【解决方案1】:

但我的问题是,这段代码实际上有什么问题吗?应该修复或改进吗?

您永远不会使用您在 DOMContentLoaded 事件侦听器中定义的 event 参数(您只使用在 click 处理程序中定义的参数),因此您应该删除它:

window.addEventListener('DOMContentLoaded', () => {
// No `event` here −−−−−−−−−−−−−−−−−−−−−−−−−−^

话虽如此,但没有必要使用DOMContentLoaded如果您控制加载代码的script 标签。如果这样做,只需使用type="module"defer 来确保代码在构建 DOM 之前不会运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 2018-07-14
    • 2016-05-18
    • 2020-12-17
    • 2023-02-22
    • 2020-07-04
    • 2017-11-20
    相关资源
    最近更新 更多