TypeScript/tests/baselines/reference/implicitIndexSignatures.types
2016-07-18 17:18:35 -07:00

202 lines
4.9 KiB
Plaintext

=== tests/cases/compiler/implicitIndexSignatures.ts ===
type StringMap = { [x: string]: string };
>StringMap : { [x: string]: string; }
>x : string
const empty1 = {};
>empty1 : {}
>{} : {}
let empty2: {};
>empty2 : {}
const names1 = { a: "foo", b: "bar" };
>names1 : { a: string; b: string; }
>{ a: "foo", b: "bar" } : { a: string; b: string; }
>a : string
>"foo" : string
>b : string
>"bar" : string
let names2: { a: string, b: string };
>names2 : { a: string; b: string; }
>a : string
>b : string
let map: StringMap;
>map : { [x: string]: string; }
>StringMap : { [x: string]: string; }
map = { x: "xxx", y: "yyy" };
>map = { x: "xxx", y: "yyy" } : { x: string; y: string; }
>map : { [x: string]: string; }
>{ x: "xxx", y: "yyy" } : { x: string; y: string; }
>x : string
>"xxx" : string
>y : string
>"yyy" : string
map = empty1;
>map = empty1 : {}
>map : { [x: string]: string; }
>empty1 : {}
map = empty2;
>map = empty2 : {}
>map : { [x: string]: string; }
>empty2 : {}
map = names1;
>map = names1 : { a: string; b: string; }
>map : { [x: string]: string; }
>names1 : { a: string; b: string; }
map = names2;
>map = names2 : { a: string; b: string; }
>map : { [x: string]: string; }
>names2 : { a: string; b: string; }
declare function getStringIndexValue<T>(map: { [x: string]: T }): T;
>getStringIndexValue : <T>(map: { [x: string]: T; }) => T
>T : T
>map : { [x: string]: T; }
>x : string
>T : T
>T : T
declare function getNumberIndexValue<T>(map: { [x: number]: T }): T;
>getNumberIndexValue : <T>(map: { [x: number]: T; }) => T
>T : T
>map : { [x: number]: T; }
>x : number
>T : T
>T : T
function f1() {
>f1 : () => void
const o1 = { a: 1, b: 2 };
>o1 : { a: number; b: number; }
>{ a: 1, b: 2 } : { a: number; b: number; }
>a : number
>1 : number
>b : number
>2 : number
let o2: { a: number, b: number };
>o2 : { a: number; b: number; }
>a : number
>b : number
const v1 = getStringIndexValue(o1);
>v1 : number
>getStringIndexValue(o1) : number
>getStringIndexValue : <T>(map: { [x: string]: T; }) => T
>o1 : { a: number; b: number; }
const v2 = getStringIndexValue(o2);
>v2 : number
>getStringIndexValue(o2) : number
>getStringIndexValue : <T>(map: { [x: string]: T; }) => T
>o2 : { a: number; b: number; }
}
function f2() {
>f2 : () => void
const o1 = { a: "1", b: "2" };
>o1 : { a: string; b: string; }
>{ a: "1", b: "2" } : { a: string; b: string; }
>a : string
>"1" : string
>b : string
>"2" : string
let o2: { a: string, b: string };
>o2 : { a: string; b: string; }
>a : string
>b : string
const v1 = getStringIndexValue(o1);
>v1 : string
>getStringIndexValue(o1) : string
>getStringIndexValue : <T>(map: { [x: string]: T; }) => T
>o1 : { a: string; b: string; }
const v2 = getStringIndexValue(o2);
>v2 : string
>getStringIndexValue(o2) : string
>getStringIndexValue : <T>(map: { [x: string]: T; }) => T
>o2 : { a: string; b: string; }
}
function f3() {
>f3 : () => void
const o1 = { a: 1, b: "2" };
>o1 : { a: number; b: string; }
>{ a: 1, b: "2" } : { a: number; b: string; }
>a : number
>1 : number
>b : string
>"2" : string
let o2: { a: number, b: string };
>o2 : { a: number; b: string; }
>a : number
>b : string
const v1 = getStringIndexValue(o1);
>v1 : string | number
>getStringIndexValue(o1) : string | number
>getStringIndexValue : <T>(map: { [x: string]: T; }) => T
>o1 : { a: number; b: string; }
const v2 = getStringIndexValue(o2);
>v2 : string | number
>getStringIndexValue(o2) : string | number
>getStringIndexValue : <T>(map: { [x: string]: T; }) => T
>o2 : { a: number; b: string; }
}
function f4() {
>f4 : () => void
const o1 = { 0: "0", 1: "1", count: 2 };
>o1 : { 0: string; 1: string; count: number; }
>{ 0: "0", 1: "1", count: 2 } : { 0: string; 1: string; count: number; }
>"0" : string
>"1" : string
>count : number
>2 : number
let o2: { 0: string, 1: string, count: number };
>o2 : { 0: string; 1: string; count: number; }
>count : number
const v1 = getStringIndexValue(o1);
>v1 : string | number
>getStringIndexValue(o1) : string | number
>getStringIndexValue : <T>(map: { [x: string]: T; }) => T
>o1 : { 0: string; 1: string; count: number; }
const v2 = getStringIndexValue(o2);
>v2 : string | number
>getStringIndexValue(o2) : string | number
>getStringIndexValue : <T>(map: { [x: string]: T; }) => T
>o2 : { 0: string; 1: string; count: number; }
const v3 = getNumberIndexValue(o1);
>v3 : string
>getNumberIndexValue(o1) : string
>getNumberIndexValue : <T>(map: { [x: number]: T; }) => T
>o1 : { 0: string; 1: string; count: number; }
const v4 = getNumberIndexValue(o2);
>v4 : string
>getNumberIndexValue(o2) : string
>getNumberIndexValue : <T>(map: { [x: number]: T; }) => T
>o2 : { 0: string; 1: string; count: number; }
}