1

Mootools を TypeScript と一緒に使用しようとしています。Mootools、および一部の最新のブラウザーは、ポリモーフィックな .bind メソッドをサポートしています。

[1,2].map(this.foo.bind(this)); のような構造を使用できるように、この機能を *.d.ts ファイルで適切に宣言するにはどうすればよいですか。?

ラムダを使用することでそのような構成を回避できることはわかっていますが、回避したくない場合もあります。

おそらく、自分で作り直す代わりにダウンロードできる mootools.d.ts ファイルがどこかにあるのでしょうか?

4

2 に答える 2

1

TypeScript の lib.d.ts は、バインド関数のシグネチャを Function インターフェイスで次のように定義しています。

bind(thisArg: any, ...argArray: any[]): Function;

ジェネリックが言語に追加されるまで、それを行うより良い方法はないと思います。

当分の間、 bind を使用したい場合で、結果の関数の受信者が特定の署名を期待している場合は、関数をその署名にキャストする必要があります。

var bfn : (p: number) => string;
bfn = <(p: number) => string> fn.bind(ctx);
于 2012-10-08T18:03:34.800 に答える
0

ここで追跡されている定義ファイルのリストが増えています。

TypeScriptでこのポインターに事前にバインドされたメソッドを生成することに関して、私はこれを行う2つの方法を提案しました。1)このスレッドの最後に定義した単純な基本クラス。2)ここでより高度なミックスインと属性システム。

于 2012-10-08T17:48:48.443 に答える