==== tests/cases/compiler/overEagerReturnTypeSpecialization.ts (1 errors) ==== //Note: Below simpler repro interface I1 { func(callback: (value: T) => U): I1; } declare var v1: I1; var r1: I1 = v1.func(num => num.toString()) // Correctly returns an I1 ~~ !!! Type 'I1' is not assignable to type 'I1': !!! Type 'number' is not assignable to type 'string'. .func(str => str.length); // should error var r2: I1 = v1.func(num => num.toString()) // Correctly returns an I1 .func(str => str.length); // should be ok