VS 2012 Update 3 にバージョン 0.9.0.1 の typescript コンパイラがインストールされています。
カスタム イベントをディスパッチしたいのですが、lib.d.ts で宣言されたアンビエント変数が、予想されるコンストラクター シグネチャを公開していません。
私が使うとき
var myEvent = new CustomEvent("my:event:type", { detail: { some: "data"} });
window.dispatchEvent(myEvent);
彼によると、型スクリプト コンパイラは不平を言います。
var myEvent = new CustomEvent();
正しい。
Chrome 27 および Aurora 24.02 によると、「引数が欠落している」ため、後者は誤りです。
MDN には、実際には正しいが typescript 用ではないコンストラクターの署名もリストされています。
私の考えでは、既知の正しいコンストラクター署名をアンビエント変数宣言に追加することでしたが、出荷された lib.d.ts ファイルには触れません。これは技術的に可能でしょうか?正しい構文を思いつくことができませんでした。また、言語仕様には、そのような 2 つの宣言をマージする方法が記載されていませんでした。
別の方法として、lib.d.ts を編集しただけで、IDE の再起動後に署名が更新されました。それでも、サードパーティのファイルをそのような方法で改ざんしたくはありません。
最後に、カスタム イベントをディスパッチするタイプ スクリプト コードを記述するために使用できる (sh|c) 他のメカニズムはありますか?
(更新: IDE を再起動すると、lib.d.ts が正しくリロードされます。また、作成されたイベント タイプ名が修正されました)