2

TypeScript で静的クラス関数に追加の宣言を提供するにはどうすればよいですか? たとえば、実験的なObject.observe()JavaScript 関数で Chrome Canary を使用しています。(any キャストに頼らずに) それを使用するために、Object.observe関数を宣言したいと思います。どうすればいいですか?

declare ?; // What goes here?

var x = {};
Object.observe( x, ( update : any ) => { console.log("Hello"); } ); // Declaration needed
4

1 に答える 1

2

インターフェイスを作成する必要があります。

interface Object {
  observe(beingObserved: any, callback: (update: any) => any) : void;
}

.ts次に、ファイルでそのインターフェイスを参照するだけです。の時点で0.8.1.1、Intellisense は不安定ですが、動作し、コンパイル中にコントラクトを強制します。

Object.observeで使用する場所も強調表示されますがAmbiguous call expression - could not choose overload、それでもコンパイルされます。

于 2012-12-12T20:43:20.853 に答える