typescript - Angular 7 Proprietatea 'share' nu există în tipul observable


Scriam CachcingServiceBase în Angular 7, dar se pare că apare următoarea eroare „observable share nu este o funcție”

import "rxjs/add/operator/share";
import { Observable } from "rxjs";

export abstract class CachcingServiceBase {
  protected cache<T>(getter: () => Observable<T>,
                     setter: (val: Observable<T>) => void,
                     retreive: () => Observable<T>): Observable<T> {
    const cached = getter();
    if (cached !== undefined) {
      return cached;
    } else {
      const val = retreive().share();
      setter(val);
      return val;
    }
  }
}

Import oare greșit operatorul share? Cum pot rezolva asta? Am încercat să import în alte moduri, dar nu am reușit să rezolv problema

Răspuns #1

Import greșit și utilizare greșită :

import { share } from 'rxjs/operators';
import { Observable } from "rxjs";

export abstract class CachcingServiceBase {
  protected cache<T>(getter: () => Observable<T>,
                     setter: (val: Observable<T>) => void,
                     retreive: () => Observable<T>): Observable<T> {
    const cached = getter();
    if (cached !== undefined) {
      return cached;
    } else {
      const val = retreive().pipe(share());
      setter(val);
      return val;
    }
  }

}