He encontrado un problema con mecanografiado. esquemáticamente tengo:
clase abstracta padre A.
niño clase b
niño clase c
export abstract class BasePage { public value = 1; } @Component({...}) // selector, template ... export class A extends BasePage{ constructor(){} editValue(){ this.value = 3; } } @Component({...}) // selector, template ... export class B extends BasePage{ constructor(){} } <!-- B template --> <p> Parent abstract value : {{ value }}<!-- still remain 1 --> </p>En la clase principal A, tengo la propiedad "valor" que se usa en ambas clases secundarias. Pero no se actualiza en la clase B cuando ejecuto editValue() en la clase A simultáneamente.
Puede ser que la respuesta a su pregunta se encuentre en la explicación de cómo javascript entiende la subclase y la clase principal, cuando llama
editValue(){ this.value = 3; }esta función el "esto" pertenece a la clase A no a la BaseClass,
También en TS, cuando extiende una clase, necesita llamar a super() en el constructor que inicializará el value como 1, la próxima vez que llame a editValue , esencialmente está cambiando la propiedad de la clase, no la propiedad de la clase principal
mire cómo TS se convierte en JS a partir de este ejemplo del patio de recreo de TS,
aquí estás tratando con diferentes objetos