1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
=== tests/cases/compiler/objectLitIndexerContextualType.ts ===
interface I {
[s: string]: (s: string) => number;
>s : string
>s : string
}
interface J {
[s: number]: (s: string) => number;
>s : number
>s : string
}
var x: I;
>x : I
var y: J;
>y : J
x = {
>x = { s: t => t * t, // Should error} : { s: (t: string) => number; }
>x : I
>{ s: t => t * t, // Should error} : { s: (t: string) => number; }
s: t => t * t, // Should error
>s : (t: string) => number
>t => t * t : (t: string) => number
>t : string
>t * t : number
>t : string
>t : string
};
x = {
>x = { 0: t => t * t, // Should error} : { 0: (t: string) => number; }
>x : I
>{ 0: t => t * t, // Should error} : { 0: (t: string) => number; }
0: t => t * t, // Should error
>0 : (t: string) => number
>t => t * t : (t: string) => number
>t : string
>t * t : number
>t : string
>t : string
};
y = {
>y = { s: t => t * t, // Should error} : { s: (t: any) => number; }
>y : J
>{ s: t => t * t, // Should error} : { s: (t: any) => number; }
s: t => t * t, // Should error
>s : (t: any) => number
>t => t * t : (t: any) => number
>t : any
>t * t : number
>t : any
>t : any
};
y = {
>y = { 0: t => t * t, // Should error} : { 0: (t: string) => number; }
>y : J
>{ 0: t => t * t, // Should error} : { 0: (t: string) => number; }
0: t => t * t, // Should error
>0 : (t: string) => number
>t => t * t : (t: string) => number
>t : string
>t * t : number
>t : string
>t : string
};
|