title: Typescript , what's the best approach for declaring a nested object with different types?
body: <p>I have this JS object and I want to port it to Typescript:</p>
  
  <pre><code>var items = [{
        style: 'activity-8',
        color: '#a32c62',
        id:    8,
        done : false,
        label : {
          short :'999 m',
          long  :'walk 999m',
          statstime  :'yesterday'
        },
        val : {
          today : {
            target   : { 
              raw : 0,
              display :"11"
            },
            achieved : {
              raw : 0,
              display :"22"
            }
          },
          yesterday : {
            target   : {
              raw : 0,
              display :"33"
            },
            achieved : {
              raw : 0,
              display :"44"
            }
          }
        }
      },{
        style: 'activity-7',
        color: '#ec575d',
        id:    7,
        done : true,
        label : {
          short :'walk 555m',
          long  :'walk 555m',
          statstime  :'yesterday'
        },
        val : {
          today : {
            target   : { 
              raw : 0,
              display :"0"
            },
            achieved : {
              raw : 0,
              display :"0"
            }
          },
          yesterday : {
            target   : {
              raw : 0,
              display :"0"
            },
            achieved : {
              raw : 0,
              display :"0"
            }
          }
        }
      }];
  </code></pre>
  
  <p>what's the best approach to declare this object type? shall I write down the types for every field? Or create a custom type? any other suggestions?</p>