[英]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.target
為HTMLElement
修復此錯誤
所以在你的情況下:
...
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.