title: Typescript React/Redux : Argument of type 'typeof MyClass' is not assignable to parameter of type 'ComponentType<...'
body: <p>I'm new to Redux and new to Typescript.   </p>
  
  <p>I've found a fairly good basic cut-down version of what I'm trying to do in <a href="https://github.com/reactjs/react-redux/blob/master/docs/api.md" rel="noreferrer">the react-redux docs</a>.   </p>
  
  <p>The code is like this :   </p>
  
  <pre><code>import * as actionCreators from '../actions/index'
  import { bindActionCreators } from 'redux'
  import React, { Component } from 'react'
  import { connect } from 'react-redux'
  
  class TodoApp extends Component {
      render() {
          return (&lt;div&gt;test!&lt;/div&gt;)
      }
  }
  function mapStateToProps(state) {
    return { todos: state.todos }
  }
  
  function mapDispatchToProps(dispatch) {
    return { actions: bindActionCreators(actionCreators, dispatch) }
  }
  
  
  export default connect(mapStateToProps, mapDispatchToProps)(TodoApp)
  </code></pre>
  
  <p>Both my code editor (VS Code with the TSLint extension) and <code>tsc</code> highlight that final <code>(TodoApp)</code> as an error, and this is the message I get :  </p>
  
  <blockquote>
    <p>src/components/test.tsx(20,61): error TS2345: Argument of type 'typeof
    TodoApp' is not assignable to parameter of type 'ComponentType&lt;{
    todos: any; } &amp; { actions: typeof "(filepath)...'.   Type 'typeof
    TodoApp' is not assignable to type 'StatelessComponent&lt;{ todos: any; }
    &amp; { actions: typeof "(filepath)...'.
        Type 'typeof TodoApp' provides no match for the signature '(props: { todos: any; } &amp; { actions: typeof "(filepath)/actions/index"; } &amp; {
    children?: ReactNode; }, context?: any): ReactElement | null'.</p>
    
    <p>20 export default connect(mapStateToProps,
    mapDispatchToProps)(TodoApp)</p>
  </blockquote>
  
  <p>My problem is that I don't entirely understand exactly what <code>mapStateToProps</code> and <code>connect</code> are doing, but prior to getting that understanding,<br>
   <strong>I'd like to know if there is a code change I can make here to fix this Typescript "error".</strong> </p>