error TS2339: la propiedad 'catchError' no existe en el tipo 'Observable <any>'

Aquí está mi código en book.service.ts:

import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import {Observable} from 'rxjs';
import { Book } from './book';
import { map } from "rxjs/operators";
import { catchError } from 'rxjs/operators';

//import { Component, OnInit } from '@angular/core';
//import {HttpClient} from "@angular/common/http";
//import { Observable } from 'rxjs/Observable'; 
//import 'rxjs/add/operator/map';
//import 'rxjs/add/operators/catch';
//import 'rxjs/operators/toPromise';

@Injectable()
export class BookService 
{
    url = "http://localhost:4200/assets/data/books.json";

    constructor(private http:Http) { }

    getBooksWithObservable(): Observable<Book[]> 
    {
        return this.http.get(this.url)
                .pipe(map(this.extractData))
                .catchError(this.handleErrorObservable);
    }
    getBooksWithPromise(): Promise<Book[]> 
    {
        return this.http.get(this.url).toPromise()
            .then(this.extractData)
            .catch(this.handleErrorPromise);
    }
    private extractData(res: Response) 
    {
        let body = res.json();
        return body;
    }
    private handleErrorObservable (error: Response | any) 
    {
        console.error(error.message || error);
        //console.log("Error in Observable");
        return Observable.throw(error.message || error);
    }
    private handleErrorPromise (error: Response | any) 
    {
        console.error(error.message || error);
        return Promise.reject(error.message || error);
    }   
}

Y obtengo el Error aquí:

ERROR en src / app / book.service.ts (26,18): error TS2339: la propiedad 'catchError' no existe en el tipo 'Observable'.

Bueno, el error está en la línea 26 y es:

.catchError(this.handleErrorObservable); 

He intentado muchas cosas pero nada funcionó ... ¿Alguien puede resolver esto?

Hice con 'catch' pero no funcionó, así que busco 'catchError' pero aún así, existe este error ...

Respuestas a la pregunta(3)

Su respuesta a la pregunta