Harish Krishnan
Harish Krishnan

Reputation: 1823

Could not use Observable.of in RxJs 6 and Angular 6

 import { Observable, of } from "rxjs";

// And if I try to return like this
  return Observable.of(this.purposes);

I am getting an error stating, Property 'of' does not exist on type 'typeof Observable'

Upvotes: 64

Views: 46539

Answers (3)

Titukedo
Titukedo

Reputation: 950

To avoid black-list linting of the rxjs, import them like this:

import { Observable } from 'rxjs/Observable';
import { of } from 'rxjs/observable/of';

Upvotes: 0

Tiny King
Tiny King

Reputation: 131

rxjs 6

import { PreloadingStrategy, Route } from '@angular/router';
import { Observable, of } from 'rxjs';

export class SelectivePreloadingStrategy implements PreloadingStrategy {
    preload(route: Route, load: Function): Observable<any> {
       return route.data && route.data.preload === false ? of(null) : load();
    }

 }

Upvotes: 4

tim545
tim545

Reputation: 1533

Looks like cartant's comment is correct, the RxJS upgrade guide doesn't cover that method specifically but does say "Classes that operate on observables have been replaced by functions"

Which seems to mean all or most of those class methods like .of, .throw etc. have been replaced by a function

So instead of

import { Observable, of } from "rxjs";
Observable.of(this.purposes);

do

import { of } from "rxjs";
of(this.purposes);

Upvotes: 120

Related Questions