title: Typescript Extended Interface Casting - Missing Properties/Methods
body: <p>I have a typescript interface that I am trying to extend, but at run time my properties and methods are missing. Could someone have a look and see if there is something I'm doing completely wrong?</p>
  
  <p><strong>Inherited Interface generated from TypeLite</strong></p>
  
  <pre><code>declare module ModelsShared {
      interface AddressModel {
          Country: ModelsSupportingData.SupportingDataModel;
          County: string;
          Line1: string;
          Line2: string;
          Line3: string;
          Postcode: string;
          Town: string;
      }
  }
  </code></pre>
  
  <p>As I can't change these interfaces as they are automatically re-generated, I extended it with my own interface:</p>
  
  <pre><code>interface IAddressModel extends ModelsShared.AddressModel {
    FlatString: string;
    asFlatString() : string;
  }
  </code></pre>
  
  <p>And then implemented that interface with an exported class:</p>
  
  <pre><code>    export class AddressModel implements IAddressModel {
        public Country: ModelsSupportingData.SupportingDataModel;
        public County: string;
        public Line1: string;
        public Line2: string;
        public Line3: string;
        public Postcode: string;
        public Town: string;
        public FlatString : string;
  
        public asFlatString = (): string =&gt; {         
          return "A nice formatted address";
        }
     }
  </code></pre>
  
  <p>However, even on casting the address as my interface, such as:</p>
  
  <pre><code>let address: IAddressModel = (user.Address as IAddressModel);
  </code></pre>
  
  <p>And although VS is happy, I do not get the property or method at run-time, I just undefined.</p>