angular - 在 Angular Typescript 中,如何从 Map() 创建 Observable
问题描述
我有一个联系人服务,负责管理联系人,在地址簿中,方式类型。例如我的界面是这样的:
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)
它说的地方:
不可分配给“字符串”类型的参数 | 接触[]'。“Map”类型缺少“Contact[]”类型的以下属性:length、pop、push、concat 和 21 more.ts(2345)
我看不到这个错误来自哪里。谢谢你们的帮助!
解决方案
您BehaviourSubject
应该按如下方式实例化:
private readonly ab$: BehaviorSubject<Map<string, Contact[]>> = new BehaviorSubject(new Map({}));
因为它必须与addressBook
.
推荐阅读
- java-8 - 如何将 UTC 中标准 ISO 8601 格式的输入字符串解析为 Java?
- r - 错误:(gcloud.compute.ssh)无法获取资源:-找不到资源
- python - 格式化计算变量时出现“ValueError:格式说明符无效”
- javascript - 获取 JS (mouseover,mouseleave) 以在 html 文档中的图像上显示不同的文本
- python - 如何在没有 len() 计算换行符的情况下在 python 中存储一个大的 int?
- sql - LAG 行,直到从帮助列满足条件
- php - 每个查询的错误处理是否会影响性能?
- django - django如何对购物车中每个项目的项目*数量求和
- python - 我想在值用逗号分隔的列中用逗号分割
- unix - 如何进入名为“ls”的目录?