title: Object property with ellepsis instead of a dot: Object = { ...Object }
body: <p>In an angular 4 project, there is this line of code <code>this.config = { ...this.config }</code>. After some checking, it seems that it did not change <code>this.config</code>. But removing that line, breaks the change detection for <code>this.config</code>.</p>
  
  <p>Here is the component that is using the object</p>
  
  <p><code>&lt;dp-date-picker config="config"&gt; &lt;/dp-date-picker&gt;</code></p>
  
  <p>This is the only function that modifies <code>this.object</code></p>
  
  <pre><code>  private updateConfig(value, key) {
     if (!this.config) {
        this.config = {};
     }
     this.config[key] = value;
     this.config = { ...this.config }; // why does this work?
    }
  </code></pre>
  
  <p>Can anybody explain what <code>this.config = { ...this.config }</code> does?</p>