JavaScript - Es posible hacer esto? (Typescript)

 
Vista:

Es posible hacer esto? (Typescript)

Publicado por storko (3 intervenciones) el 20/02/2021 23:04:28
1) Definir el método llamado "nano" desde FUERA de la clase
2) Poder acceder a ella desde Tabla.nano() y el objeto el fido.nano()
1
2
3
4
5
6
7
8
9
10
11
12
13
class  Tabla{
    visible:boolean = false;
    nano() {}
};
 
Tabla.nano = function(){     // Error pues nano no es static
    // Aqui desarrollo la funcion
}
 
const fido = new Tabla()
 
Tabla.nano()    // Error pues nano no es static
fido.nano()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de kip
Val: 553
Bronce
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Es posible hacer esto? (Typescript)

Publicado por kip (107 intervenciones) el 21/02/2021 00:38:30
Te refieres a esto?

1
2
3
4
5
6
7
8
9
10
11
12
13
class  Tabla{
    visible:boolean = false;
 
    static nano() { return 'hello'}
 
    nano() { return Tabla.nano() + '1' }
};
 
const fido = new Tabla()
 
console.log(Tabla.nano())
 
console.log(fido.nano())
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Es posible hacer esto? (Typescript)

Publicado por storko (3 intervenciones) el 21/02/2021 08:39:26
Emmm... me explico mejor:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Es posible hacer esto? (Typescript)

Publicado por storko (3 intervenciones) el 21/02/2021 15:42:25
Solución:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar