Programadores => General Programadores => Mensaje iniciado por: J_F_NASH en 20 de Febrero de 2021, 10:31:16 pm

Título: Esto es posible? (Typescript)
Publicado por: J_F_NASH en 20 de Febrero de 2021, 10:31:16 pm
class  Tabla{
    static mensaje:string = 'hola 1';
    static muestraMensaje:() => void;
};
const tablero = new Tabla();

// Quiero definir el método fuera de la clase (no quiero que con el tiempo mi clase llegue a parecerse a una vaca preñada)
Tabla.muestraMensaje = function(){
    console.log(this.mensaje);
}
Tabla.muestraMensaje() // salida: 'hola 1' (hasta aqui es correcto)

// El problema lo tengo con los objetos. Por ejemplo:
tablero.mensaje = 'hola 2' // error porque 'mensaje' es static!
// Luego quiero ver el nuevo mensaje enviado a tablero
tablero.muestraMensaje(); // error pues el metodo es static!

// Cual es el metodo de trabajo para poder hacer esto?
Título: Re:Esto es posible? (Typescript)
Publicado por: J_F_NASH en 21 de Febrero de 2021, 03:43:43 pm
Solución:
Código: [Seleccionar]
class  Tabla{
    visible:boolean;
    constructor(visible:boolean){
        this.visible = visible;
    }
    muestra() {}
};

Tabla.prototype.muestra = function(){
    Tabla.prototype.visible = false;
    console.log(this.visible);
}
const tablero = new Tabla(true);

Tabla.prototype.muestra();
tablero.muestra();
[code]