6

I have the following piece of code:

 this.routerSubscription = this._router.events
     .filter(event => event instanceof NavigationStart)
     .subscribe((event:Event) => {
        ....
     });

Which throws me an error of:

error TS2345: Argument of type '(event: Event) => void' is not assignable to parameter of type 'NextObserver<NavigationStart | NavigationEnd | NavigationCancel | NavigationError> | ErrorObserve...'.
  Type '(event: Event) => void' is not assignable to type '(value: NavigationStart | NavigationEnd | NavigationCancel | NavigationError) => void'.
    Types of parameters 'event' and 'value' are incompatible.
      Type 'NavigationStart | NavigationEnd | NavigationCancel | NavigationError' is not assignable to type 'Event'.
        Type 'NavigationStart' is not assignable to type 'Event'.
          Property 'bubbles' is missing in type 'NavigationStart'.

What am I doing wrong?

uksz
  • 17,499
  • 30
  • 89
  • 153

1 Answers1

18

I guess you forgot about:

import { Event } from '@angular/router';

Or use it like:

import { Event as NavigationEvent } from '@angular/router';
...
.subscribe((event: NavigationEvent)

See also

Community
  • 1
  • 1
yurzui
  • 190,482
  • 29
  • 403
  • 383