tests/cases/compiler/interfacedeclWithIndexerErrors.ts(12,5): error TS2411: Property 'p2' of type 'string' is not assignable to 'string' index type '() => string'. tests/cases/compiler/interfacedeclWithIndexerErrors.ts(14,5): error TS2411: Property 'p4' of type 'number' is not assignable to 'string' index type '() => string'. tests/cases/compiler/interfacedeclWithIndexerErrors.ts(15,5): error TS2411: Property 'p5' of type '(s: number) => string' is not assignable to 'string' index type '() => string'. tests/cases/compiler/interfacedeclWithIndexerErrors.ts(19,5): error TS2411: Property 'f3' of type '(a: string) => number' is not assignable to 'string' index type '() => string'. tests/cases/compiler/interfacedeclWithIndexerErrors.ts(20,5): error TS2411: Property 'f4' of type '(s: number) => string' is not assignable to 'string' index type '() => string'. ==== tests/cases/compiler/interfacedeclWithIndexerErrors.ts (5 errors) ==== interface a0 { (): string; (a, b, c?: string): number; new (): string; new (s: string); [n: number]: ()=>string; [s: string]: ()=>string; p1; p2: string; ~~ !!! error TS2411: Property 'p2' of type 'string' is not assignable to 'string' index type '() => string'. p3?; p4?: number; ~~ !!! error TS2411: Property 'p4' of type 'number' is not assignable to 'string' index type '() => string'. p5: (s: number) =>string; ~~ !!! error TS2411: Property 'p5' of type '(s: number) => string' is not assignable to 'string' index type '() => string'. f1(); f2? (); f3(a: string): number; ~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2411: Property 'f3' of type '(a: string) => number' is not assignable to 'string' index type '() => string'. f4? (s: number): string; ~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2411: Property 'f4' of type '(s: number) => string' is not assignable to 'string' index type '() => string'. } interface a1 { [n: number]: number; } interface a2 { [s: string]: number; } interface a { } interface b extends a { } interface c extends a, b { } interface d extends a { } class c1 implements a { } var instance2 = new c1();