Manejo de errores con Observables en Angular 2

Estoy intentando pasar cualquier error que pueda ocurrir en una solicitud HTTP a un servicio de registro común de todos mis servicios:

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/catch';

constructor(logger: LoggerService) { }

doSomething(): Observable<any> {
    return this.http
        .post('/foo/bar', {})
        .catch(this.notifyErrors);
}

protected notifyErrors(error: any): Observable<any> {
    this.logger.log(error);

    return Observable.throw(error);
}

Desafortunadamente, dentro del método notifyErrors, esto se pierde. He intentado definir esto como una flecha grande, pero obtengo errores de tipo del compilador TS. He usado la sintaxis exacta en la documentación de Observable.

Mejor respuesta
Si pasa referencias de funciones, necesita arreglar esto

 .catch(this.notifyErrors.bind(this));

o alternativamente

 .catch(() => this.notifyErrors());

Véase también https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions

Por favor indique la dirección original:Manejo de errores con Observables en Angular 2 - Código de registro