title: What's the difference between "declare class" and "interface" in TypeScript
body: <p>In TypeScript, when creating .d.ts source declaration files, which is preferable and why?</p>
  
  <pre><code>declare class Example {
      public Method(): void; 
  }
  </code></pre>
  
  <p>or</p>
  
  <pre><code>interface Example {
      Method(): void;
  }
  </code></pre>
  
  <p>The differences that I can tell are that interfaces can't have static methods, so you must use a class for that. Both don't product any JS output, so perhaps it doesn't matter?</p>