使用eslint-plugin-solid的solid/event-handlers自动修复后出现TypeScript错误
关于eslint-plugin-solid自动修复事件名引发TypeScript报错的问题
问题1:为什么eslint-plugin-solid会将onDblClick自动修复为onDoubleClick?
你使用的eslint-plugin-solid版本是0.8.0,该版本的solid/event-handlers规则存在适配错误——它错误地将符合SolidJS规范的onDblClick事件名强制修复为onDoubleClick。实际上,SolidJS的HTML属性类型定义(和DOM标准、React一致)采用onDblClick作为双击事件的处理属性名,这个规则的修复逻辑与SolidJS的实际类型规范不匹配,后续版本的插件已经修正了这个问题。
问题2:如何避免出现TypeScript错误?
可以通过以下几种方式解决:
方式1:升级eslint-plugin-solid到最新版本
这是最彻底的解决方案,新版本已经修复了solid/event-handlers规则的错误,不会再错误修改onDblClick事件名。执行命令:
npm install eslint-plugin-solid@latest --save-dev
方式2:配置规则忽略onDblClick
如果暂时无法升级插件,可以在.eslintrc.json中给solid/event-handlers规则添加例外,让它忽略onDblClick的检查:
{ "rules": { "solid/event-handlers": ["warn", { "ignore": ["onDblClick"] }] } }
方式3:暂时关闭该规则
如果不需要该规则的其他检查,可以直接关闭solid/event-handlers规则:
{ "rules": { "solid/event-handlers": "off" } }
方式4:手动恢复事件名并忽略警告
将修复后的onDoubleClick改回onDblClick,并通过注释忽略ESLint针对该行的警告:
export const App = () => { // eslint-disable-next-line solid/event-handlers return <div onDblClick={() => alert("hello world")}>double click me</div>; };
内容的提问来源于stack exchange,提问作者ymk
相关产品推荐
相关产品推荐

