代码之家  ›  专栏  ›  技术社区  ›  CorrieJanse

类型“Observable<TData>”缺少类型“Obervable<TDData>”中的以下属性:映射。。。用于通用实现

  •  0
  • CorrieJanse  · 技术社区  · 1 年前

    尝试为不同的组件创建通用数据共享服务。然而,我收到了这个代码,不确定如何解决它:

    类型“Observable”缺少类型“Observer”中的以下属性:map、filter、reduce、flatMap和2个以上。

    我尝试过使用 extends 对于 TData 但我只能做映射、过滤、缩小中的一个。。。

    这是我的代码:

    import { Injectable } from '@angular/core';
    import { Observable } from '@apollo/client';
    import { Subject } from 'rxjs';
    
    @Injectable({
      providedIn: 'root'
    })
    
    export class DataMessageServiceService<TData> {
    
      private updateEvent$ = new Subject<TData>();
    
      constructor() { }
    
      public getUpdateEvent(): Observable<TData>
      {
        return this.updateEvent$.asObservable(); // <--- ERROR HERE
      }
    
      public pushUpdateEvent(data: TData)
      {
        return this.updateEvent$.next(data);
      }
    }
    
    1 回复  |  直到 1 年前