我试图从静态方法中检索类名.它适用于普通方法,但不适用于静态方法
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"
Run Code Online (Sandbox Code Playgroud)
我忘了告诉它:它应该适用于MyNode的派生类.
我搜索了所有可能的方法,但我无法弄清楚如何组合返回类型注释和胖箭头语法.
class BasicCalculator{
value:number;
constructor(value:number=0){
this.value=value;
}
add= (operand:number)=>{ // CAVEAT how to add return type???
this.value+=operand;
return this;
}
subtract= (operand:number)=>{
this.value-=operand;
return this;
}
multiply= (operand:number)=>{
this.value*=operand;
return this;
}
divide= (operand:number)=>{
this.value/=operand;
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
我试过了:
add= (operand:number)=>number { ....
Run Code Online (Sandbox Code Playgroud)
但它不起作用.