TypeScriptでビルドエラーになった時の対処法(property 'XXXX' does not exist on type 'XXXX')

TypeScript楽しいですけど、なかなか情報が少なくて厳しいですね。(ブログネタとしては最適か?)
今回はキャストが必要なビルドエラーについて解説します。





property 'value' does not exist on type 'Element'

idなどへアクセスしようとした時にビルドエラーになるパターン
例えばdocument.activeElementなどはElement型で帰ってくるのでキャストが必要です
// NG
    var activeElementId = (document.activeElement).id;

    // OK
    var activeElementId = (<HTMLElement>document.activeElement).id;
idの他hiddenやtabIndex,styleなどはHTMLElementみたいですね。

property 'value' does not exist on type 'HTMLElement'

textareaエリアなど入力フィールドでビルドエラーになるパターン。
HTMLInputElementへキャストする必要があります。
// NG
    var text = document.getElementById("textarea").value;
    
    // OK
    var text = <HTMLInputElement>document.getElementById("textarea").value;
valueの他checkedやwidth,height等があるようです。

いじょ
何か見つけたらまた書きます。

2015年11月1日日曜日