簡體   English   中英

TS2339:“EventTarget”類型上不存在“最近”屬性。 - 如何在 React 中獲取原生 event.target?

[英]TS2339: Property 'closest' does not exist on type 'EventTarget'. - How do I get native event.target in React?

我正在嘗試構建一個事件偵聽器回調,以檢測從何處調用它,類似於:

import { TouchEvent } from 'react'

const isInvokedFromInsideContainer = (event: TouchEvent<HTMLElement>) => {
  parentContainer = event.target.closest('#container')
  console.log('isInvokedFromInsideContainer: ' + !!parentContainer)
}

但我明白了

TS2339:“EventTarget”類型上不存在“最近”屬性

event.nativeEvent.target.closest也不起作用
event.currentTarget.closest有效,但我顯然不希望那樣

將目標轉換為 HTMLElement 有效:

const target = (event.target as HTMLElement)
const parentContainer = target.closest('#container')

這樣做的正確方法是什么?

我通過直接將event.targetHTMLElement修復此錯誤

所以在你的情況下:

...
  parentContainer = (event.target as HTMLElement).closest('#container')
...

您可以通過斷言其構造函數使 Typescript 了解目標的類型:

if (event.target instanceof HTMLElement) {
  const container = event.target.closest('#container')
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM