99
57

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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
57
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
57

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?