kingBook

导航

TypeScript 获取类名

console.log(this.constructor.name);

// 第三方类
console.log(StateDefault.prototype.constructor.name);

使用泛型时,获取泛型类名:

export class Test {

    constructor() {
        this.getState(StateDefault);
    }
    
    public getState<T extends State>(t: {new(): T; }):void{
        // 不会调用 StateDefault 类的构造函数
        console.log(t.prototype.constructor.name); // output: StateDefault
    }
    
     // 第二种写法
     /*public getState<T extends State>(t: new() => T):void{
        // 不会调用 StateDefault 类的构造函数
        console.log(t.prototype.constructor.name); // output: StateDefault
    }*/
}

posted on 2020-07-20 10:26  kingBook  阅读(1311)  评论(0编辑  收藏  举报