web-dev-qa-db-ja.com

TypeScript 1.5でボタンを有効/無効にする方法は?

VS 2013の使用。TypeScript1.5をインストールし、質問/提案に従ってアップグレードした後:

「プロジェクトは、Visual Studioで現在インストールされているバージョンよりも古いバージョンのTypeScriptを使用しています。プロジェクトをビルドしようとするとエラーが発生する場合があります。プロジェクトファイルのTypeScriptToolsVersionをアップグレードして、この警告が表示されないようにしてください再び?"

次のようなエラーが大量に発生しました。

エラー39ビルド:プロパティ「無効」がタイプ「HTMLElement」に存在しません。

次のようなステートメントで:

document.getElementById("btnExcel").disabled = false;

「無効」の中線付き。

https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes バージョン1.5を参照すると、「サイズ変更、無効、uniqueID、removeNode、fireEvent、currentStyle、runtimeStyleのプロパティが削除されます」タイプHTMLElementから」

今、私はこれらの「間違った」声明を次のように言い換えました。

document.getElementById("btnExcel").setAttribute('disabled', 'disabled');

私には奇妙に見えます。

TypeScript 1.5では、これをタイプセーフな方法でよりエレガントに表現できますか?有効化と無効化の両方の例を挙げられますか?

助けてくれてありがとう!

23
lucobada

これを行うには、よりクリーンな方法が必要です。

var element = <HTMLInputElement> document.getElementById("btnExcel");
element.disabled = true;

または、ライナーが1つ必要な場合:

(<HTMLInputElement> document.getElementById("btnExcel")).disabled = true;

getElementByIdなどは汎用メソッドであり、型パラメーターを受け入れる必要があるようです。つまり、ジェネリックメソッドでは、型キャストでは得られないものは得られません。

44
Martin