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

Property 'getValue' does not exist on type 'Subject<boolean>'

我正在使用 Angular2。我有一个 BehaviorSubject.

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

当我这样使用获取最新值时

isOpen$.getValue()

它运行良好,但终端给我警告:

Property 'getValue' does not exist on type 'Subject<boolean>'

我该如何解决这个问题?

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

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

Subject 没有 getValue()

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

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

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