title: Child model getter and setter are not working in angular 2/4
body: <p>I have a situation where I have defined three model classes as below</p>
  
  <pre><code>export class Parent 
  {
      name: string;
      containers: Container[];  
  }
  
  export class Container
  {
      desc: string;
      sets: Sets[];  
  }
  
  
  export class Sets
  {
      private _data?: any[];
      private _dataSet?: any[];
  
      get data() 
      {
          if (this.dataSet &amp;&amp; this.dataSet.length &gt; 0) 
          {
              return this._dataSet[0].data;
          }
          return this._data;
      }
  
      set data(data: any[]) 
      {
          this._data = data;
      }
  
      get dataSet() 
      {
          return this._dataSet;
      }
  
      set dataSet(dataSet: any[]) 
      {
          this._dataSet = dataSet;
      }
  }
  </code></pre>
  
  <p>The problem is: the <code>getter</code> and <code>setter</code> method of <code>Set</code> class wouldn't get triggered unless I do <code>new Set()</code> explicitly (I don't know if the <code>new Set()</code> this is really necessary). </p>
  
  <p>For example:</p>
  
  <pre><code>"name": "vik",
  "containers": [
  {
      "desc": "something",
      "sets": [
      {
          "dataSet": [
          {
              "data":[
              {
                  // Object
              }]
          }]
      }]
  }]
  </code></pre>
  
  <p>When i do:</p>
  
  <pre><code>let response:Parent = responseObj;
  console.log(response.containers[0].sets[0].data)
  </code></pre>
  
  <p>it should return the DataSet <code>value</code>, but instead it returns <code>undefined</code>. </p>
  
  <p>But if i do:</p>
  
  <pre><code>let response:Parent = responseObj;
  console.log(new Sets(response.containers[0].sets[0]).data)
  </code></pre>
  
  <p>returns me the correct value. </p>
  
  <p><strong>Did I miss something or how could I improve my code so it works?</strong></p>