title: Getting "Property X is missing in type error" in Angular 2
body: <p>Getting </p>
  
  <pre><code>Property 'conf' is missing in type '{ text: string; label: string; }'.
  </code></pre>
  
  <p>from this object: </p>
  
  <pre class="lang-ts prettyprint-override"><code>{
    //...
    digitalSkills: {
      skills: [
        {
          name: '...',
          tooltip: {
            text: '...',
            label: '...'
          }
        },
        {
          name: '...',
          tooltip: {
            text: '...',
            label: '...'
          }
        }
      ],
       //...
    }
    //...
  }
  </code></pre>
  
  <p>from this setup:</p>
  
  <pre class="lang-ts prettyprint-override"><code>export interface TooltipConfig {
    text:string;
    label:string;
    conf?:string;
  }
  
  export class Tooltip implements TooltipConfig {
    text:string;
    label:string;
    conf:(any);
  
    constructor(c:TooltipConfig) {
      this.text = c.text;
      this.label = c.label;
      c.conf &amp;&amp; (this.conf = c.conf);
    }
  }
  
  export interface Section {
    //...
    digitalSkills?:{
      skills?:{
        name:string,
        tooltip:Tooltip
      }
  }
  </code></pre>
  
  <p>My problem is I declare optional parameters in other classes the same way and they seem to work just fine. I don't understand what's wrong here and how I can fix it.</p>
  
  <p>Note: I'm not after an easy fix by adding the (optional?) parameter as an empty string. I would like to know the cause of this and the general principle. </p>
  
  <p>Trying to understand and learn TypeScript properly.</p>