202 lines
4.9 KiB
Plaintext
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; }
|
|
}
|
|
|