¿Hay alguna diferencia entre los siguientes enfoques? Me gusta el segundo enfoque porque es más claro, pero también veo el Enfoque 1 en Internet. Entonces me pregunto si hay algún beneficio de un enfoque sobre otro.
Singleton.ts
class Singleton { private static _instance: Singleton | null = null private constructor() {} public static getInstance() { if (!Singleton._instance) { Singleton._instance = new Singleton() } return Singleton._instance } public doSomeWork() {} } export default Singletonprueba1.ts
import Singleton from './Singleton' Singleton.getInstance().doSomeWork()prueba2.ts
import Singleton from './Singleton' Singleton.getInstance().doSomeWork()Singleton.ts
class Singleton { constructor() { } public doSomeWork() {} } export default new Singleton()prueba1.ts
import singleton from './Singleton' singleton.doSomeWork()prueba2.ts
import singleton from './Singleton' singleton.doSomeWork()El segundo es preferible, creo. El primero en realidad permite instanciar varias veces.