类型'Subject <boolean>'上不存在属性'getValue'

时间:2016-05-13 19:18:23

标签: typescript angular rxjs5

我正在使用 Angular2 。我有BehaviorSubject

isOpen$: Subject<boolean> = new BehaviorSubject<boolean>(true);

当我像这样使用以获得最新值

isOpen$.getValue()

效果很好,但终端给了我警告:

  

'getValue'

类型中不存在'Subject<boolean>'属性

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

您将其定义为Subject<boolean>,但是从BehaviorSubject<boolean>(true)进行分配。在 TypeScript 中,分配属性时,属性的类型是多余的。删除这样的声明:

isOpen$ = new BehaviorSubject<boolean>(true);

然后静态分析仪会按照您的预期正确处理它。类型Subject<boolean>不包含getValue方法。

答案 1 :(得分:2)

isOpen$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);

然后静态分析器alao知道getValue()存在。

Subject没有getValue()