javascript - Recuperar nome da classe de dentro de um método estático em typescript
Estou tentando recuperar o nome da classe de dentro de um método estático. Funciona a partir de um método comum, mas não de dentro de um método estático
class MyNode{
constructor(){
var classname=this.constructor.toString().split ('(' || /s+/)[0].split (' ' || /s+/)[1];
console.log(classname);
}
static a_static_method(){
var classname=this.constructor.toString().split ('(' || /s+/)[0].split (' ' || /s+/)[1];
console.log(classname);
}
}
var obj=new MyNode(); // THIS WORKS, prints "MyNode"
MyNode.a_static_method(); // THIS DOESN'T, prints "Function"
Esqueci de dizer: deve funcionar para as classes derivadas de MyNode.
Resposta #1
Agora você pode simplesmente usar this.name
Resposta #2
Por favor, verifique a seguinte solução:
class MyNode{
constructor(){
var classname=this.constructor.toString().split ('(' || /s+/)[0].split (' ' || /s+/)[1];
console.log(classname);
}
static a_static_method(){
var classname = this.toString().split ('(' || /s+/)[0].split (' ' || /s+/)[1];
console.log(classname);
}
}
Na classe derivada, você obterá o nome dessa classe, não MyNode
