【问题标题】: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&lt;boolean&gt;'

我该如何解决这个问题?

【问题讨论】:

    标签: typescript angular rxjs5


    【解决方案1】:

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

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

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

    【讨论】:

    • @HongboMiao,乐于助人
    【解决方案2】:
    isOpen$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);
    

    那么静态分析器alao知道getValue()存在。

    Subject 没有getValue()

    【讨论】:

      猜你喜欢
      • 2017-10-17
      • 1970-01-01
      • 2018-01-14
      • 2017-02-09
      • 1970-01-01
      • 2019-10-29
      • 1970-01-01
      • 2020-09-15
      • 1970-01-01
      相关资源
      最近更新 更多