【问题标题】:Property 'getValue' does not exist on type 'Subject<boolean>'类型“主题<boolean>”上不存在属性“getValue”
【发布时间】:2016-05-13 19:18:23
【问题描述】:
我正在使用 Angular2。我有一个BehaviorSubject。
isOpen$: Subject<boolean> = new BehaviorSubject<boolean>(true);
当我这样使用获取最新值时
isOpen$.getValue()
效果很好,但终端给了我警告:
属性'getValue' 不存在于类型'Subject<boolean>'
我该如何解决这个问题?
【问题讨论】:
标签:
typescript
angular
rxjs5
【解决方案1】:
您将其定义为Subject<boolean>,但从BehaviorSubject<boolean>(true) 分配。在 TypeScript 中,属性的类型在分配时是多余的。删除这样的声明:
isOpen$ = new BehaviorSubject<boolean>(true);
然后静态分析器将按照您的预期正确处理它。 Subject<boolean> 类型不包含 getValue 方法。
【解决方案2】:
isOpen$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);
那么静态分析器alao知道getValue()存在。
Subject 没有getValue()