我有一个简单的Angular 2服务,我用它来创建单向数据流。因此,该服务公开了操作(action$
),组件可以调用action$.next(game)
。该服务订阅此操作并重新发送给所有侦听器。
constructor() {
this.action$ = new Subject();
// Subscribe to actions
this.action$.subscribe(this.handleAction);
}
handleAction(game: Game, playerId: string) {}
但是,我收到了错误:
Argument type function(Game, string) is not assignable to parameter type PartialObserver<Game>|function(Game): void
如果我删除了playerId: string
,那么它可以正常运行,但我不明白function(Game): void
定义的来源。
答案 0 :(得分:0)
但我不明白函数(游戏):void定义来自哪里
回调应该只有一个参数,即observable传递给你的数据。
错误告诉我们允许什么作为参数:
PartialObserver<Game>
function(Game)
(一个带Game
参数的函数)当您想说两种类型(使用|
)
let something: number|string; // something can be a number or string
function doit(id: number|string) {} // you can pass a number or string
subscribe
的签名是
subscribe(observer: PartialObserver<Game>|function(Game) => void)