title: Inerfaces difference in Typescript?
body: <p>I have a couple of interfaces:</p>
  
  <pre><code>interface ISubstitution {
     id: number;
     name: string;
     date: string;
     subject: number;
     new: string;
     group: number;
     form: boolean;
  }
  
  interface ISubstitutionHot {
    new: string;
    group: number;
    form: boolean;
  }
  </code></pre>
  
  <p>Corresponding its is one object by interface type:</p>
  
  <pre><code>public a: any;
  a = &lt;ISubstitution&gt; {
         id: 1,
         name:"O",
         date: "2018-01-1",
         subject: "M",
         new: "A", 
         group: 1,
         form: true
  }
  </code></pre>
  
  <p>Note <code>ISubstitutionHot</code> extends <code>ISubstitution</code>.</p>
  
  <p>So, in conclusion I have filled object <code>a</code>.</p>
  
  <p>How to take difference between objects/interfaces like:</p>
  
  <pre><code>let c = &lt;a&gt;ISubstitution / &lt;b&gt;ISubstitutionHot;
  </code></pre>
  
  <p>To retrieve only fields from object <code>a</code> that there are in interface <code>ISubstitutionHot</code>? It should return me:</p>
  
  <pre><code>c = {
  new: "A", 
  group: 1,
  form: true
  }
  </code></pre>
  
  <p>Is it possible in TypeScript?</p>