==== tests/cases/compiler/derivedTypeIncompatibleSignatures.ts (2 errors) ==== interface A { (a: string): string; } interface B extends A { (a: string): number; // Number is not a subtype of string. Should error. } interface C { new (a: string): string; } interface D extends C { new (a: string): number; // Number is not a subtype of string. Should error. } interface E { [a: string]: string; } interface F extends E { ~ !!! Interface 'F' incorrectly extends interface 'E': !!! Index signatures are incompatible: !!! Type 'number' is not assignable to type 'string'. [a: string]: number; // Number is not a subtype of string. Should error. } interface G { [a: number]: string; } interface H extends G { ~ !!! Interface 'H' incorrectly extends interface 'G': !!! Index signatures are incompatible: !!! Type 'number' is not assignable to type 'string'. [a: number]: number; // Should error for the same reason }