title: 'extends' from TypeScript does not the same job as constraint on generics in C#
body: <p>on "this" in the following TypeScript code I get the following error: </p>
  
  <p>Argument of type 'this' is not assignable to parameter of type 'T'.
    Type 'MyClass' is not assignable to type 'T'.ts(2345)</p>
  
  <p>written in TypeScript 3.2.2 (in Angular 7)</p>
  
  <pre><code>export abstract class MyClass&lt;T extends MyClass&lt;T&gt;&gt; {
  
      childList: T[];
  
      foo = () =&gt; {
              const index = this.childList.indexOf(this);
              // ...
      }
  }
  </code></pre>
  
  <p>This is how I would write it in C#: </p>
  
  <pre><code>public abstract class MyClass&lt;T&gt; where T : MyClass&lt;T&gt;
  {
      public T[] childList { get; set; }
  
      public void foo()
      {
          int index = Array.IndexOf(childList, this);
      }
  }
  </code></pre>
  
  <p>Thanks a lot for any feedback !</p>