Пример кода агрегатора событий 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" предоставляют учебную информацию, которая не работает "из коробки". Урок выучен.

Другие вопросы по тегам