2016-08-12 2 views
1

Я новичок в Angular2, и я не понимаю, что <> Синтаксис:<> синтаксис в машинописном Angular2

пример 1 (от https://angular.io/docs/ts/latest/guide/dependency-injection.html):

let mockService = <HeroService> {getHeroes:() => expectedHeroes } 

примера 2 (от https://angular.io/docs/ts/latest/guide/template-syntax.html)

deleteRequest = new EventEmitter<Hero>(); 

Любая помощь или ссылка на комплексный ответ приветствуются.

ответ

2

<HeroService> {getHeroes:() => expectedHeroes } соответствует утверждению типа cast/type классу HeroService. Возвращаемый объект будет следовать структуре этого класса.

new EventEmitter<Hero>(); - это способ параметризации класса (generics) EventEmitter, чтобы сказать, что он будет обрабатывать элементы типа Hero. В случае класса EventEmitter (см. https://github.com/angular/angular/blob/master/modules/%40angular/facade/src/async.ts#L80) он гарантирует, что объекты, используемые в качестве параметра метода emit, должны иметь тип Hero.

Смотрите следующие ссылки для получения более подробной информации:

+0

спасибо, есть ли больше использования этого синтаксиса <>? У вас есть ссылка на всеобъемлющее использование синтаксиса <>? Я удивлен, что не нашел. – shrimpdrake

+1

Я бы рекомендовал https://basarat.gitbooks.io/typescript/content/docs/types/type-assertion.html и https://www.typescriptlang.org/docs/handbook/generics.html –

2

Они называются "типа утверждений" и документированы в TypeScript manual.

Кстати, лучше всего не называть их «приведениями». Он «утверждает» компилятору, что значение следует рассматривать как определенный тип. Он останется недовольным, если вы скажете ему подумать о чем-то вроде того, какого он не может быть. Другими словами, заявленный тип должен быть более узким. Обратите также внимание на альтернативный синтаксис as Type, следующий за значением, которое более читаемо и позволяет избежать конфликтов с React.

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