如何为TypeScript声明Function的bind方法

时间:2012-10-08 16:35:45

标签: mootools typescript

我正在尝试将Mootools与TypeScript一起使用。 Mootools和一些现代浏览器支持.bind方法,它是多态的。

如何在* .d.ts文件中正确声明此功能,以便能够使用[1,2] .map(this.foo.bind(this))等结构; ?

我知道我可以通过使用lambdas来避免这样的结构,但有时候我不想这样做。

也许有一个mootools.d.ts文件,我可以下载而不是自己重新创建它?

2 个答案:

答案 0 :(得分:1)

TypeScript的lib.d.ts已经在Function接口中定义了bind函数的签名,如下所示:

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

我认为除非将泛型添加到语言中,否则有更好的方法。

暂时,如果你想使用bind并且结果函数的接收者需要一个特定的签名,你将不得不将该函数强制转换回该签名:

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

答案 1 :(得分:0)

有越来越多的定义文件被跟踪here

至于在TypeScript中预先绑定到它们的指针的方法,我提出了两种方法。 1)我在this thread末尾定义的简单基类。 2)更先进的mixin&amp;属性系统here