title: supporting static and non-static methods in interface typescript
body: <p>so apparently (i'm beginner) ts doesn't support static methods in the interface however there is a workaround explained it <a href="https://stackoverflow.com/a/43674389/3035659">Val's</a> answer. it works when your class has only static methods. but if my class is a combination of static and non-satic methods this will throw an error:</p>
  
  <pre><code>Class 'MyClass' incorrectly implements interface 'sampleInterface'.
    Property 'staticFunction' is missing in type 'MyClass' but required in type 'sampleInterface'
  </code></pre>
  
  <p>any idea how to support this?</p>
  
  <pre><code>export function staticDecorator&lt;T&gt;() {
      return (constructor: T) =&gt; {};
  }
  
  interface sampleInterface {
     staticFynction(/*something*/): promise&lt;void&gt;;
     nonStaticFynction(/*something*/): promise&lt;void&gt;;
  }
  
  @staticDecorator()
  class MyClass implements sampleInterface  {
      public static staticFynction(/*something*/): promise&lt;void&gt;{
        //something
      }
      public nonStaticFynction(/*something*/): promise&lt;void&gt;{
        //something
      }
  }
  </code></pre>