title: Typescript simple generic inference issue
body: <p>What's wrong with this ?<br>
  Shouldn't <code>be</code> a <code>string</code> ?    </p>
  
  <pre><code>const valueGetter = &lt;T extends {value:V}, V&gt;(o:T) =&gt; ():V =&gt; o.value 
  const myValueGetter = valueGetter({x:1, value:'a string'})  // const myValueGetter: () =&gt; {}
  const be = myValueGetter() // const be: {}
  </code></pre>
  
  <p><a href="http://www.typescriptlang.org/play/#src=const%20valueGetter%20%3D%20%3CT%20extends%20%7Bvalue%3AV%7D%2C%20V%3E(o%3AT)%20%3D%3E%20()%3AV%20%3D%3E%20o.value%20%0D%0Aconst%20myValueGetter%20%3D%20valueGetter(%7Bx%3A1%2C%20value%3A&#39;a%20string&#39;%7D)%20%20%2F%2F%20const%20myValueGetter%3A%20()%20%3D%3E%20%7B%7D%0D%0Aconst%20shouldBeAString%20%3D%20myValueGetter()%20%2F%2F%20const%20shouldBeAString%3A%20%7B%7D" rel="nofollow noreferrer">try it live</a></p>