Referenciando a classe sem nome para usar métodos estáticos diferentes nas subclasses no TypeScript
No ES6, você pode fazer referência a métodos estáticos viathis.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();
}
}
Existe uma maneira de fazer isso no TypeScript? Quero poder substituir o método estático da superclasse e usá-lo da subclasse sem redefinir a referência em um método de instância. No momento, a única maneira de saber como acessar um método estático no TypeScript usa o nome da classe.
MainClass.info();
Mas se eu fizer isso, a subclasse continuará usandoMainClass.info();
ao invés de ser próprio.info()
método.