TypeScript/tests/baselines/reference/objectTypeWithStringNamedNumericProperty.types
2015-04-15 16:44:20 -07:00

536 lines
9 KiB
Plaintext

=== tests/cases/conformance/types/members/objectTypeWithStringNamedNumericProperty.ts ===
// string named numeric properties are legal and distinct when indexed by string values
// indexed numerically the value is converted to a number
// no errors expected below
class C {
>C : C
"0.1": void;
".1": Object;
>Object : Object
"1": number;
"1.": string;
"1..": boolean;
"1.0": Date;
>Date : Date
"-1.0": RegExp;
>RegExp : RegExp
"-1": Date;
>Date : Date
}
var c: C;
>c : C
>C : C
var r1 = c['0.1'];
>r1 : void
>c['0.1'] : void
>c : C
>'0.1' : string
var r2 = c['.1'];
>r2 : Object
>c['.1'] : Object
>c : C
>'.1' : string
var r3 = c['1'];
>r3 : number
>c['1'] : number
>c : C
>'1' : string
var r3 = c[1];
>r3 : number
>c[1] : number
>c : C
>1 : number
var r4 = c['1.'];
>r4 : string
>c['1.'] : string
>c : C
>'1.' : string
var r3 = c[1.]; // same as indexing by 1 when done numerically
>r3 : number
>c[1.] : number
>c : C
>1. : number
var r5 = c['1..'];
>r5 : boolean
>c['1..'] : boolean
>c : C
>'1..' : string
var r6 = c['1.0'];
>r6 : Date
>c['1.0'] : Date
>c : C
>'1.0' : string
var r3 = c[1.0]; // same as indexing by 1 when done numerically
>r3 : number
>c[1.0] : number
>c : C
>1.0 : number
// BUG 823822
var r7 = i[-1];
>r7 : any
>i[-1] : any
>i : I
>-1 : number
>1 : number
var r7 = i[-1.0];
>r7 : any
>i[-1.0] : any
>i : I
>-1.0 : number
>1.0 : number
var r8 = i["-1.0"];
>r8 : RegExp
>i["-1.0"] : RegExp
>i : I
>"-1.0" : string
var r9 = i["-1"];
>r9 : Date
>i["-1"] : Date
>i : I
>"-1" : string
var r10 = i[0x1]
>r10 : number
>i[0x1] : number
>i : I
>0x1 : number
var r11 = i[-0x1]
>r11 : any
>i[-0x1] : any
>i : I
>-0x1 : number
>0x1 : number
var r12 = i[01]
>r12 : number
>i[01] : number
>i : I
>01 : number
var r13 = i[-01]
>r13 : any
>i[-01] : any
>i : I
>-01 : number
>01 : number
interface I {
>I : I
"0.1": void;
".1": Object;
>Object : Object
"1": number;
"1.": string;
"1..": boolean;
"1.0": Date;
>Date : Date
"-1.0": RegExp;
>RegExp : RegExp
"-1": Date;
>Date : Date
}
var i: I;
>i : I
>I : I
var r1 = i['0.1'];
>r1 : void
>i['0.1'] : void
>i : I
>'0.1' : string
var r2 = i['.1'];
>r2 : Object
>i['.1'] : Object
>i : I
>'.1' : string
var r3 = i['1'];
>r3 : number
>i['1'] : number
>i : I
>'1' : string
var r3 = c[1];
>r3 : number
>c[1] : number
>c : C
>1 : number
var r4 = i['1.'];
>r4 : string
>i['1.'] : string
>i : I
>'1.' : string
var r3 = c[1.]; // same as indexing by 1 when done numerically
>r3 : number
>c[1.] : number
>c : C
>1. : number
var r5 = i['1..'];
>r5 : boolean
>i['1..'] : boolean
>i : I
>'1..' : string
var r6 = i['1.0'];
>r6 : Date
>i['1.0'] : Date
>i : I
>'1.0' : string
var r3 = c[1.0]; // same as indexing by 1 when done numerically
>r3 : number
>c[1.0] : number
>c : C
>1.0 : number
// BUG 823822
var r7 = i[-1];
>r7 : any
>i[-1] : any
>i : I
>-1 : number
>1 : number
var r7 = i[-1.0];
>r7 : any
>i[-1.0] : any
>i : I
>-1.0 : number
>1.0 : number
var r8 = i["-1.0"];
>r8 : RegExp
>i["-1.0"] : RegExp
>i : I
>"-1.0" : string
var r9 = i["-1"];
>r9 : Date
>i["-1"] : Date
>i : I
>"-1" : string
var r10 = i[0x1]
>r10 : number
>i[0x1] : number
>i : I
>0x1 : number
var r11 = i[-0x1]
>r11 : any
>i[-0x1] : any
>i : I
>-0x1 : number
>0x1 : number
var r12 = i[01]
>r12 : number
>i[01] : number
>i : I
>01 : number
var r13 = i[-01]
>r13 : any
>i[-01] : any
>i : I
>-01 : number
>01 : number
var a: {
>a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; }
"0.1": void;
".1": Object;
>Object : Object
"1": number;
"1.": string;
"1..": boolean;
"1.0": Date;
>Date : Date
"-1.0": RegExp;
>RegExp : RegExp
"-1": Date;
>Date : Date
}
var r1 = a['0.1'];
>r1 : void
>a['0.1'] : void
>a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; }
>'0.1' : string
var r2 = a['.1'];
>r2 : Object
>a['.1'] : Object
>a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; }
>'.1' : string
var r3 = a['1'];
>r3 : number
>a['1'] : number
>a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; }
>'1' : string
var r3 = c[1];
>r3 : number
>c[1] : number
>c : C
>1 : number
var r4 = a['1.'];
>r4 : string
>a['1.'] : string
>a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; }
>'1.' : string
var r3 = c[1.]; // same as indexing by 1 when done numerically
>r3 : number
>c[1.] : number
>c : C
>1. : number
var r5 = a['1..'];
>r5 : boolean
>a['1..'] : boolean
>a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; }
>'1..' : string
var r6 = a['1.0'];
>r6 : Date
>a['1.0'] : Date
>a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; }
>'1.0' : string
var r3 = c[1.0]; // same as indexing by 1 when done numerically
>r3 : number
>c[1.0] : number
>c : C
>1.0 : number
// BUG 823822
var r7 = i[-1];
>r7 : any
>i[-1] : any
>i : I
>-1 : number
>1 : number
var r7 = i[-1.0];
>r7 : any
>i[-1.0] : any
>i : I
>-1.0 : number
>1.0 : number
var r8 = i["-1.0"];
>r8 : RegExp
>i["-1.0"] : RegExp
>i : I
>"-1.0" : string
var r9 = i["-1"];
>r9 : Date
>i["-1"] : Date
>i : I
>"-1" : string
var r10 = i[0x1]
>r10 : number
>i[0x1] : number
>i : I
>0x1 : number
var r11 = i[-0x1]
>r11 : any
>i[-0x1] : any
>i : I
>-0x1 : number
>0x1 : number
var r12 = i[01]
>r12 : number
>i[01] : number
>i : I
>01 : number
var r13 = i[-01]
>r13 : any
>i[-01] : any
>i : I
>-01 : number
>01 : number
var b = {
>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; }
>{ "0.1": <void>null, ".1": new Object(), "1": 1, "1.": "", "1..": true, "1.0": new Date(), "-1.0": /123/, "-1": Date} : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; }
"0.1": <void>null,
><void>null : void
>null : null
".1": new Object(),
>new Object() : Object
>Object : ObjectConstructor
"1": 1,
>1 : number
"1.": "",
>"" : string
"1..": true,
>true : boolean
"1.0": new Date(),
>new Date() : Date
>Date : DateConstructor
"-1.0": /123/,
>/123/ : RegExp
"-1": Date
>Date : DateConstructor
};
var r1 = b['0.1'];
>r1 : void
>b['0.1'] : void
>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; }
>'0.1' : string
var r2 = b['.1'];
>r2 : Object
>b['.1'] : Object
>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; }
>'.1' : string
var r3 = b['1'];
>r3 : number
>b['1'] : number
>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; }
>'1' : string
var r3 = c[1];
>r3 : number
>c[1] : number
>c : C
>1 : number
var r4 = b['1.'];
>r4 : string
>b['1.'] : string
>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; }
>'1.' : string
var r3 = c[1.]; // same as indexing by 1 when done numerically
>r3 : number
>c[1.] : number
>c : C
>1. : number
var r5 = b['1..'];
>r5 : boolean
>b['1..'] : boolean
>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; }
>'1..' : string
var r6 = b['1.0'];
>r6 : Date
>b['1.0'] : Date
>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; }
>'1.0' : string
var r3 = c[1.0]; // same as indexing by 1 when done numerically
>r3 : number
>c[1.0] : number
>c : C
>1.0 : number
// BUG 823822
var r7 = i[-1];
>r7 : any
>i[-1] : any
>i : I
>-1 : number
>1 : number
var r7 = i[-1.0];
>r7 : any
>i[-1.0] : any
>i : I
>-1.0 : number
>1.0 : number
var r8 = i["-1.0"];
>r8 : RegExp
>i["-1.0"] : RegExp
>i : I
>"-1.0" : string
var r9 = i["-1"];
>r9 : Date
>i["-1"] : Date
>i : I
>"-1" : string
var r10 = i[0x1]
>r10 : number
>i[0x1] : number
>i : I
>0x1 : number
var r11 = i[-0x1]
>r11 : any
>i[-0x1] : any
>i : I
>-0x1 : number
>0x1 : number
var r12 = i[01]
>r12 : number
>i[01] : number
>i : I
>01 : number
var r13 = i[-01]
>r13 : any
>i[-01] : any
>i : I
>-01 : number
>01 : number