请教TypeScript的单例写法

如题。然后为了可复用,有哪些形式的改写?比如包括但不限于泛型单例或单例装饰器,请赐教,也可以表达一下可行或不可行的原因。谢谢各位!

我是使用代码片段 ts是伪泛型

这种方式只是在编写代码时以类似代码提示的方式复制并粘贴一份指定代码段,然后还是要按需修改吧?


可以参考下, 是不是你要的!

谢谢!只是感觉该帖中提供的对单例的约束都不够严谨,比如单例特点之一:构造函数私有化。

export default function Singleton() {
class SingletonT {

    protected constructor() { }

    private static _inst: SingletonT = null;

    public static get Inst(): T {

        if (SingletonT._inst === null) {

            SingletonT._inst = new this();

        }

        return SingletonT._inst as T;

    }

}

return SingletonT;

}

import { _decorator, Component, Node } from “cc”;

import Singleton from “./Singleton”;

const { ccclass, property } = _decorator;

@ccclass(‘GameMgr’)
export default class GameMgr extends Singleton() {
public init() {}
}

GameMgr.Inst.init();

这例子中的构造函数没有私有化,类外还是能通过该类构造器new出该类新对象