Hacer referencia a una clase sin nombre para usar un método estático diferente en subclases en TypeScript
En ES6, puede hacer referencia a métodos estáticos a través dethis.constructor
:
class MainClass {
static info() {
return "This is some information";
}
constructor() {
this.info = this.constructor.info(); // Allows subclass to define different '.info()' method.
}
}
class ChildClass extends MainClass {
static info() {
return "This information is from the child";
}
constructor() {
super();
}
}
¿Hay alguna manera de hacer esto en TypeScript? Quiero poder anular el método estático de la superclase y usarlo desde la subclase sin redefinir la referencia en un método de instancia. En este momento, la única forma en que sé cómo acceder a un método estático en TypeScript utiliza el nombre de la clase.
MainClass.info();
Pero si hago eso, la subclase continuará usandoMainClass.info();
en lugar de ser propio.info()
método.