Если вы собираетесь использовать свойства (как вы определяете с помощью get
/ set
), тогда вам просто нужно назначить свойство, когда вы хотите установить его, вызов установщика произойдет автоматически.
this.sidebarService.sidebarStatus.pipe(
concatMap((bool: boolean) => this.sidebarService.updateStatus = bool)
);
Ошибка, которую вы получаете, состоит в том, что компилятор обрабатывает this.sidebarService.updateStatus
как логическое поле (как и должно быть, get / set является деталью реализации, свойства ведут себя так же, как синтаксически, как любое поле) итаким образом, вы не можете вызвать логическое значение.
Вы также можете отбросить set
, а затем вы можете вызвать updateStatus
, как вы пытаетесь это сделать, поскольку это будет обычный метод, а не метод установки свойств:
public updateStatus(bool: boolean) {
this._sidebarStatus.next(bool);
}
this.sidebarService.sidebarStatus.pipe(
concatMap((bool: boolean) => this.sidebarService.updateStatus(bool)) // ok now
);
Подробнее о средствах доступа к собственности вы можете узнать здесь под заголовком Средства доступа