title: Typescript does not infer about delete operator and spread operator?
body: <pre><code>interface Test {
      a: string;
      b: number;
      c: number;
  }
  
  const test = {
      a: 'a',
      b: 1,
      d: []
  };
  
  delete test.d;
  
  const test2:Test = { ...test, c:1 };
  =&gt; Type '{ a: string; b: number; c: number; d: never[]; }' is not assignable to type 'Test'.
  =&gt; Object literal may only specify known properties, and 'd' does not exist in type 'Test'.
  </code></pre>
  
  <p>I deleted <strong>d</strong> property by <strong>delete</strong> operator, but I got a error like that.</p>
  
  <p>Is there a way for the situation? Thanks for reading!</p>