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 77 78 79 80 81 82 83 84 85
|
//// [implicitIndexSignatures.ts]
type StringMap = { [x: string]: string };
const empty1 = {};
let empty2: {};
const names1 = { a: "foo", b: "bar" };
let names2: { a: string, b: string };
let map: StringMap;
map = { x: "xxx", y: "yyy" };
map = empty1;
map = empty2;
map = names1;
map = names2;
declare function getStringIndexValue<T>(map: { [x: string]: T }): T;
declare function getNumberIndexValue<T>(map: { [x: number]: T }): T;
function f1() {
const o1 = { a: 1, b: 2 };
let o2: { a: number, b: number };
const v1 = getStringIndexValue(o1);
const v2 = getStringIndexValue(o2);
}
function f2() {
const o1 = { a: "1", b: "2" };
let o2: { a: string, b: string };
const v1 = getStringIndexValue(o1);
const v2 = getStringIndexValue(o2);
}
function f3() {
const o1 = { a: 1, b: "2" };
let o2: { a: number, b: string };
const v1 = getStringIndexValue(o1);
const v2 = getStringIndexValue(o2);
}
function f4() {
const o1 = { 0: "0", 1: "1", count: 2 };
let o2: { 0: string, 1: string, count: number };
const v1 = getStringIndexValue(o1);
const v2 = getStringIndexValue(o2);
const v3 = getNumberIndexValue(o1);
const v4 = getNumberIndexValue(o2);
}
//// [implicitIndexSignatures.js]
var empty1 = {};
var empty2;
var names1 = { a: "foo", b: "bar" };
var names2;
var map;
map = { x: "xxx", y: "yyy" };
map = empty1;
map = empty2;
map = names1;
map = names2;
function f1() {
var o1 = { a: 1, b: 2 };
var o2;
var v1 = getStringIndexValue(o1);
var v2 = getStringIndexValue(o2);
}
function f2() {
var o1 = { a: "1", b: "2" };
var o2;
var v1 = getStringIndexValue(o1);
var v2 = getStringIndexValue(o2);
}
function f3() {
var o1 = { a: 1, b: "2" };
var o2;
var v1 = getStringIndexValue(o1);
var v2 = getStringIndexValue(o2);
}
function f4() {
var o1 = { 0: "0", 1: "1", count: 2 };
var o2;
var v1 = getStringIndexValue(o1);
var v2 = getStringIndexValue(o2);
var v3 = getNumberIndexValue(o1);
var v4 = getNumberIndexValue(o2);
}
|