htt*_*ick 5 tuples rxjs typescript behaviorsubject
我试着制作一个由两个布尔组成的元组 BehaviorSubject
private someBehaviorSubject: BehaviorSubject<[boolean, boolean]> = new BehaviorSubject([false, false]);
Run Code Online (Sandbox Code Playgroud)
但我得到一个编译错误说:
Type 'BehaviorSubject<boolean[]>' is not assignable to type 'BehaviorSubject<[boolean, boolean]>'
Run Code Online (Sandbox Code Playgroud)
如何创建两个布尔值的元组,并正确初始化BehaviorSubject?它似乎认为[false, false]
是类型boolean[]
而不是索引为0的元组,索引1需要是布尔值.
打字稿版本: 2.3.3
来自rxjs v的BehaviorSubject5.0.1
在TypeScript中使用元组目前有点棘手.数组文字可能会被意外地推断为数组类型而不是元组,这就是在这种情况下发生的事情.编译器new BehaviorSubject([false, false])
过于急切地解决了类型的对象BehaviorSubject<boolean[]>
,而没有检查目标变量的类型.这是一个已知的关注和许多相关问题进行了问题跟踪发布(#16391,#15656,甚至更多),并建议已经奠定了解决这一问题(#10195,#16656,...).
对于推理失败的特定情况,您可能只需要求助于:
private someBehaviorSubject = new BehaviorSubject([false, false] as [boolean, boolean]);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
543 次 |
最近记录: |