title: Copy object excepting some fields
body: <p>I have two interfaces:</p>
  <pre><code>public interface ObjectOne {
     field1: string;
     field2: string;
     field3: string;
     field4: string;
     field5: string;
     ...
  }
  
  public interface ObjectTwo {   
     field2: string;
     field5: string;
     field8: string;
     ...
  }
  </code></pre>
  <p>Lets imaginate that <code>ObjectOne</code> have 20 fields and <code>ObjectTwo</code> have 10 fields (all are part of <code>ObjectOne</code>).</p>
  <p>In the final of an action, I want to assign the fields of <code>ObjectOne</code> to <code>ObjectTwo</code> (or copy them) avoiding to map each field as:</p>
  <pre><code>objTwo.field2 = objOne.field2;
  objTwo.field5 = objOne.field5;
  objTwo.field8 = objOne.field8;
  ...
  </code></pre>
  <p>I know I can destructure <code>ObjectOne</code> as:</p>
  <pre><code>const {field2, field5, field8, fieldX, ...} = objOne;
  </code></pre>
  <p>and then assign all these fields to <code>objTwo</code> as:</p>
  <pre><code>objTwo = {field5, field8, fieldX, ...};
  </code></pre>
  <p>but I hoped that here exists a better solution (as an inverse of <code>spread operator</code>). Spread operator example:</p>
  <pre><code>const objOne = {...objTwo, field1, field3, field4, field6, ...};
  </code></pre>
  <p>If I use spread operator for objTwo, this will inherit all the objOne fields, even if I declare the object type.</p>