mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-06-01 03:54:20 -05:00
Test object spread index signatures
This commit is contained in:
@@ -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];
|
||||
|
||||
@@ -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))
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user