ジャンボモナカ

34歳のハゲデブがHTML5ハイブリッドアプリ開発プラットフォームmonacaを始めました。

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');
  }
  
});

果たしてここまで実装しないといけないのだろうか?

ちょっと疑問に感じてしまった。