title: Typescript Mapped Generic loosing information?
body: <p>Why does using a mapped generic type result in it being equal to string instead of an Object ?</p>
  <pre><code>
  // doesn't work
  type getActions&lt;T&gt; = { [N in keyof T]: T[N] };
  
  // works
  type getActions2 = { [N in keyof &quot;&quot;]: &quot;&quot;[N] };
  
  // { at: (a: 1) =&gt; 'false' } not assignable to string
  const oef: getActions&lt;string&gt; = { at: (a: 1) =&gt; 'false' }; 
  </code></pre>
  <p><a href="https://www.typescriptlang.org/play?ssl=7&amp;ssc=91&amp;pln=1&amp;pc=1#code/PTAEBMHsFMGcDsDkAXUB3SAnA1gWAFDICeADtKAObTICCAxsgJaTywA8AKgHygC8oAb1ABtAHKhG8UNmhFIAM1AcAugC4lY5aAC%20AbgIEQ6LNlgFiZStXpMWsAEx9BI8ZOmyFoAERe13r5o6%20vgEdHaoMPLqVLQMzKxssMiYkhQ8-EJ0ABYAhpg0yOoAFDnqAIwAlHw8iPI5ADaw0IhBoEbwkKg5sLCMFPA5AEb15MiQoEkp8BRAA" rel="nofollow noreferrer">TS Playground</a></p>