type parameter `U` of call of method `then`. Missing annotation : <p>I have an object which might contain a promise property declared thus:</p>

<pre><code>type PromiseAction = {
  +type: string,
  promise: ?Promise&lt;any&gt;,
};
</code></pre>

<p>The <code>action</code> argument to a function is declared to be of type PromiseAction:</p>

<pre><code>(action: PromiseAction) =&gt;
</code></pre>

<p>Later on I check whether the received <code>action</code> object does have a <code>promise</code> property and if <code>action.promise</code> has a <code>then</code>:</p>

<pre><code>if (action.promise &amp;&amp; typeof action.promise.then === 'function') {
</code></pre>

<p>If it does then I hook onto the promise chain:</p>

<pre><code>return promise.then(
</code></pre>

<p>At which point I get the error: "type parameter <code>U</code> of call of method <code>then</code>. Missing annotation"</p>

<p>I can see in the <a href="https://github.com/facebook/flow/blob/v0.56.0/lib/core.js#L600" rel="noreferrer">source for flow</a> that the <code>then</code> property of a <code>Promise</code> has a <code>U</code> parameter which, I assume, is the one being asked for.</p>

<p>How can an provide that <code>U</code> annotation if I only have only one parameter <code>Promise&lt;+R&gt;</code> in the type declaration?</p>
