我正在尝试使用 Angular2 中的行为主体和可观察对象在一个数组中传递 3 个参数。
BehaviorSubject<Array<Something1>, Array<Something2>, Array<Something3>>
这似乎不起作用,因为行为主体只支持一个参数。有什么建议么?
我正在尝试使用 Angular2 中的行为主体和可观察对象在一个数组中传递 3 个参数。
BehaviorSubject<Array<Something1>, Array<Something2>, Array<Something3>>
这似乎不起作用,因为行为主体只支持一个参数。有什么建议么?
您可以传递一个数组数组。只需用 [] 包围它;
BehaviorSubject<[Array<Something1>, Array<Something2>, Array<Something3>]>
当你这样写时:
BehaviorSubject<Array<Something1>, Array<Something2>, Array<Something3>>
你没有传递任何参数。您只是指定此主题将发出什么类型。要指定它可以生成三种不同类型的项目,请使用联合类型|
的运算符:
class T1 {}
class T2 {}
class T3 {}
const o = [new T1()];
const s = new BehaviorSubject<Array<T1> | Array<T2> | Array<T3>>(o);
此外,BehaviorSubject
取一个值。这是文档中的描述:
Subjects 的变体之一是 BehaviorSubject,它具有“当前值”的概念。它存储发送给其消费者的最新值,并且每当有新的观察者订阅时,它将立即从 BehaviorSubject 接收“当前值”。
因此,当您实例化 a 时,BehaviorSubject
您必须传递那个“当前”值。这就是为什么只需要一个参数的原因,因为只有一个“当前”值。并且此值可以是您<...>
在实例化主题时指定的任何类型。