Test object spread index signatures

This commit is contained in:
Nathan Shively-Sanders
2016-09-27 11:05:58 -07:00
parent 429b0d95ca
commit 78420adfcd
4 changed files with 93 additions and 37 deletions

View File

@@ -7,12 +7,18 @@ let c: { ...C, b: string, c?: string, [n: number]: string };
let n: number = c.a;
let s: string = c[12];
interface Indexed {
[n: number]: string;
a: boolean;
[n: string]: number;
a: number;
}
let i: { ...Indexed, b: string };
s = i[101];
s = i.b;
let i: { ...Indexed, b: number };
n = i[101];
n = i.b;
interface Indexed2 {
[n: string]: boolean;
c: boolean;
}
let ii: { ...Indexed, ...Indexed2, b: boolean, d: number };
let nb: number | boolean = ii[1001];
//// [objectSpreadIndexSignature.js]
@@ -25,5 +31,7 @@ var c;
var n = c.a;
var s = c[12];
var i;
s = i[101];
s = i.b;
n = i[101];
n = i.b;
var ii;
var nb = ii[1001];

View File

@@ -28,24 +28,44 @@ let s: string = c[12];
interface Indexed {
>Indexed : Symbol(Indexed, Decl(objectSpreadIndexSignature.ts, 6, 22))
[n: number]: string;
[n: string]: number;
>n : Symbol(n, Decl(objectSpreadIndexSignature.ts, 8, 5))
a: boolean;
a: number;
>a : Symbol(Indexed.a, Decl(objectSpreadIndexSignature.ts, 8, 24))
}
let i: { ...Indexed, b: string };
let i: { ...Indexed, b: number };
>i : Symbol(i, Decl(objectSpreadIndexSignature.ts, 11, 3))
>Indexed : Symbol(Indexed, Decl(objectSpreadIndexSignature.ts, 6, 22))
>b : Symbol(b, Decl(objectSpreadIndexSignature.ts, 11, 20))
s = i[101];
>s : Symbol(s, Decl(objectSpreadIndexSignature.ts, 6, 3))
n = i[101];
>n : Symbol(n, Decl(objectSpreadIndexSignature.ts, 5, 3))
>i : Symbol(i, Decl(objectSpreadIndexSignature.ts, 11, 3))
s = i.b;
>s : Symbol(s, Decl(objectSpreadIndexSignature.ts, 6, 3))
n = i.b;
>n : Symbol(n, Decl(objectSpreadIndexSignature.ts, 5, 3))
>i.b : Symbol(b, Decl(objectSpreadIndexSignature.ts, 11, 20))
>i : Symbol(i, Decl(objectSpreadIndexSignature.ts, 11, 3))
>b : Symbol(b, Decl(objectSpreadIndexSignature.ts, 11, 20))
interface Indexed2 {
>Indexed2 : Symbol(Indexed2, Decl(objectSpreadIndexSignature.ts, 13, 8))
[n: string]: boolean;
>n : Symbol(n, Decl(objectSpreadIndexSignature.ts, 15, 5))
c: boolean;
>c : Symbol(Indexed2.c, Decl(objectSpreadIndexSignature.ts, 15, 25))
}
let ii: { ...Indexed, ...Indexed2, b: boolean, d: number };
>ii : Symbol(ii, Decl(objectSpreadIndexSignature.ts, 18, 3))
>Indexed : Symbol(Indexed, Decl(objectSpreadIndexSignature.ts, 6, 22))
>Indexed2 : Symbol(Indexed2, Decl(objectSpreadIndexSignature.ts, 13, 8))
>b : Symbol(b, Decl(objectSpreadIndexSignature.ts, 18, 34))
>d : Symbol(d, Decl(objectSpreadIndexSignature.ts, 18, 46))
let nb: number | boolean = ii[1001];
>nb : Symbol(nb, Decl(objectSpreadIndexSignature.ts, 19, 3))
>ii : Symbol(ii, Decl(objectSpreadIndexSignature.ts, 18, 3))

View File

@@ -30,28 +30,50 @@ let s: string = c[12];
interface Indexed {
>Indexed : Indexed
[n: number]: string;
>n : number
[n: string]: number;
>n : string
a: boolean;
>a : boolean
a: number;
>a : number
}
let i: { ...Indexed, b: string };
>i : { ...Indexed; b: string; [n: number]: string; }
let i: { ...Indexed, b: number };
>i : { ...Indexed; b: number; [n: string]: number; }
>Indexed : Indexed
>b : string
>b : number
s = i[101];
>s = i[101] : string
>s : string
>i[101] : string
>i : { ...Indexed; b: string; [n: number]: string; }
n = i[101];
>n = i[101] : number
>n : number
>i[101] : number
>i : { ...Indexed; b: number; [n: string]: number; }
>101 : 101
s = i.b;
>s = i.b : string
>s : string
>i.b : string
>i : { ...Indexed; b: string; [n: number]: string; }
>b : string
n = i.b;
>n = i.b : number
>n : number
>i.b : number
>i : { ...Indexed; b: number; [n: string]: number; }
>b : number
interface Indexed2 {
>Indexed2 : Indexed2
[n: string]: boolean;
>n : string
c: boolean;
>c : boolean
}
let ii: { ...Indexed, ...Indexed2, b: boolean, d: number };
>ii : { ...Indexed; ...Indexed2; b: boolean; d: number; [x: string]: number | boolean; }
>Indexed : Indexed
>Indexed2 : Indexed2
>b : boolean
>d : number
let nb: number | boolean = ii[1001];
>nb : number | boolean
>ii[1001] : number | boolean
>ii : { ...Indexed; ...Indexed2; b: boolean; d: number; [x: string]: number | boolean; }
>1001 : 1001

View File

@@ -6,9 +6,15 @@ let c: { ...C, b: string, c?: string, [n: number]: string };
let n: number = c.a;
let s: string = c[12];
interface Indexed {
[n: number]: string;
a: boolean;
[n: string]: number;
a: number;
}
let i: { ...Indexed, b: string };
s = i[101];
s = i.b;
let i: { ...Indexed, b: number };
n = i[101];
n = i.b;
interface Indexed2 {
[n: string]: boolean;
c: boolean;
}
let ii: { ...Indexed, ...Indexed2, b: boolean, d: number };
let nb: number | boolean = ii[1001];