title: What is the right way for Singleton pattern in Typescript/ES6?
body: <pre><code>class Foo{
  
  }
  
  var instance: Foo;
  export function getFooInstance(){
      /* logic */
  }
  </code></pre>
  
  <p>or</p>
  
  <pre><code>export class Foo{
      private static _instance;
      private constructor(){};
      public getInstance(){/* logic */}
  }
  
  // Use it like this
  Foo.getInstance()
  </code></pre>
  
  <p>I want to make sure there is only one way instance of the object ? Any other suggestions apart from this ?</p>
  
  <p>Typescript Playground <a href="http://www.typescriptlang.org/play/#src=%20export%20class%20Foo%7B%0D%0A%20%20%20%20private%20static%20_instance%3B%0D%0A%20%20%20%20private%20constructor()%7B%7D%3B%0D%0A%20%20%20%20public%20getInstance()%20%7B%0D%0A%20%20%20%20%20%20%20%20if%20(!Foo._instance)%20Foo._instance%20%3D%20new%20Foo()%0D%0A%20%20%20%20%20%20%20%20return%20Foo._instance%3B%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A%0D%0A%0D%0Aclass%20Bar%7B%0D%0A%0D%0A%20%7D%0D%0A%0D%0Avar%20_instance%3A%20Bar%3B%0D%0A%0D%0Aexport%20function%20getBarInstance()%20%7B%0D%0A%20%20%20%20if%20(!_instance)%20_instance%20%3D%20new%20Bar()%0D%0A%20%20%20%20return%20_instance%3B%0D%0A%7D%0D%0A%0D%0A" rel="nofollow">link</a> for both: </p>