title: TypeScript: assigning `Pick<T, K>` to `Partial<T>`
body: <p>In the following example, I can't think of any situation where assigning <code>Pick&lt;Object, Key&gt;</code> to <code>Partial&lt;Object&gt;</code> would not be sound, therefore I would expect this to be allowed.</p>
  
  <p>Can anyone clarify why it is not allowed?</p>
  
  <pre><code>const fn = &lt;T, K extends keyof T&gt;(partial: Partial&lt;T&gt;, picked: Pick&lt;T, K&gt;) =&gt; {
      /*
      Type 'Pick&lt;T, K&gt;' is not assignable to type 'Partial&lt;T&gt;'.
          Type 'keyof T' is not assignable to type 'K'.
              'keyof T' is assignable to the constraint of type 'K', but 'K' could be instantiated with a different subtype of constraint 'string | number | symbol'.
      */
      partial = picked;
  };
  </code></pre>
  
  <p><a href="https://www.typescriptlang.org/play/index.html#code/MYewdgzgLgBAZmGBeGAeAKgGhgaRgUwA8p8wATCGAa3wE8Q4Z0A+ACgAcBDAJygEtOAGwBcMAAo9+QjM2zs+wGmVFiFVDNhzMAlMmYwA3gCgYpmAHoAVCbPpa7fDADkqxRtzMnMPpTAhYnBAQfADmYJwARoKOUCAwUPaOLpICgjJOAHQ2ZraJzjT0jOhePjB+AUGh4VExcQkOzjiZ2TmtTgUMTCWUgcFhkdHxdQAWjqCQUNycfGCwnfVJTdgRAK6wTk0woCuCZDARjjPQnLMCJHsA7nxQwzCcMGR8cHD43KSwECsRCzCd49BTGbrAEzEIwAA+ZRWAFsDtwITAILRYSBBM0cpZzC0uLxUsgYPJFPgyABuIwAXxJQA" rel="nofollow noreferrer">TypeScript playground example</a></p>