Assume I have BehaviorSubject with User interface:
interface User {
firstName: string;
lastName: string;
}
let user: User = {
firstName: 'Cuong',
lastName: 'Le',
};
let bs = new BehaviorSubject<User>(user);
There are two subsciptions, sub1
tried to change the first name. Sub2
subscribes later and user object has first name changed also as the sub1
did change it before:
let sub1 = bs.subscribe((u) => {
u.firstName = 'An';
console.log(u);
});
let sub2 = bs.subscribe((u) => {
console.log(u);
});
it's hard to debug when this case happens in big Angular application. How we make the value immutable when subscribing?
I am looking deep immutable solution to prevent code somewhere else to change the data instead of the shadow one