TS2339: プロパティ 'closest' はタイプ 'EventTarget' に存在しません。 - React でネイティブの event.target を取得するにはどうすればよいですか? 質問する

TS2339: プロパティ 'closest' はタイプ 'EventTarget' に存在しません。 - React でネイティブの event.target を取得するにはどうすればよいですか? 質問する

次のように、どこから呼び出されたかを検出するイベント リスナー コールバックを構築しようとしています。

import { TouchEvent } from 'react'

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

でも私は

TS2339: プロパティ 'closest' はタイプ 'EventTarget' に存在しません

event.nativeEvent.target.closestどちらも機能しません
event.currentTarget.closestが、明らかにそれは望んでいません

ターゲットを HTMLElement としてキャストすると、次のようになります。

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

これを行う正しい方法は何ですか?

ベストアンサー1

このエラーは、直接キャストすることで修正しましたevent.targetHTMLElement

あなたの場合は次のようになります:

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

おすすめ記事