The Singleton in TypeScript: From Beginner to Expert