1

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

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

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

也许有一个 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 中生成预先绑定到其 this 指针的方法,我建议了两种方法。1)我在这个线程的末尾定义了一个简单的基类。和 2)这里有一个更高级的 mixin & 属性系统。

于 2012-10-08T17:48:48.443 回答