2016-10-19 21 views
0

これは非常に簡単ですが、Typescriptのフィルタ機能は私にエラーを与え続けます。ここに私のコードは次のとおりです。Angular2ではJavaScriptのフィルタ機能が正しく動作しません

highScores: HighScore[]; 

deletePlayer(email: string) { 
     this.scoreDataService.deletePlayer(email) 
     .subscribe(
      this.highScores = this.highScores.filter(highScore => highScore.email !== email) 
     ); 
} 

フィルタ機能は、単に[]配列ハイスコアを返す必要がありますが、代わりに、私はこのエラーを取得しておいてください。

Argument of type 'HighScore[] is not assignable to parameter of type 'NextObserver<Response> | ErrorObserver<Response> | CompletionObserver<Response> ... 

Type 'HighScore[]' is not assignable to type '(value: Response) => void'. Tyope 'HighScore[]' provides no match for the signature '(value:Response): void' 

奇妙な事は、このコードが実行された作品ということですこのエラーでも完全に。誰でも何が起こっているのか知っていますか?前もって感謝します!

+0

あなたの誤差はずっとこの1のように聞こえます:http://stackoverflow.com/questions/34738799/argument-of-type-x-is-not-assignable- to-parameter-of-type-x – Chris

+0

私は、コードが実行され完全に動作することを強く疑う。とにかく、フィルター機能が正しく機能していないと思うのはなぜですか?それともエラーを出しているのですか?エラーメッセージを慎重に読んでください。ほとんどのエラーメッセージのように、間違っていることを正確に示しています。 –

答えて

2

subscribeは、関数の引数を期待:

this.scoreDataService.deletePlayer(email) 
    .subscribe(() => { 
    this.highScores = this.highScores.filter(highScore => highScore.email !== email) 
    }); 
+0

うわー、ありがとう。 –

関連する問題