title: Typescript inheritance where datatypes in IntelliSense is any instead of expected number
body: <p>I have a tiny code implementation in Typescript where I have a class either implementing an interface or extending a class.</p>
  
  <pre><code>interface ITest {
      run(id: number): void
  }
  
  abstract class Test implements ITest {
  
      abstract run(id);
  }
  
  class TestExtension extends Test
  {
      constructor() {
          super();
      }
  
      public run(id) { }
  }
  
  class TestImplementation implements ITest {
      constructor() {
  
      }
  
      public run(id) { }
  }
  </code></pre>
  
  <p>Both shows wrong Intellisense where I expected id to by of type 'number':</p>
  
  <pre><code>(method) TestExtension.run(id: any): void
  (method) TestImplementation.run(id: any): void
  </code></pre>
  
  <p>I can of course set method implementation to be <code>public(id: number) { }</code> but I don't see why I have to do this.</p>
  
  <p>Can someone enlighten me, please?</p>