gpt4 book ai didi

两个 bool 值的 typescript 元组被推断为 bool 类型的数组

转载 作者:搜寻专家 更新时间:2023-10-30 20:41:57 25 4
gpt4 key购买 nike

我尝试制作一个包含两个 bool 值的元组以放入我的 BehaviorSubject

private someBehaviorSubject: BehaviorSubject<[boolean, boolean]> = new BehaviorSubject([false, false]);

但是我得到一个编译错误:

Type 'BehaviorSubject<boolean[]>' is not assignable to type 'BehaviorSubject<[boolean, boolean]>'

如何创建一个包含两个 bool 值的元组,并正确初始化 BehaviorSubject?它似乎认为 [false, false] 是类型 boolean[] 而不是索引 0 和索引 1 必须是 bool 值的元组。

typescript 版本:2.3.3

来自 rxjs v5.0.1

的 BehaviorSubject

最佳答案

目前在 TypeScript 中使用元组有点棘手。数组文字可能会被意外地推断为数组类型而不是元组,这就是本例中发生的情况。编译器已解决 new BehaviorSubject([false, false])太热衷于 BehaviorSubject<boolean[]> 类型的对象,而不检查目标变量的类型。这是一个已知问题,许多相关问题已发布在问题跟踪器中(#16391#15656,可能还有更多),并提出了解决该问题的建议(#10195#16656、...)。

对于推理失败的特定情况,您可能只需要求助于转换:

private someBehaviorSubject = new BehaviorSubject([false, false] as [boolean, boolean]);

关于两个 bool 值的 typescript 元组被推断为 bool 类型的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44891348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com