使用 event.target.id 时抛出的类型“EventTarget”上不存在属性“id”

phy*_*boy 8 html javascript typescript angular

我正在尝试在我的组件上执行 HostListener,指定我希望在单击除特定元素之外的任何内容时发生某些事情;但是,我收到错误:

类型“EventTarget”上不存在属性“id”

代码在 UI 中运行良好,但我无法摆脱 linting 引发的错误。

我知道我必须为此使用类型,例如如果我对输入元素执行它。<div>但是我正在对正在单击的法线执行检查......

我不确定如何继续。

@HostListener('document:click', [$event'])
myClick(event: MouseClick): void {
  if (event.target.id !== 'some-id') {
    // do something here
  }
}
Run Code Online (Sandbox Code Playgroud)

我一直在玩诸如此类的东西:

if (<HTMLElement>event.target.id...

但我找不到解决这个问题的方法......

phy*_*boy 7

我将发布 @ConnorsFan 的答案,因为他的评论对我有用。

最后我选择使用(<HTMLElement>event.target).id.

看来我设置 event.target.id 的尝试被误导了,因为我现在明白该类型应该应用于目标,而 ID 只是所述目标元素的一个属性。

  • 您的意思是使用 `(event.target as HTMLElement).id` 对吧? (4认同)