1/*
2 * Copyright (c) 2023-2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16const test1 = {}
17
18const test2 = { hello: "world" };
19
20let test3:{} = {};
21
22const test4 = { 
23        field: "world",
24        field1: "hello2",
25        field2: "hello3",
26        field3: "hello4",
27        field4: "hello5",
28        field5: "hello6",
29        field6: "hello7",
30    };
31
32const test5 = { 
33        field: 1,
34        field1: 2,
35        field2: 3,
36        field3: 4,
37        field4: 5,
38        field5: 6,
39        field6: 7,
40    };
41
42const test6 = { 
43        field: "world",
44        field1: 2,
45        field2: "hello3",
46        field3: 4,
47        field4: "hello5",
48        field5: 6,
49        field6: "hello7",
50        field7: true,
51        field8: false
52    };
53
54interface test7 { 
55        field: "world",
56        field1: "hello2",
57        field2: "hello3",
58        field3: "hello4",
59        field4: "hello5",
60        field5: "hello6",
61        field6: "hello7"
62    };
63
64interface test8 { 
65        field: 1,
66        field1: 2,
67        field2: 3,
68        field3: 4,
69        field4: 5,
70        field5: 6,
71        field6: 7,
72    };
73
74interface test9 { 
75        field: "world",
76        field1: 2,
77        field2: "hello3",
78        field3: 4,
79        field4: "hello5",
80        field5: 6,
81        field6: "hello7",
82        field7: true,
83        field8: false
84    };
85
86const test10:object = { 
87        field: "world",
88        field1: "hello2",
89        field2: "hello3",
90        field3: "hello4",
91        field4: "hello5",
92        field5: "hello6",
93        field6: "hello7",
94    };
95
96const test11:object = { 
97        field: 1,
98        field1: 2,
99        field2: 3,
100        field3: 4,
101        field4: 5,
102        field5: 6,
103        field6: 7,
104    };
105
106const test12:object = { 
107        field: "world",
108        field1: 2,
109        field2: "hello3",
110        field3: 4,
111        field4: "hello5",
112        field5: 6,
113        field6: "hello7",
114        field7: true,
115        field8: false
116    };
117
118const test13:object = { 
119        field: "world",
120        field1: "hello2",
121        field2: "hello3",
122        field3: "hello4",
123        field4: "hello5",
124        field5: "hello6",
125        field6: "hello7",
126    };
127
128const test14:object = { 
129        field: 1,
130        field1: 2,
131        field2: 3,
132        field3: 4,
133        field4: 5,
134        field5: 6,
135        field6: 7,
136    };
137
138const test15:object = { 
139        field: "world",
140        field1: 2,
141        field2: "hello3",
142        field3: 4,
143        field4: "hello5",
144        field5: 6,
145        field6: "hello7",
146        field7: true,
147        field8: false
148    };
149
150let test16:{
151    field:String,
152    field1:String,
153    field2:String,
154    field3:String,
155    field4:String,
156    field5:String,
157    field6:String} = { 
158        field: "world",
159        field1: "hello2",
160        field2: "hello3",
161        field3: "hello4",
162        field4: "hello5",
163        field5: "hello6",
164        field6: "hello7",
165    };
166
167let test17:{
168    field:number,
169    field1:number,
170    field2:number,
171    field3:number,
172    field4:number,
173    field5:number,
174    field6:number} = { 
175        field: 1,
176        field1: 2,
177        field2: 3,
178        field3: 4,
179        field4: 5,
180        field5: 6,
181        field6: 7,
182    };
183
184let test18:{
185    field:String,
186    field1:number,
187    field2:String,
188    field3:number,
189    field4:String,
190    field5:number,
191    field6:String,
192    field7:boolean,
193    field8:boolean} = { 
194        field: "world",
195        field1: 2,
196        field2: "hello3",
197        field3: 4,
198        field4: "hello5",
199        field5: 6,
200        field6: "hello7",
201        field7: true,
202        field8: false
203    };
204
205const test19:Record<string, string> = { 
206        field: "world",
207        field1: "hello2",
208        field2: "hello3",
209        field3: "hello4",
210        field4: "hello5",
211        field5: "hello6",
212        field6: "hello7",
213    };
214
215const test20:Record<string, number> = { 
216        field: 1,
217        field1: 2,
218        field2: 3,
219        field3: 4,
220        field4: 5,
221        field5: 6,
222        field6: 7,
223    };
224
225const test21:Record<string, string | number | boolean> = {
226        field: "world",
227        field1: 2,
228        field2: "hello3",
229        field3: 4,
230        field4: "hello5",
231        field5: 6,
232        field6: "hello7",
233        field7: true,
234        field8: false
235    };