Search code examples
angularangular5angular6rxjs5rxjs6

Property 'distinctUntilChanged' does not exist on type 'Observable<Event>'


Trying to upgrade to Angular 6 from 5 and got this error:

ERROR in src/app/app.component.ts(26,23): error TS2339: Property 'distinctUntilChanged' does not exist on type 'Observable'.

I've imported distinctUntilChanged in app.module.ts:

import "rxjs/add/operator/distinctUntilChanged";

And my code in app.component.ts:

import { Component } from "@angular/core"; import { Router, NavigationEnd } from "@angular/router";
import { TranslateService } from "@ngx-translate/core";
import { GeoService } from "app/services/geo.service";
import { ArbeteService } from "app/services/arbete.service";
import { GoogleAnalyticsEventsService } from "app/services/google-analytics-events.service";

import * as _ from "lodash";

@Component({
    selector: "app-root",
    templateUrl: "./app.component.html",
    styleUrls: ["./app.component.scss"]
})
export class AppComponent {

        //Send pageview to Google Analytics
        router.events.distinctUntilChanged((previous: any, current: any) => {
        if (current instanceof NavigationEnd) {
            return previous.url === current.url;
        }
        return true;
    }).subscribe((x: any) => {
        googleAnalytics.emitVirtualPageView("Rekryteringsguiden", "Rekryteringsguiden");
    });

What am I missing here?


Solution

  • import { distinctUntilChanged } from 'rxjs/operators';
    
    router.events.pipe(distinctUntilChanged((previous: any, current: any) => {})).subscribe();