Aurelia事件聚合器示例代码到subscribe()是无效的Typescript?

时间:2017-09-29 00:46:14

标签: typescript aurelia aurelia-event-aggregator

Aurelia主站点上的联系人管理器教程显示,对于名为ea的EventAggregator实例,可以在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);
    });

所以我的问题是,为什么这个语法被Aurelia记录为有效的TypeScript,和/或为什么它不适合我呢?

由于

1 个答案:

答案 0 :(得分:0)

我能用一些括号和类型指令纠正这个问题:

ea.subscribe(ContactViewed, (msg: ContactViewed) => this.select(msg.contact));

我当然是Aurelia和Typescript的新手,但是当这个"供应商"它变得更加艰难。 docs提供的教程信息并不是开箱即用的。经验教训。