2012-10-08 70 views
1

我試圖用打字稿一起使用MooTools的功能的綁定方法。 Mootools和一些現代瀏覽器支持多態的.bind方法。如何申報打字稿

我怎樣才能正確地宣佈這項功能在* .d.ts文件,以便能夠使用同樣的結構[1,2] .MAP(this.foo.bind(本)); ?

我知道我可以避免這樣的結構,通過使用lambda表達式,但有時我也不想。

或許有一個mootools.d.ts文件的地方,我可以下載,而不是徹底改造它自己?

回答

1

打字稿的lib.d.ts已經定義了綁定功能的簽名在功能界面如下:

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

我不認爲有這樣做,直到泛型被添加到語言的任何更好的辦法。

暫時不過,如果你想使用綁定和產生功能的接收方預期特定的簽名,你將不得不投功能回到那個簽名:

var bfn : (p: number) => string; 
bfn = <(p: number) => string> fn.bind(ctx); 
0

有被跟蹤here的定義文件越來越多。

至於產生方法預先綁定在其this指針打字稿我認爲這樣做有兩種方式。 1)我在this thread的末尾定義了一個簡單的基類。和2)更高級的混合屬性系統here