title: Typescript abstract optional method
body: <p>I have an abstract class with some abstract methods. Is there a way to mark some of these methods as optional?</p>
  
  <pre><code>abstract class Test {
      protected abstract optionalMethod?(): JSX.Element[];
      protected abstract requiredMethod(): string;
  }
  </code></pre>
  
  <p>For some reasons I can add the <code>?</code> as a suffix but it seems like it does nothing at all because I have to still implement the method in the derived class. For now I am using it like this to mark it that it can return <code>null</code> which is basically the poor mans optional.</p>
  
  <pre><code>protected abstract optionalMethod?(): JSX.Element[] | null;
  </code></pre>