如何在JS/TS中对事件监听器类型进行Lint检查?
针对DOM标准事件类型的Lint检查方案
1. ESLint插件全局校验
用eslint-plugin-dom插件就能解决这个问题,它自带的dom/no-invalid-event-name规则会自动检查addEventListener的事件名是否符合DOM标准定义。
操作步骤:
- 安装插件:
npm install eslint-plugin-dom --save-dev - 在ESLint配置文件(比如
.eslintrc.js)里添加配置:
module.exports = { plugins: ['dom'], rules: { 'dom/no-invalid-event-name': 'error' } }
之后再写错事件名(比如unhandledRejection),ESLint会直接抛出错误,从源头避免拼写问题。
2. TypeScript类型校验(更推荐)
如果你的项目用TypeScript,不用额外配置Lint规则——TS本身的类型系统就能拦截这类错误。
window.addEventListener的事件参数基于WindowEventMap类型,所有标准DOM事件名都在这个类型里定义。当你写出unhandledRejection这种错误名称时,TS会立刻抛出类型错误,编辑器也会实时提示,根本不用等到调试阶段才发现问题。
关于TSLint的说明
TSLint已经停止维护,官方推荐迁移到ESLint + TypeScript ESLint插件的组合,既能利用ESLint丰富的插件生态,又能结合TS的类型校验,比单独使用TSLint更可靠。
内容的提问来源于stack exchange,提问作者Patrick Kenny
相关产品推荐
相关产品推荐

