title: Typescript: Infer type of the implementing class of an interface in the interface
body: <p>So I'm trying to write this interface that each object that will be cached into redis in my application will have to implement.</p>
  <p>To use it right now you'd write something like this:</p>
  <pre><code>class Base implements Cacheable&lt;[number], Base&gt; {
      ...
  }
  </code></pre>
  <p>but is there any way to from the interface infer the type of Base from the implementing class so that it could look like this instead with typescript:</p>
  <pre><code>class Base implements Cacheable&lt;[number]&gt; {
       ...
  }
  </code></pre>