巴拉巴拉
小魔仙

typescirpt 单例模板基类

class Singleton{
    static getInstance<T extends {}>(this: new () => T): T {
        if(!(<any>this).instance){
            (<any>this).instance = new this();
        }
        return (<any>this).instance;
    }
}

class Bar extends Singleton {
    desc: string;
    public print(){
        Log.log(this.desc);
    }
}

Bar.getInstance().desc = "single";
Bar.getInstance().print();
Bar.getInstance().print();

含有隐式传参this:new()=>T的一个操作
这样可以执行new this()的操作
(<any>this).instance表示Singletoninstance

赞(1) 打赏
如果文章对你有帮助,欢迎你来评价反馈。AgainFly » typescirpt 单例模板基类

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  • Q Q(选填)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏