title: Generic type 'ReturnType' requires 1 type argument(s).ts(2314)
body: <p>I have recently moved from Flow to Typescript and in converting some of the codebase I am been coming into several errors, most is documented or replaced by the Utility-Types package, however I cannot find documentation or answers that help me with the below code.</p>
  
  <pre><code>const toObject = (keys: { reduce: (arg0: (object: any, key: any) =&gt; any, arg1: {}) =&gt; void }) =&gt;
    keys.reduce((object: any, key: string | number) =&gt; {
      const o = object;
      o[key] = undefined;
  
      return object;
    }, {});
  
  
  
  export type Pick&lt;
    Origin extends Record&lt;string, any&gt;,
    Keys extends ReadonlyArray&lt;keyof Origin&gt;
  &gt; = $ObjMapi&lt;ReturnType&lt;typeof toObject, Keys&gt;, &lt;Key&gt;(k: Key) =&gt; $ElementType&lt;Origin, Key&gt;&gt;;
  
  export type TypeOrVoid = &lt;T&gt;(arg0: T) =&gt; T | void;
  
  export type Diffable&lt;O extends {}&gt; = $ObjMap&lt;O, TypeOrVoid&gt;;
  </code></pre>
  
  <p>More specifically, the error of <code>Generic type 'ReturnType' requires 1 type argument(s).ts(2314)
  </code> on <code>ReturnType&lt;typeof toObject, Keys&gt;</code></p>
  
  <p>How can I reduce to 1 type argument whilst retaining the same function? There doesn't appear to be a replacement for Flow <code>$Call</code>.</p>