title: Typescript overriding abstract method which is void return
body: <pre><code>abstract class Base{
      abstract sayHello(): void;
  }
  
  class Child extends Base{
      sayHello() {
          return 123;
      }
  }
  </code></pre>
  
  <p>Abstract method's return type is <strong>void</strong> but I can implement it with a number type return.
  I did not take any error from compiler. Is this kind of bug in Typescript?</p>
  
  <p><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html#void" rel="nofollow noreferrer">TS Spec</a></p>
  
  <blockquote>
    <p>The Void type, referenced by the void keyword, represents the absence
    of a value and is used as the return type of functions with no return
    value.</p>
  </blockquote>