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