angular - Angular中主题订阅的未知类型错误
问题描述
我有一个服务,我声明了一个主题->
isLoading = new Subject();
在组件中,我正在尝试订阅主题。
this.loadSubscription = this.service.isLoading.subscribe(loading=> {
this.isLoading = loading.status;
});
我在加载变量上收到打字稿类型错误。它说
类型 'unknown'(loading) 上不存在属性 'status'。
我也无法将类型添加为任何类型以加载变量。我该如何解决这个问题?
解决方案
Subject
接受泛型变量。因此将其视为 更准确Subject<T>
。
如果您Subject
从正确的路径导入,即rxjs
(而不是rxjs/dist/types
例如)T
将默认为any
.
要正确修复您的错误,请重新检查导入路径并注释isLoading
或Subject
.
所以如果你有type LoadingStatus = { status: string }
你可以的类型
isLoading: Subject<LoadingStatus> = new Subject();
isLoading = new Subject<LoadingStatus>();
推荐阅读
- java - 在 Android Studio 中重新分配时局部变量下划线
- git - 警告:不将分支主机设置为自己的上游
- c++ - 在参数中移动的智能指针上调用方法是否安全?
- azure - 无法使用发布管道 Azure Devops 运行位于远程客户端计算机上的 exe、powershell
- reactjs - 打字稿样式的组件
- python-3.x - 如何在python中使用正则表达式获取字符串后的内容
- android - 适配器的内容发生了变化,但 ListView 没有收到通知。安卓问题
- node.js - 登录并从 nodejs 中的 hashcorp 保险库获取秘密
- javascript - 关于 Javascript 执行上下文的说明
- amazon-web-services - 无法访问端口 80,443 上的任何域,但可以执行 ssh。这是一个 AWS 实例