title: Property does not exist after union and extended Omit
body: <p>I have a base <code>Type</code> that is extended upon by two interfaces. I then have another interface which is a <code>Union</code> of the two Types.</p>
  <p>Later on I process these type to replace the <code>Number</code> date property which an actual <code>Date</code> object, so I have a type for that too.</p>
  <p>However, upon trying to read the <code>lens</code> property in my component (after a condition I thought should differentiate it as a <code>Camera</code>, I get an error.</p>
  <p><code>Property 'lens' does not exist on type 'DatedDevice'.</code></p>
  <pre><code>export enum DeviceType {
    Camera = 'camera-device',
    Phone = 'phone-device'
  }
  
  interface DeviceBase {
    id: string;
    date: number;
  }
  
  export interface Camera extends DeviceBase {
    lens: string;
    type: DeviceType.Camera;
  }
  
  export interface Phone extends DeviceBase {
    receiver: string;
    type: DeviceType.Phone;
  }
  
  // Union of two extended interfaces
  export type Device = Camera | Phone;
  
  // Type for replacing number with Date
  export interface DatedDevice extends Omit&lt;Device, 'date'&gt; {
    date: Date;
  }
  
  // Error in component.
  // 'device' is a prop of type 'DatedDevice'
  if (device.type === DeviceType.Text) {
    console.log(device.lens);
    // ^ Property 'lens' does not exist on type 'DatedDevice'
  
  }
  </code></pre>