class SingletonBaseClass { static singleton: SingletonBaseClass | null = null; static instance() { if (!this.singleton) { this.singleton = new this(); } return this.singleton; } static destroy() { this.singleton = null; } } class Demo extends SingletonBaseClass { hello() { } } Demo.instance().hello(); Arriba está el código, Demo.instance() se considerará una instancia de SingletonBaseClass en lugar de Demo , por lo que Demo.instance().hello() informará un error de TypeScript.
¿Hay alguna forma de hacer que el tipo de retorno de Demo.instance() sea SingletonBaseClass ?
podrías lanzarlo:
(Demo.instance() as Demo).hello();