title: How to reference type of self in Typescript interface (for a IClonable interface)
body: <p>I need an <code>IClonable</code> interface that defines a <code>clone()</code> member, that returns an instance of the class that implemented it.</p>
  
  <p>If possible, how can I indicate that the return type of <code>clone()</code> will be the same as the class it is called on?</p>
  
  <pre><code>interface IClonable {
      clone(): ???
  }
  </code></pre>
  
  <p>I know I can do this with generics like below, but that seems overly verbose</p>
  
  <pre><code>interface IClonable&lt;T&gt; {
      clone(): T
  }
  </code></pre>