簡體   English   中英

在Angular Typescript中如何從Map()創建Observable

[英]In Angular Typescript how to create a Observable from Map()

我有一個聯系服務,負責以通訊錄的方式管理聯系方式。 例如,我的界面如下所示:

export interface AddressBook {
  a?: Contact[];
  //...
}

Contact[]只是名稱,年齡,電子郵件之類的東西。 在我的服務中,我目前有以下實現:

  private addressBook: Map<string, Contact[]> = new Map<string, Contact[]>();
  private readonly ab$: BehaviorSubject<string | Contact[]> = new BehaviorSubject<string | Contact[]>(this.addressBook);

  public constructor(){}

  public getContacts(): Observable<string | Contact[]> {
    return this.ab$.asObservable();
  }

但是,我遇到的問題是private readonly ab$: BehaviorSubject<string | Contact[]> = new BehaviorSubject<string | Contact[]>(this.addressBook) private readonly ab$: BehaviorSubject<string | Contact[]> = new BehaviorSubject<string | Contact[]>(this.addressBook) private readonly ab$: BehaviorSubject<string | Contact[]> = new BehaviorSubject<string | Contact[]>(this.addressBook)表示:

不可分配給'string |類型的參數 聯系[]'。 類型“地圖”缺少類型“聯系人[]”的以下屬性:長度,彈出,推入,連拍和其他21個。ts(2345)

我看不到此錯誤的來源。 謝謝大家的幫助!

您的BehaviourSubject應該實例化如下:

private readonly ab$: BehaviorSubject<Map<string, Contact[]>> = new BehaviorSubject(new Map({}));

由於它的類型必須與addressBook相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM