Допустим, у меня есть служба, в Angular которой есть тема.Я реализую метод updateSubject
, который будет использовать .next()
по этому вопросу.Идея состоит в том, чтобы использовать метод этого сервиса в других компонентах.
interface MyInterface {
name: string;
age: number;
}
export class myService {
private mySubject: BehaviorSubject<MyInterface >;
updateSubject(newData) {
this.mySubject.next({...this.mySubject.value, newData);
}
}
export class myComponent {
constructor(private myService: myService){}
update() {
this.myService.updateSubject({age:30});
}
}
Дело в том, что я не могу так поступить, поскольку tslint скажет мне Argument of type {newData: any, name: string, age: number} is not assignable to parameter of type 'MyInterface '
.Что имеет смысл, потому что оно добавит новое свойство к субъекту вместо того, чтобы заменить существующее.
Как я могу продолжить корректно обновлять тему при соблюдении неизменности?
Спасибо