You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Subscription赋值给Observable<EnumValue[]>时出现类型不匹配错误

问题解决:Observable类型赋值异常

你的错误根源是:subscribe()方法返回的是Subscription订阅对象,但你把它赋值给了声明为Observable<EnumValue[]>类型的this.contactLocationStates$,类型不匹配导致报错。

正确的做法是用map操作符在Observable管道内完成过滤逻辑,这样整个管道返回的仍然是Observable类型,能直接赋值:

fetchContactLocationStates()
{
   this.contactLocationStates$ = this.enumValues$
     .pipe(
       takeUntil(this.destroy$),
       map(x => x.filter((p) => p.CategoryId === EnumCategory.State))
     );
}

补充说明:

  • 若需要消费这个Observable的数据,再单独调用subscribe(),比如在组件的合适生命周期或业务逻辑里:
this.contactLocationStates$.subscribe(filteredStates => {
  // 这里处理过滤后的状态数据
});
  • subscribe()的作用是触发Observable执行并接收数据,它的返回值是订阅实例,主要用来后续取消订阅(比如结合你的destroy$),不能直接赋值给Observable类型变量。

内容的提问来源于stack exchange,提问作者CorrieJanse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 03:42:01