gpt4 book ai didi

angular - Typescript 在 BehaviorSubject 实例化期间从不键入错误(never[] 不可赋值)

转载 作者:太空狗 更新时间:2023-10-29 18:12:27 26 4
gpt4 key购买 nike

在我的 Angular 项目中,我试图初始化 BehaviorSubject具有空数组的属性:

export class Buffer {

$items: BehaviorSubject<Array<Item>>; // or <Item[]>
private _items: Array<Item>; // or Item[]

constructor(settings: Settings) {
this.$items = new BehaviorSubject([]);
}
}

typescript 编译器抛出以下错误:

error TS2322: Type 'BehaviorSubject<never[]>' is not assignable to type 'BehaviorSubject<Item[]>'

我试图阅读有关“从不”类型的内容,但我不明白为什么会出现这样的错误。另外,如果我更换 $itemsthis.$items = new BehaviorSubject(new Array()) 实例化不会有错误。但我的 IDE 在这种情况下正确地警告我:“可以简化数组实例化”。

这里有什么问题,我应该做什么?我正在使用 typescript 2.7.2。

最佳答案

您需要将类型参数显式传递给构造函数

this.$items = new BehaviorSubject<Item[]>([]);

如果编译器没有其他信息[]会被推断为never[]

关于angular - Typescript 在 BehaviorSubject 实例化期间从不键入错误(never[] 不可赋值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51947988/

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