为什么angular2以这种方式声明接口?

时间:2016-02-17 02:24:43

标签: typescript

我在public class MyService<TModel, TMember> { public MyService(Expression<Func<TModel, TMember>> member) { } }

中找到了以下界面定义
angular2/src/core/di/decorators.ts

我想知道这应该做什么?为什么将接口声明为export interface InjectFactory { (token: any): any; new (token: any): InjectMetadata; } function?(顺便说一句,我知道class是什么意思。我只是不知道为什么interface和{{1} }})

背后有什么理由,为什么这有利于实现这个目标?

1 个答案:

答案 0 :(得分:0)

打字稿规范object types中的以下部分使用JQuery作为一个很好的解释,为什么这可能会派上用场

您可能希望/需要将实现上述接口的对象用作函数或常规对象。下面是上面链接中的示例,它说明了这样的jquery对象'$':

$.get("http://example.com",  
  function (data: string) {  
      $("div").text(data);  
  }  
);

注意$ .get()和$(“div”)的用法。

这样的接口允许我们描述不适合打字稿对象/类范例的现有javascript对象。