web-dev-qa-db-ja.com

TypeScript:型 '(error:any)=> void'の引数は、型のパラメーターに代入できません

次のコード:

_private getJSON(): Observable<any> {
    return this.http.get('./reportNav-NEW.json')
      .map((res:any)=> res.json())
      .catch((error:any) => console.log(error));
  }
_

エラーは私に与えます:

型 '(error:any)=> void'の引数は、型 '(err:any、caught:Observable)=> ObservableInput <{}>'のパラメーターに代入できません。タイプ 'void'は、タイプ 'ObservableInput <{}>'に割り当てることができません。

.catch((error:any) => console.log(error));で発生します

7
its.david

これは私のために働いた(コメントの@trevorに感謝)

private getJSON(): Observable<any> {
    console.log(document.location.href);
    return this.http.get('...')
      .map((res:any)=> res.json())
      .catch((error:any) => {
        return Observable.throw(error);
      })
  }

更新:rxjs 6では、「rxjs/operators」から「throwError」演算子を呼び出し、「Observable.throw」の代わりに使用する必要があります。

14
its.david