title: How should I configure Flow type checking for functions that are passed as props in a React / Redux app?
body: <p>I'm passing my Redux action creators as props throughout my app. So far, I've just been using the generic <code>Function</code> type, but I would rather have proper type checking so that I know I'm calling my action creators with the correct arguments and types.</p>
  
  <p>I've tried using the existential operator (*) in my Props type, but it looks like Flow is unable to infer the function signature (it just returns <code>any</code>.)</p>
  
  <p>The best solution I've come up with is to import the action creator from my reducer in all of my components, and use <code>typeof</code> to set the function type. For example:</p>
  
  <pre><code>import { actionCreator } from 'redux/modules/reducer'
  
  type ComponentProps = {
      actionCreator: typeof actionCreator,
  }
  </code></pre>
  
  <p>I'm happy to do this once in my main container, but this gets very repetitive if I have to recursively add all of these type definitions in all of my child components.</p>
  
  <p>I'm wondering why the following isn't working in my child components:</p>
  
  <pre><code>type ComponentProps = {
      actionCreator: *,
  }
  </code></pre>
  
  <p>I would like the function type to automatically flow down through my props, but it seems like there is a boundary between React components.</p>