|
1 | 1 | === tests/cases/conformance/types/spread/objectSpreadIndexSignature.ts ===
|
2 |
| -interface Indexed { |
3 |
| ->Indexed : Symbol(Indexed, Decl(objectSpreadIndexSignature.ts, 0, 0)) |
| 2 | +declare let indexed1: { [n: string]: number; a: number; }; |
| 3 | +>indexed1 : Symbol(indexed1, Decl(objectSpreadIndexSignature.ts, 0, 11)) |
| 4 | +>n : Symbol(n, Decl(objectSpreadIndexSignature.ts, 0, 25)) |
| 5 | +>a : Symbol(a, Decl(objectSpreadIndexSignature.ts, 0, 44)) |
4 | 6 |
|
5 |
| - [n: string]: number; |
6 |
| ->n : Symbol(n, Decl(objectSpreadIndexSignature.ts, 1, 5)) |
| 7 | +declare let indexed2: { [n: string]: boolean; c: boolean; }; |
| 8 | +>indexed2 : Symbol(indexed2, Decl(objectSpreadIndexSignature.ts, 1, 11)) |
| 9 | +>n : Symbol(n, Decl(objectSpreadIndexSignature.ts, 1, 25)) |
| 10 | +>c : Symbol(c, Decl(objectSpreadIndexSignature.ts, 1, 45)) |
7 | 11 |
|
8 |
| - a: number; |
9 |
| ->a : Symbol(Indexed.a, Decl(objectSpreadIndexSignature.ts, 1, 24)) |
10 |
| -} |
11 |
| -interface Indexed2 { |
12 |
| ->Indexed2 : Symbol(Indexed2, Decl(objectSpreadIndexSignature.ts, 3, 1)) |
| 12 | +declare let indexed3: { [n: string]: number }; |
| 13 | +>indexed3 : Symbol(indexed3, Decl(objectSpreadIndexSignature.ts, 2, 11)) |
| 14 | +>n : Symbol(n, Decl(objectSpreadIndexSignature.ts, 2, 25)) |
13 | 15 |
|
14 |
| - [n: string]: boolean; |
15 |
| ->n : Symbol(n, Decl(objectSpreadIndexSignature.ts, 5, 5)) |
16 |
| - |
17 |
| - c: boolean; |
18 |
| ->c : Symbol(Indexed2.c, Decl(objectSpreadIndexSignature.ts, 5, 25)) |
19 |
| -} |
20 |
| -let indexed: Indexed; |
21 |
| ->indexed : Symbol(indexed, Decl(objectSpreadIndexSignature.ts, 8, 3)) |
22 |
| ->Indexed : Symbol(Indexed, Decl(objectSpreadIndexSignature.ts, 0, 0)) |
23 |
| - |
24 |
| -let indexed2: Indexed2; |
25 |
| ->indexed2 : Symbol(indexed2, Decl(objectSpreadIndexSignature.ts, 9, 3)) |
26 |
| ->Indexed2 : Symbol(Indexed2, Decl(objectSpreadIndexSignature.ts, 3, 1)) |
27 |
| - |
28 |
| -let i = { ...indexed, b: 11 }; |
29 |
| ->i : Symbol(i, Decl(objectSpreadIndexSignature.ts, 10, 3)) |
30 |
| ->indexed : Symbol(indexed, Decl(objectSpreadIndexSignature.ts, 8, 3)) |
31 |
| ->b : Symbol(b, Decl(objectSpreadIndexSignature.ts, 10, 21)) |
| 16 | +let i = { ...indexed1, b: 11 }; |
| 17 | +>i : Symbol(i, Decl(objectSpreadIndexSignature.ts, 3, 3)) |
| 18 | +>indexed1 : Symbol(indexed1, Decl(objectSpreadIndexSignature.ts, 0, 11)) |
| 19 | +>b : Symbol(b, Decl(objectSpreadIndexSignature.ts, 3, 22)) |
32 | 20 |
|
33 | 21 | // only indexed has indexer, so i[101]: any
|
34 | 22 | i[101];
|
35 |
| ->i : Symbol(i, Decl(objectSpreadIndexSignature.ts, 10, 3)) |
| 23 | +>i : Symbol(i, Decl(objectSpreadIndexSignature.ts, 3, 3)) |
36 | 24 |
|
37 |
| -let ii = { ...indexed, ...indexed2 }; |
38 |
| ->ii : Symbol(ii, Decl(objectSpreadIndexSignature.ts, 13, 3)) |
39 |
| ->indexed : Symbol(indexed, Decl(objectSpreadIndexSignature.ts, 8, 3)) |
40 |
| ->indexed2 : Symbol(indexed2, Decl(objectSpreadIndexSignature.ts, 9, 3)) |
| 25 | +let ii = { ...indexed1, ...indexed2 }; |
| 26 | +>ii : Symbol(ii, Decl(objectSpreadIndexSignature.ts, 6, 3)) |
| 27 | +>indexed1 : Symbol(indexed1, Decl(objectSpreadIndexSignature.ts, 0, 11)) |
| 28 | +>indexed2 : Symbol(indexed2, Decl(objectSpreadIndexSignature.ts, 1, 11)) |
41 | 29 |
|
42 | 30 | // both have indexer, so i[1001]: number | boolean
|
43 | 31 | ii[1001];
|
44 |
| ->ii : Symbol(ii, Decl(objectSpreadIndexSignature.ts, 13, 3)) |
| 32 | +>ii : Symbol(ii, Decl(objectSpreadIndexSignature.ts, 6, 3)) |
| 33 | + |
| 34 | +declare const b: boolean; |
| 35 | +>b : Symbol(b, Decl(objectSpreadIndexSignature.ts, 10, 13)) |
| 36 | + |
| 37 | +indexed3 = { ...b ? indexed3 : undefined }; |
| 38 | +>indexed3 : Symbol(indexed3, Decl(objectSpreadIndexSignature.ts, 2, 11)) |
| 39 | +>b : Symbol(b, Decl(objectSpreadIndexSignature.ts, 10, 13)) |
| 40 | +>indexed3 : Symbol(indexed3, Decl(objectSpreadIndexSignature.ts, 2, 11)) |
| 41 | +>undefined : Symbol(undefined) |
45 | 42 |
|
0 commit comments