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,和/或为什么它不适合我呢?
由于
答案 0 :(得分:0)
我能用一些括号和类型指令纠正这个问题:
ea.subscribe(ContactViewed, (msg: ContactViewed) => this.select(msg.contact));
我当然是Aurelia和Typescript的新手,但是当这个"供应商"它变得更加艰难。 docs提供的教程信息并不是开箱即用的。经验教训。