title: Error:(19, 35) TS2304: Cannot find name 'T'. Why I can't extend interface in TS?
body: <p>I want to extend an interface for React props. But I get TS error <strong>Error:(19, 35) TS2304: Cannot find name 'T'.</strong></p>
  
  <p>1) Why error? <code>&lt;T&gt;</code> is generic type. It can't be declared before usage.</p>
  
  <p>2) Why TS throws error in my code but doesn't throw for <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react/index.d.ts" rel="noreferrer">DefinitelyTyped React types definitions here</a>. Generic types <code>&lt;T&gt;</code> and many others are used everywhere in their code. Why they do not throw?</p>
  
  <p>3) How to extend it the right way?</p>
  
  <p>Here is my code. </p>
  
  <p>I import <strong>interface Props</strong> from <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react/index.d.ts#L1226" rel="noreferrer">DefinitelyTyped for React</a>:</p>
  
  <pre class="lang-js prettyprint-override"><code>import React, {Props, PureComponent} from 'react';
  
  // TS throws Error:(20, 27) TS2304: Cannot find name 'T'.
  interface IHomeProps extends Props&lt;T&gt; { }
  
  class Home extends PureComponent&lt;IHomeProps&gt; {
    render() {
      ...
    }
  }
  
  // interface Props definition
      interface Props&lt;T&gt; {
          children?: ReactNode;
          key?: Key;
          ref?: LegacyRef&lt;T&gt;;
      }
  </code></pre>