title: Typescript Namespacing
body: <p>I am writing a typescript library where I would like to implement my own <code>Gamepad</code> class. This does not extend the existing HTML5 <code>Gamepad</code> class but I don't want to override the original one either.</p>
  
  <p>How do I utilize some sort of namespace in typescript so:</p>
  
  <ul>
  <li>Consumers can call Library.Gamepad to get my gamepad class.</li>
  <li>I can still get the original <code>Gamepad</code> class when writing my library.</li>
  </ul>
  
  <p>For the second point, I know I can use aliases when importing, but how to I access the original <code>Gamepad</code> class when writing my own:</p>
  
  <pre class="lang-js prettyprint-override"><code>export default class Gamepad {
    nativePad: Gamepad | null = null; // I would like this to reference the native Gamepad typing
  
    constructor() {}
  }
  </code></pre>
  
  <p>Basically, I want to a way to work around using a name like <code>MyGamepad</code> to avoid the conflict.</p>