addEventListenerのリスナー関数の引数(event: Event)
の型を上書きしたい
changeイベントはinput要素、select要素、textarea要素で発生するのでtargetを使う際に型ガードするより引数の型で指定しておきたいのですが
typescript
1interface HTMLElementEvent<T extends EventTarget = Element> extends Event { 2 readonly target: T 3} 4 5// HTMLElementEvent型のtargetプロパティはEvent型のtargetプロパティと互換性がありません 6// 的な長いエラーがでる 7addEventListener('change', (event: HTMLElementEvent<HTMLInputElement>) => { 8 console.log(event.target.value) 9}) 10 11// エラーがでない 12addEventListener('change', { 13 handleEvent: (event: HTMLElementEvent<HTMLInputElement>) => { 14 console.log(event.target.value) 15 } 16})
参考:https://chaika.hatenablog.com/entry/2021/11/04/083000
- これはどうしてこうなりますか?
- handleEventメソッドを持つオブジェクトではなく関数を渡す方法でもエラーがでなくなる引数の型の書き方があれば教えてください

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2025/05/11 22:57