title: Does Spreading create shallow copy?
body: <p>As per the example given <a href="https://www.typescriptlang.org/docs/handbook/variable-declarations.html" rel="nofollow noreferrer">here</a>,</p>
  
  <pre><code>let first:number[] = [1, 2];
  let second:number[] = [3, 4];
  
  let both_plus:number[] = [0, ...first, ...second, 5];
  console.log(`both_plus is ${both_plus}`);
  first[0] = 20;
  console.log(`first is ${first}`);
  console.log(`both_plus is ${both_plus}`);
  both_plus[1]=30;
  console.log(`first is ${first}`);
  console.log(`both_plus is ${both_plus}`);
  </code></pre>
  
  <p>Spreading shows a deep copy, because all three array's have it's own duplicates, based on below output:</p>
  
  <pre><code>both_plus is 0,1,2,3,4,5
  first is 20,2
  both_plus is 0,1,2,3,4,5
  first is 20,2
  both_plus is 0,30,2,3,4,5
  </code></pre>
  
  <p><a href="https://www.typescriptlang.org/docs/handbook/variable-declarations.html" rel="nofollow noreferrer">Documentation</a> says: <em>Spreading creates a shallow copy of <code>first</code> and <code>second</code></em>. How do I understand this?</p>