假设我有一个模型用户。
我想创建一个用户类型的BehaviorSubject,如下所示:
private userSource = new BehaviorSubject<User>({});使用此语句,我将得到以下错误:
Argument of type '{}' is not assignable to parameter of type 'User'有人能帮我定义一个用户类型的BehaviorSubject吗?
发布于 2019-04-05 12:09:03
您需要传递User类型。{}是一个初始值,它不遵循User的模式/类型。
在这种情况下,要传递一个空值,请使用null ( {}除外)。
发布于 2019-04-05 12:08:59
这是因为{}是一个不具有与User相同的属性的对象(实际上它是一个空对象)。
您可以通过将{}转换为any传递此消息。
new BehaviorSubject<User>({} as any);发布于 2019-04-05 12:06:57
使用new BehaviorSubject<User>({}),您已经为BehaviorSubject传递了一个初始值。因为{}没有类型检测,所以会出现错误。
您需要传递一个User类型。在{}中为该类型提供属性,如
private userSource = new BehaviorSubject<User>({ /* properties */ });如果你不需要初始值。您可以使用ReplaySubject将重放计数设置为1。
new ReplaySubject<User>(1)这将提供没有初始值的相同功能。
https://stackoverflow.com/questions/55534958
复制相似问题