Angular 7属性“ share”不存在可观察类型

Dan*_*Dan 1 rxjs typescript angular angular7

我在Angular 7中编写了CachcingServiceBase,但是似乎遇到了以下错误“可观察的共享不是函数”

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;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我导入共享运算符错误吗?我该如何解决?。我也尝试以其他方式导入,但无法解决问题

小智 8

错误的导入和错误的用法:

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;
    }
  }
Run Code Online (Sandbox Code Playgroud)

}