title: Typescript abstract class static method not enforced
body: <p>I have this simple code in TypeScript:</p>
  
  <pre><code>abstract class Config {
      readonly NAME: string;
      readonly TITLE: string;
  
      static CoreInterface: () =&gt; any
  }
  
  class Test implements Config {
      readonly NAME: string;
      readonly TITLE: string;
  }
  </code></pre>
  
  <p>Even though the <em>CoreInterface()</em> member is missing in the <em>Test</em> class, TypeScript does not complain. Why is this? </p>
  
  <p>I need every derived class to provide some metadata about itself in the <em>CoreInterface()</em> static function. I know I could just extend the Config class and have each sub-class provide its own implementation of <em>CoreInterface()</em>, but I do not want sub-classes to automatically inherit any of the members of the COnfig class. That is why I use "implements" instead of "extends" </p>