[解決済み] なぜTypescriptではEvent.targetはElementではないのですか?
2022-04-22 17:36:43
質問
私は単純に、私の
KeyboardEvent
var tag = evt.target.tagName.toLowerCase();
一方
Event.target
はタイプ
EventTarget
を継承していない。
Element
. そこで、次のようにキャストする必要があります。
var tag = (<Element>evt.target).tagName.toLowerCase();
これはおそらく、一部のブラウザが標準に準拠していないことが原因ではないでしょうか?TypeScriptでブラウザに依存しない正しい実装とは?
追記:jQueryでキャプチャしています。
KeyboardEvent
.
解決方法は?
を継承していない
Element
なぜなら、すべてのイベントターゲットが要素であるとは限らないからです。
MDNより :
イベントターゲットとしては、element、document、windowが一般的ですが、XMLHttpRequest、AudioNode、AudioContextなど、他のオブジェクトもイベントターゲットになり得ます。
さらに
KeyboardEvent
を使おうとしている場合、DOM 要素や window オブジェクト (そして理論的には他のもの) で発生する可能性があります。
evt.target
として定義されます。
Element
.
DOM 要素のイベントであれば、以下のように考えて差し支えないと思います。
evt.target
.は
Element
. これはクロスブラウザの動作の問題ではないと思うのですが。単に
EventTarget
とは異なり、より抽象的なインターフェイスです。
Element
.
関連
-
[解決済み】Typescriptで、! (エクスクラメーションマーク/バン)演算子でメンバを再参照するのは?
-
[解決済み] TypeScriptのハッシュマップ/辞書インターフェイス
-
[解決済み] TypeScriptで文字列を数値に変換する方法とは?
-
[解決済み] TypeScript で `window` に新しいプロパティを明示的に設定するにはどうすればよいですか?
-
[解決済み] TypeScriptでの取得と設定
-
[解決済み] TypeScriptでパラメータとして強く型付けされた関数は可能か?
-
[解決済み] TypeScriptでオブジェクトに動的にプロパティを割り当てるには?
-
[解決済み] モジュール 'module-name' の宣言ファイルが見つかりませんでした。'/path/to/module-name.js' は暗黙のうちに 'any' 型を持っています。
-
[解決済み] TypeScriptのクラス型チェック
-
[解決済み】TypeScriptのインターフェースと型について
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Apollo Serverでコンテキストオブジェクトを正しく入力するにはどうすればよいですか?
-
[解決済み] TypeScriptのInterface Function Property。何が違うの?
-
[解決済み] TypeScriptでオブジェクトを初期化する方法
-
[解決済み] クラス定数を実装するには?
-
[解決済み] async/await構文で拒否する方法は?
-
[解決済み] チェックした後に○○の表現が変わっている
-
[解決済み] TypeScriptのクラス型チェック
-
[解決済み】TypeScriptのコンパイルでExperimental decoratorsの警告が出る。
-
[解決済み】Typescriptのパラメータ名のクエスチョンマークとは?
-
[解決済み】Typescript。Reactのイベントタイプ