2016-02-17 3 views
2

я нашел следующее определение интерфейса в angular2/src/core/di/decorators.tsПочему angular2 объявляет интерфейс таким образом?

export interface InjectFactory { 
    (token: any): any; 
    new (token: any): InjectMetadata; 
} 

мне интересно, что это должен делать? Почему декларирование интерфейс, либо function или class? (Кстати, я знаю, что interface имею в виду. Я просто не знаю, почему в обоих function и new constructor)

Есть ли причина этого, почему это хорошо достижения цели?

ответ

0

В следующем разделе в машинописной спецификации object types имеет хорошее объяснение с помощью JQuery в качестве образца, почему это может пригодиться

Вы могли бы хотеть/нужно использовать объект, который реализует выше интерфейс и как функция или обычный объект. Ниже приведен пример из приведенной выше ссылке, которая иллюстрирует такой объект JQuery '$': Использование

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

нота $ .get() и $ ("DIV").

Такие интерфейсы позволяют нам описывать существующие объекты javascript, которые не очень хорошо вписываются в парадигму объектов/классов типов.

Смежные вопросы