TypeScript报错TS2339:Event类型不存在data属性,如何解决?
解决TypeScript中input事件的
data属性不存在错误 编译错误的原因是TypeScript默认将input事件的事件对象类型推断为通用的Event,而data是InputEvent类型特有的属性,所以需要明确指定事件类型来让TypeScript识别该属性。
方法一:显式指定事件参数类型
修改事件处理函数的参数类型为InputEvent:
const editor = document.getElementById("editor") as HTMLTextAreaElement; editor.addEventListener("input", (e: InputEvent) => { console.log(e.data); });
方法二:对事件对象做类型断言
在访问data属性时,将事件对象断言为InputEvent:
const editor = document.getElementById("editor") as HTMLTextAreaElement; editor.addEventListener("input", e => { console.log((e as InputEvent).data); });
两种方法都能让TypeScript编译通过,且不影响原有运行逻辑——因为浏览器实际触发的input事件对象本身就是InputEvent类型,所以类型断言是安全的。
内容的提问来源于stack exchange,提问作者Usitha Indeewara
相关产品推荐
相关产品推荐

