title: Unexpected "Spread types may only be created from object types" error when using generics
body: <p>I've got this typescript class that requires a generic type to be provided on construction: </p>
  
  <pre><code>type Partial&lt;T&gt; = {
    [P in keyof T]?: T[P];
  };
  
  class Foo&lt;Bar&gt; {
    bis: Partial&lt;Bar&gt; = {}; // (1)
    constructor() {
      console.log(typeof this.bis);  // object
      this.bis = {...this.bis};  // (2) Spread types may only be created from object types
    }
  }
  </code></pre>
  
  <p>How ever, as you can see above, i don't get an error at <em>(1)</em>, but i do at <em>(2)</em>. <br>
  Why is this? And how do i fix it?</p>
  
  <p><strong>Edit1:</strong> <br>
  I've opened an <a href="https://github.com/Microsoft/TypeScript/issues/17368" rel="noreferrer">issue</a> over at the Typescript github.</p>