title: TypeScript type arguments in JSX nodes
body: <p>Is there any way to specify type arguments for components rendered in JSX? </p>
  
  <p>For example, consider this component:</p>
  
  <pre><code>interface SelectorProps&lt;T&gt; {
      selection: T;
      options: T[];
  }
  
  class Selector&lt;T&gt; extends React.Component&lt;SelectorProps&lt;T&gt;, {}&gt; {
      // ...
  }
  </code></pre>
  
  <p>If I try to render this component in JSX:</p>
  
  <pre><code>&lt;Selector selection="a" options={["a", "b", "c"]} /&gt;
  </code></pre>
  
  <p>I get these errors:</p>
  
  <blockquote>
    <p>TS2322: Type 'string' is not assignable to type 'T'. </p>
    
    <p>TS2322: Type 'string[]' is not assignable to type 'T[]'.  Type 'string' is not
    assignable to type 'T'.</p>
  </blockquote>
  
  <p>I would expect <code>T</code> to be inferred as <code>string</code> or else some way to specify <code>T=string</code> in <code>&lt;Selector&gt;</code>. Is there a solution?</p>
  
  <p>The only workaround I have found is to extend the component to eliminate all type arguments:</p>
  
  <pre><code>class StringSelector extends Selector&lt;string&gt; { }
  </code></pre>