TypeScriptのEventTarget型にプロパティ 'value'が存在しません [重複] 質問する

TypeScriptのEventTarget型にプロパティ 'value'が存在しません [重複] 質問する

次のコードは Angular 4 ですが、なぜ期待どおりに動作しないのかわかりません。

以下は私のハンドラーの抜粋です:

onUpdatingServerName(event: Event) {
  console.log(event);
  this.newserverName = event.target.value; //this wont work
}

HTML 要素:

<input type="text" class="form-control" (input)="onUpdatingServerName($event)">

コードにエラーが発生します:

プロパティ「value」はタイプ「EventTarget」に存在しません。

しかし、 からわかるように、 にconsole.logはその値が存在しますevent.target

ベストアンサー1

event.targetここでは、HTMLElementすべての HTML 要素の親である がありますが、プロパティ を持つことは保証されていませんvalue。TypeScript はこれを検出し、エラーをスローします。適切な HTML 要素にキャストして、 であり、プロパティを持っているevent.targetことを確認します。HTMLInputElementvalue

(event.target as HTMLInputElement).value

パードキュメント:

入力してください$event

上記の例では、 を型$eventとしてキャストしますany。これにより、コストはかかりますが、コードが簡素化されます。イベント オブジェクトのプロパティを明らかにして、愚かな間違いを防ぐことができる型情報はありません。

[...]

$event特定の になりましたKeyboardEventすべての要素に プロパティがあるわけではないので、入力要素にvalueキャストされます。target

(強調は筆者による)

おすすめ記事