title: Argument of type 'Element' is not assignable to parameter of type ReactElement
body: <p>I'm learning React, and playing with the clock example. The app was created with <code>create-react-app . --template typescript</code>.</p>
  <p>I modified <code>App.tsx</code> as follow:</p>
  <pre class="lang-js prettyprint-override"><code>import React from 'react';
  import Clock from './Clock';
  
  function App() {
    return (
      &lt;div className=&quot;App&quot;&gt;
        &lt;Clock /&gt;
      &lt;/div&gt;
    );
  }
  
  export default App;
  </code></pre>
  <p>And my <code>Clock.tsx</code>:</p>
  <pre class="lang-js prettyprint-override"><code>import React from 'react';
  import ReactDOM from 'react-dom';
  
  class Clock extends React.Component {
      render() {
          return &lt;div&gt;{ new Date().toLocaleTimeString() }&lt;/div&gt;
      }
  }
  
  export default Clock;
  
  // My take on tick
  function tick(parent: React.Component) {
      const el = &lt;div&gt;{new Date().toLocaleTimeString()}&lt;/div&gt;;
      ReactDOM.render(el, parent);
  }
  </code></pre>
  <p>However, it does not compile:</p>
  <pre><code>No overload matches this call.
    The last overload gave the following error.
      Argument of type 'Element' is not assignable to parameter of type 'ReactElement&lt;any, string | ((props: any) =&gt; ReactElement&lt;any, string | ... | (new (props: any) =&gt; Component&lt;any, any, any&gt;)&gt; | null) | (new (props: any) =&gt; Component&lt;any, any, any&gt;)&gt;[]'.
        Type 'Element' is missing the following properties from type 'ReactElement&lt;any, string | ((props: any) =&gt; ReactElement&lt;any, string | ... | (new (props: any) =&gt; Component&lt;any, any, any&gt;)&gt; | null) | (new (props: any) =&gt; Component&lt;any, any, any&gt;)&gt;[]': length, pop, push, concat, and 28 more.  TS2769
  
      14 | function tick(parent: React.Component) {
      15 |     const el = &lt;div&gt;{new Date().toLocaleTimeString()}&lt;/div&gt;;
    &gt; 16 |     ReactDOM.render(el, parent);
         |                     ^
  </code></pre>
  <p>I thought it was a problem compiling <code>JSX.Element</code> to <code>ReactElement</code>. Other answers indicate that this should works fine. I remove the function out and modify the <code>index.tsx</code> to</p>
  <pre class="lang-js prettyprint-override"><code>const el = &lt;div&gt;{new Date().toLocaleTimeString()}&lt;/div&gt;;
  ReactDOM.render(el, document.getElementById('root'));
  </code></pre>
  <p>then it does compile just fine.</p>
  <p>How can I fix my function?</p>