title: Flow don't understand proptypes
body: <p>Look at this class:</p>
  
  <pre><code>/* @flow */
  import React, { PureComponent } from 'react';
  import PropTypes from 'prop-types';
  import { connect } from 'react-redux';
  
  const mapStateToProps = (state) =&gt; ({
      email: ...
  });
  
  @connect(mapStateToProps)
  class UserControlPanel extends PureComponent {
      static propTypes = {
          email: PropTypes.string
      }
      logout = (ev:any) =&gt; {
          ev.preventDefault();
  
          ...
      }
      render() {
          const { email } = this.props;
  
          return (
              &lt;div className="ucp"&gt;
                  ...
              &lt;/div&gt;
          );
      }
  }
  
  export default UserControlPanel;
  </code></pre>
  
  <p>It's simple React Component class that accepts single string prop named email. But when I run flow, it gives me this error:</p>
  
  <blockquote>
    <p>[flow] property <code>email</code> (Property not found in props of React element <code>UserControlPanel</code> See also: React element <code>UserControlPanel</code>)</p>
  </blockquote>
  
  <p>What am I wrong? I also tried this:</p>
  
  <pre><code>type Props = {
      email: string;
  };
  
  @connect(mapStateToProps)
  class UserControlPanel extends PureComponent {
      props:Props
      static propTypes = {
          email: PropTypes.string
      }
  </code></pre>
  
  <p>Or this:</p>
  
  <pre><code>type Props = {
      email: string;
  };
  
  @connect(mapStateToProps)
  class UserControlPanel extends PureComponent&lt;Props&gt; {
      static propTypes = {
          email: PropTypes.string
      }
  </code></pre>
  
  <p>Both won't worked. Using just Component instead of PureComponent doesn't worked either.</p>
  
  <p>How do I make flow understand my prop types and no more error message?</p>