LoginSignup
99
56

More than 5 years have passed since last update.

TypeScriptで document.getElementById("hoge").value をすると出るThe property ‘hoge' does not exist on value of type 'HTMLElement' というエラーを解消する

Last updated at Posted at 2017-03-09

TypeScriptで document.getElementById("hoge").value をすると出るThe property ‘hoge' does not exist on value of type 'HTMLElement' というエラーを解消する

TypeScriptでElementの値を document.getElementById("hoge").value で取得しようとしたところエラーが出た。

症状

document.getElementById(‘hoge’).value を使用すると、以下のエラーが生じる。

発生したエラー
The property ‘hoge' does not exist on value of type 'HTMLElement'


(意訳)‘hoge'というプロパティは HTMLElement型の値には存在しない。


エラーになる理由

document.getElementById(‘hoge’);の戻り値は、HTMLElement型で、エラーの文章にもある通り、この型のインターフェースにはvalueプロパティは存在しない

HTMLElementインターフェースのドキュメント
https://developer.mozilla.org/ja/docs/Web/API/HTMLElement

どうすれば良いか

HTMLInputElementというHTMLElementを継承したインターフェースには、valueプロパティが存在するので、こちらにType Assertionすれば良い

HTMLElementインターフェースのドキュメント
https://developer.mozilla.org/ja/docs/Web/API/HTMLInputElement

const element: HTMLInputElement =<HTMLInputElement>document.getElementById(hoge');
const value: string = element.value;

HTMLInputElementインターフェースのドキュメント
https://developer.mozilla.org/ja/docs/Web/API/HTMLInputElement

参考にさせていただいたサイト

javascript - The property 'value' does not exist on value of type 'HTMLElement' - Stack Overflow
https://developer.mozilla.org/ja/docs/Web/API/HTMLElement
https://developer.mozilla.org/ja/docs/Web/API/HTMLInputElement

99
56
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
99
56