TypeScriptのEventTargetでコンパイルエラーになってしまう件
TypeScriptでaタグにclickイベントを追加した時の話。
document.querySelector('a').addEventListener('click',(e)=>{ let _currentTarget = e.currentTarget; let _href = _currentTarget.getAttribute('href'); });
onClickでイベントが発生し、イベントが起きたaタグに対するhref属性をcurrentTargetから取得するごくシンプルなプログラムなのだがコンパイルエラーが発生する。
エラーの内容は、
Property 'getAttribute' does not exist on type 'EventTarget'
で、どうすればいいのか調べた。
調べた結果、instanceofメソッドを使ってコンパイルエラーを解消することができた。
document.querySelector('a').addEventListener('click',(e)=>{ let _currentTarget = e.currentTarget; if(_currentTarget instanceof HTMLAnchorElement){ let _href = _currentTarget.getAttribute('href'); } });
果たしてここまで実装しないといけないのだろうか?
ちょっと疑問に感じてしまった。