1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "TSInterfaceDeclaration",
6      "body": {
7        "type": "TSInterfaceBody",
8        "body": [
9          {
10            "type": "TSPropertySignature",
11            "computed": false,
12            "optional": false,
13            "readonly": false,
14            "key": {
15              "type": "Identifier",
16              "name": "a",
17              "decorators": [],
18              "loc": {
19                "start": {
20                  "line": 18,
21                  "column": 5
22                },
23                "end": {
24                  "line": 18,
25                  "column": 6
26                }
27              }
28            },
29            "typeAnnotation": {
30              "type": "TSNumberKeyword",
31              "loc": {
32                "start": {
33                  "line": 18,
34                  "column": 8
35                },
36                "end": {
37                  "line": 18,
38                  "column": 14
39                }
40              }
41            },
42            "loc": {
43              "start": {
44                "line": 18,
45                "column": 5
46              },
47              "end": {
48                "line": 18,
49                "column": 15
50              }
51            }
52          }
53        ],
54        "loc": {
55          "start": {
56            "line": 17,
57            "column": 13
58          },
59          "end": {
60            "line": 19,
61            "column": 2
62          }
63        }
64      },
65      "id": {
66        "type": "Identifier",
67        "name": "o",
68        "decorators": [],
69        "loc": {
70          "start": {
71            "line": 17,
72            "column": 11
73          },
74          "end": {
75            "line": 17,
76            "column": 12
77          }
78        }
79      },
80      "extends": [],
81      "loc": {
82        "start": {
83          "line": 17,
84          "column": 1
85        },
86        "end": {
87          "line": 19,
88          "column": 2
89        }
90      }
91    },
92    {
93      "type": "VariableDeclaration",
94      "declarations": [
95        {
96          "type": "VariableDeclarator",
97          "id": {
98            "type": "Identifier",
99            "name": "a",
100            "typeAnnotation": {
101              "type": "TSTypeReference",
102              "typeName": {
103                "type": "Identifier",
104                "name": "o",
105                "decorators": [],
106                "loc": {
107                  "start": {
108                    "line": 21,
109                    "column": 8
110                  },
111                  "end": {
112                    "line": 21,
113                    "column": 9
114                  }
115                }
116              },
117              "loc": {
118                "start": {
119                  "line": 21,
120                  "column": 8
121                },
122                "end": {
123                  "line": 21,
124                  "column": 9
125                }
126              }
127            },
128            "decorators": [],
129            "loc": {
130              "start": {
131                "line": 21,
132                "column": 5
133              },
134              "end": {
135                "line": 21,
136                "column": 6
137              }
138            }
139          },
140          "init": null,
141          "loc": {
142            "start": {
143              "line": 21,
144              "column": 5
145            },
146            "end": {
147              "line": 21,
148              "column": 6
149            }
150          }
151        }
152      ],
153      "kind": "var",
154      "loc": {
155        "start": {
156          "line": 21,
157          "column": 1
158        },
159        "end": {
160          "line": 21,
161          "column": 10
162        }
163      }
164    },
165    {
166      "type": "VariableDeclaration",
167      "declarations": [
168        {
169          "type": "VariableDeclarator",
170          "id": {
171            "type": "Identifier",
172            "name": "b",
173            "decorators": [],
174            "loc": {
175              "start": {
176                "line": 22,
177                "column": 5
178              },
179              "end": {
180                "line": 22,
181                "column": 6
182              }
183            }
184          },
185          "init": {
186            "type": "TSAsExpression",
187            "expression": {
188              "type": "ObjectExpression",
189              "properties": [
190                {
191                  "type": "SpreadElement",
192                  "argument": {
193                    "type": "Identifier",
194                    "name": "a",
195                    "decorators": [],
196                    "loc": {
197                      "start": {
198                        "line": 22,
199                        "column": 13
200                      },
201                      "end": {
202                        "line": 22,
203                        "column": 14
204                      }
205                    }
206                  },
207                  "loc": {
208                    "start": {
209                      "line": 22,
210                      "column": 10
211                    },
212                    "end": {
213                      "line": 22,
214                      "column": 14
215                    }
216                  }
217                }
218              ],
219              "loc": {
220                "start": {
221                  "line": 22,
222                  "column": 9
223                },
224                "end": {
225                  "line": 22,
226                  "column": 15
227                }
228              }
229            },
230            "typeAnnotation": {
231              "type": "TSTypeReference",
232              "typeName": {
233                "type": "Identifier",
234                "name": "const",
235                "decorators": [],
236                "loc": {
237                  "start": {
238                    "line": 22,
239                    "column": 19
240                  },
241                  "end": {
242                    "line": 22,
243                    "column": 24
244                  }
245                }
246              },
247              "loc": {
248                "start": {
249                  "line": 22,
250                  "column": 19
251                },
252                "end": {
253                  "line": 22,
254                  "column": 24
255                }
256              }
257            },
258            "loc": {
259              "start": {
260                "line": 22,
261                "column": 9
262              },
263              "end": {
264                "line": 22,
265                "column": 25
266              }
267            }
268          },
269          "loc": {
270            "start": {
271              "line": 22,
272              "column": 5
273            },
274            "end": {
275              "line": 22,
276              "column": 25
277            }
278          }
279        }
280      ],
281      "kind": "var",
282      "loc": {
283        "start": {
284          "line": 22,
285          "column": 1
286        },
287        "end": {
288          "line": 22,
289          "column": 25
290        }
291      }
292    },
293    {
294      "type": "ExpressionStatement",
295      "expression": {
296        "type": "AssignmentExpression",
297        "operator": "=",
298        "left": {
299          "type": "MemberExpression",
300          "object": {
301            "type": "Identifier",
302            "name": "b",
303            "decorators": [],
304            "loc": {
305              "start": {
306                "line": 23,
307                "column": 1
308              },
309              "end": {
310                "line": 23,
311                "column": 2
312              }
313            }
314          },
315          "property": {
316            "type": "Identifier",
317            "name": "a",
318            "decorators": [],
319            "loc": {
320              "start": {
321                "line": 23,
322                "column": 3
323              },
324              "end": {
325                "line": 23,
326                "column": 4
327              }
328            }
329          },
330          "computed": false,
331          "optional": false,
332          "loc": {
333            "start": {
334              "line": 23,
335              "column": 1
336            },
337            "end": {
338              "line": 23,
339              "column": 4
340            }
341          }
342        },
343        "right": {
344          "type": "NumberLiteral",
345          "value": 2,
346          "loc": {
347            "start": {
348              "line": 23,
349              "column": 7
350            },
351            "end": {
352              "line": 23,
353              "column": 8
354            }
355          }
356        },
357        "loc": {
358          "start": {
359            "line": 23,
360            "column": 1
361          },
362          "end": {
363            "line": 23,
364            "column": 8
365          }
366        }
367      },
368      "loc": {
369        "start": {
370          "line": 23,
371          "column": 1
372        },
373        "end": {
374          "line": 23,
375          "column": 9
376        }
377      }
378    }
379  ],
380  "loc": {
381    "start": {
382      "line": 1,
383      "column": 1
384    },
385    "end": {
386      "line": 23,
387      "column": 9
388    }
389  }
390}
391