title: Typescript map types with different property names
body: <p>I use Angular 6 + TypeScript 2.7.2 and I have a component that need <code>ISelect[]</code> type:</p>
  
  <pre><code>export interface ISelect {
      id: number;
      title: string;
  }
  </code></pre>
  
  <p>So each time I call the component I need pass a <code>ISelect[]</code>. for example I have a <code>IProject[]</code> and I need to map it to <code>ISelect[]</code> In another example I have <code>IClient[]</code> and again I need map it to <code>ISelect[]</code>, here is <code>IProject</code>:</p>
  
  <pre><code>export interface IProject {
      id: number;
      name: string;
      code: string;
      clientId: number;
      status: number;
      level: number;
      masterKey: number;
      parentId?: number;
  }
  </code></pre>
  
  <p>I need to map it like this pseudocode. </p>
  
  <pre><code> myprojects: IProject[];
   myselect: ISelect[] = myprojects.Foreach.Map&lt;ISelect&gt;(id: id, title: name);
  </code></pre>
  
  <p>Or:</p>
  
  <pre><code>export interface IClient {
      code: number,
      fullname: string,
      streetNumber: string,
      streetName: string,
      postalCode: string,
      city: string,
      isActive: boolean
  }
  </code></pre>
  
  <p>And I need this map:</p>
  
  <pre><code>myClients: IClient[];
  myselect: ISelect[] = myClients.Foreach.Map&lt;ISelect&gt;(id: code, title: fullname);
  </code></pre>
  
  <p>How could I do this mapping. I prefer to avoid have a for loop inside my source array. but I could have different mappings each time I need to condvert. any suggestion?</p>