我有一个联系服务,负责以通讯录的方式管理联系人。例如,我的界面如下所示:
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)
的位置:
不可分配给'string |类型的参数联系[]'。 类型“地图”缺少类型“联系人[]”的以下属性:长度,弹出,推入,连拍和其他21个。ts(2345)
我看不到此错误的来源。谢谢大家的帮助!
答案 0 :(得分:1)
您的BehaviourSubject
应该实例化如下:
private readonly ab$: BehaviorSubject<Map<string, Contact[]>> = new BehaviorSubject(new Map({}));
因为它的类型必须与addressBook
相同。