2016-10-17 11 views
1

私は単方向のデータフローを作成するために使用している単純なAngular 2サービスを持っています。したがって、サービスはアクション(action$)を公開し、コンポーネントはaction$.next(game)を呼び出すことができます。サービスはこのアクションにサブスクライブし、すべてのリスナーに再発行します。引数タイプfunction(Game、string)はパラメータタイプに割り当てられませんPartialObserver <Game> | function(Game):void

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

コールバックには1つの引数が必要です。これは、オブザーバブルが渡すデータです。

エラーが引数として許可されているものを言っている:

  1. PartialObserver<Game>
  2. のインスタンスまたはfunction(Game)Game引数を取る関数)

どちらかこれは活字体であります2つのタイプを指定する場合(|を使用する場合)

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) 
です。
関連する問題