RxJS 已更新,属性 'merge' 在类型 'typeof Observable' 上不存在

RxJS updated, Property 'merge' does not exist on type 'typeof Observable'

我更新了我的 material angular 项目以在我的 table 中包含一个可扩展的详细信息行。为此,我需要升级到 rsjx 6。现在我收到以下错误。我是 angular 的新手,所以不幸的是我不知道如何解决这个问题。

Property 'merge' does not exist on type 'typeof Observable'.

谁能帮忙解决这个错误?

app.component.ts

  /** Connect function called by the table to retrieve one stream containing the data to render. */
  connect(): Observable<Track[]> {
    // Listen for any changes in the base data, sorting, filtering, or pagination
    const displayDataChanges = [
    this._exampleDatabase.dataChange,
    this._sort.sortChange,
    this._filterChange,
    this._paginator.page
    ];

    this._exampleDatabase.getAllTracks();

    return Observable.merge(...displayDataChanges).map(() => {
      // Filter data
      this.filteredData = this._exampleDatabase.data.slice().filter((track: Track) => {
        const searchStr = (track.id + track.title + track.artist + track.year + track.comment + track.path).toLowerCase();
        return searchStr.indexOf(this.filter.toLowerCase()) !== -1;
      });

      // Sort filtered data
      const sortedData = this.sortData(this.filteredData.slice());

      // Grab the page's slice of the filtered sorted data.
      const startIndex = this._paginator.pageIndex * this._paginator.pageSize;
      this.renderedData = sortedData.splice(startIndex, this._paginator.pageSize);
      return this.renderedData;
    });
  }

静态 merge 从版本 6 开始导入如下:

import {merge} from 'rxjs'

然后将其用作:

merge(...)

rxjs 的旧版本中,您使用 Observable.merge(...array).map(() => {});。 对于新版本,即 rxjs 6+ 你必须使用以下语法:

import { merge } from 'rxjs';
import { map } from 'rxjs/operators';

merge(...array).pipe(
  map(...),
  ...
);