title: TypeScript - extract interface members only - possible?
body: <p>Is there a way to dynamically extract members from an object belonging to an interface (i.e. not specifying them again explicitly), like this: </p>
  
  <pre><code>let subset = { ...someObject as ISpecific }; 
  </code></pre>
  
  <p>Currently I get all members that someObject happens to have. 
  So the spread operator does not work here. Are there any ways to do that yet? </p>
  
  <p>Example: </p>
  
  <pre><code>interface ISpecific { A: string; B: string; }
  class Extended implements ISpecific { public A: string = '1'; public B: string = '2'; public C: string = '3'; }
  
  let someObject = new Extended(); 
  let subset = { ...someObject as ISpecific }; 
  console.log(subset);  // -&gt; { A, B, C } but want { A, B }
  </code></pre>
  
  <p>TypeScript casts are merely hints for the compiler, not real conversions at runtime. </p>