dhi*_*ilt 3 rxjs typescript angular
在我的Angular项目中,我试图BehaviorSubject用一个空数组初始化属性:
export class Buffer {
$items: BehaviorSubject<Array<Item>>; // or <Item[]>
private _items: Array<Item>; // or Item[]
constructor(settings: Settings) {
this.$items = new BehaviorSubject([]);
}
}
Run Code Online (Sandbox Code Playgroud)
打字稿编译器抛出以下错误:
错误TS2322:类型'
BehaviorSubject<never[]>'不能分配给类型'BehaviorSubject<Item[]>'
我尝试阅读有关“从不”类型的信息,但我不明白为什么会收到这样的错误。另外,如果我将$items实例化替换为,this.$items = new BehaviorSubject(new Array())则不会有错误。但是在这种情况下,我的IDE会警告我:“可以简化数组实例化”。
有什么问题,我应该在这里做什么?我正在使用打字稿2.7.2。
您需要将类型参数显式传递给构造函数
this.$items = new BehaviorSubject<Item[]>([]);
Run Code Online (Sandbox Code Playgroud)
如果编译器没有其他信息,[]则将推断为never[]
| 归档时间: |
|
| 查看次数: |
237 次 |
| 最近记录: |