请问ts中addEventListener中的TouchEvent为什么会被推断为Event

let el: SVGElement|HTMLElement;
el.addEventListener('touchstart', e=>{
    // e的类型为Event
});

请为如果el的类型仅为SVGElement或者HTMLElement的时候,e的类型都是TouchEvent,为什么变成SVGElement|HTMLElement后e就是Event类型了?

let el: SVGElement;
el.addEventListener('touchstart', e=>{
    // e的类型为TouchEvent
});
阅读 1.6k
1 个回答

你给el赋个值看看?
addEventListener有类型重载,有一种情况是通用的类型,所以在不明确this指向的时候,是会变成Event的,

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题