tests/cases/compiler/genericTypeAssertions5.ts(19,5): error TS2322: Type 'A' is not assignable to type 'T'. tests/cases/compiler/genericTypeAssertions5.ts(20,5): error TS2322: Type 'B' is not assignable to type 'T'. tests/cases/compiler/genericTypeAssertions5.ts(21,5): error TS2322: Type 'C' is not assignable to type 'T'. tests/cases/compiler/genericTypeAssertions5.ts(23,9): error TS2352: Neither type 'B' nor type 'T' is assignable to the other. tests/cases/compiler/genericTypeAssertions5.ts(24,9): error TS2352: Neither type 'C' nor type 'T' is assignable to the other. ==== tests/cases/compiler/genericTypeAssertions5.ts (5 errors) ==== interface A { foo(): string; } interface B extends A { bar(): number; } interface C extends A { baz(): number; } var a: A; var b: B; var c: C; function foo2(x: T) { var y = x; y = a; // error: cannot convert A to T ~ !!! error TS2322: Type 'A' is not assignable to type 'T'. y = b; // error: cannot convert B to T ~ !!! error TS2322: Type 'B' is not assignable to type 'T'. y = c; // error: cannot convert C to T ~ !!! error TS2322: Type 'C' is not assignable to type 'T'. y = a; y = b; // error: cannot convert B to T ~~~~ !!! error TS2352: Neither type 'B' nor type 'T' is assignable to the other. y = c; // error: cannot convert C to T ~~~~ !!! error TS2352: Neither type 'C' nor type 'T' is assignable to the other. }