Пример кода агрегатора событий Aurelia для подписки () недействителен Typescript?
В руководстве по управлению контактами на главном сайте Aurelia показано, что для экземпляра EventAggregator с именем ea для подписки на публикацию в TypeScript можно использовать следующий код:
ea.subscribe(ContactViewed, msg => this.select(msg.contact));
Однако, хотя требуемый класс ContactViewed определен правильно, этот синтаксис не будет "компилироваться" в VS 2017 (настроен с предупреждениями как ошибки).
Error TS2346 (TS) Supplied parameters do not match any signature of call target.
К счастью, следующий "эквивалентный" синтаксис компилируется и работает:
ea.subscribe(ContactViewed, function(msg: ContactViewed) {
this.select(msg.contact);
});
Поэтому мой вопрос: почему этот синтаксис задокументирован как допустимый TypeScript Aurelia и / или почему он не будет работать для меня?
Спасибо
1 ответ
Я смог исправить проблему с помощью скобок вместе с директивой типа:
ea.subscribe(ContactViewed, (msg: ContactViewed) => this.select(msg.contact));
По общему признанию, я новичок в Aurelia и Typescript, но это намного усложняет, когда документы "vendor" предоставляют учебную информацию, которая не работает "из коробки". Урок выучен.