1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "A",
10          "loc": {
11            "start": {
12              "line": 16,
13              "column": 7
14            },
15            "end": {
16              "line": 16,
17              "column": 8
18            }
19          }
20        },
21        "typeParameters": {
22          "type": "TSTypeParameterDeclaration",
23          "params": [
24            {
25              "type": "TSTypeParameter",
26              "name": {
27                "type": "Identifier",
28                "name": "T",
29                "loc": {
30                  "start": {
31                    "line": 16,
32                    "column": 9
33                  },
34                  "end": {
35                    "line": 16,
36                    "column": 10
37                  }
38                }
39              },
40              "in": false,
41              "out": false,
42              "loc": {
43                "start": {
44                  "line": 16,
45                  "column": 9
46                },
47                "end": {
48                  "line": 16,
49                  "column": 11
50                }
51              }
52            }
53          ],
54          "loc": {
55            "start": {
56              "line": 16,
57              "column": 8
58            },
59            "end": {
60              "line": 16,
61              "column": 11
62            }
63          }
64        },
65        "superClass": null,
66        "implements": [],
67        "constructor": {
68          "type": "MethodDefinition",
69          "key": {
70            "type": "Identifier",
71            "name": "constructor",
72            "loc": {
73              "start": {
74                "line": 1,
75                "column": 1
76              },
77              "end": {
78                "line": 1,
79                "column": 1
80              }
81            }
82          },
83          "kind": "constructor",
84          "static": false,
85          "optional": false,
86          "computed": false,
87          "value": {
88            "type": "FunctionExpression",
89            "function": {
90              "type": "ScriptFunction",
91              "id": null,
92              "generator": false,
93              "async": false,
94              "expression": false,
95              "params": [],
96              "body": {
97                "type": "BlockStatement",
98                "statements": [],
99                "loc": {
100                  "start": {
101                    "line": 1,
102                    "column": 1
103                  },
104                  "end": {
105                    "line": 1,
106                    "column": 1
107                  }
108                }
109              },
110              "loc": {
111                "start": {
112                  "line": 1,
113                  "column": 1
114                },
115                "end": {
116                  "line": 1,
117                  "column": 1
118                }
119              }
120            },
121            "loc": {
122              "start": {
123                "line": 1,
124                "column": 1
125              },
126              "end": {
127                "line": 1,
128                "column": 1
129              }
130            }
131          },
132          "overloads": [],
133          "decorators": [],
134          "annotations": [],
135          "loc": {
136            "start": {
137              "line": 16,
138              "column": 1
139            },
140            "end": {
141              "line": 17,
142              "column": 2
143            }
144          }
145        },
146        "body": [],
147        "indexSignatures": [],
148        "loc": {
149          "start": {
150            "line": 16,
151            "column": 12
152          },
153          "end": {
154            "line": 17,
155            "column": 2
156          }
157        }
158      },
159      "decorators": [],
160      "isAnnotationDeclaration": false,
161      "loc": {
162        "start": {
163          "line": 16,
164          "column": 1
165        },
166        "end": {
167          "line": 17,
168          "column": 2
169        }
170      }
171    },
172    {
173      "type": "VariableDeclaration",
174      "declarations": [
175        {
176          "type": "VariableDeclarator",
177          "id": {
178            "type": "Identifier",
179            "name": "a",
180            "typeAnnotation": {
181              "type": "TSTypeReference",
182              "typeName": {
183                "type": "Identifier",
184                "name": "A",
185                "loc": {
186                  "start": {
187                    "line": 19,
188                    "column": 9
189                  },
190                  "end": {
191                    "line": 19,
192                    "column": 10
193                  }
194                }
195              },
196              "typeParameters": {
197                "type": "TSTypeParameterInstantiation",
198                "params": [
199                  {
200                    "type": "TSNumberKeyword",
201                    "loc": {
202                      "start": {
203                        "line": 19,
204                        "column": 11
205                      },
206                      "end": {
207                        "line": 19,
208                        "column": 17
209                      }
210                    }
211                  }
212                ],
213                "loc": {
214                  "start": {
215                    "line": 19,
216                    "column": 10
217                  },
218                  "end": {
219                    "line": 19,
220                    "column": 18
221                  }
222                }
223              },
224              "loc": {
225                "start": {
226                  "line": 19,
227                  "column": 9
228                },
229                "end": {
230                  "line": 19,
231                  "column": 10
232                }
233              }
234            },
235            "loc": {
236              "start": {
237                "line": 19,
238                "column": 5
239              },
240              "end": {
241                "line": 19,
242                "column": 6
243              }
244            }
245          },
246          "init": {
247            "type": "NewExpression",
248            "callee": {
249              "type": "Identifier",
250              "name": "A",
251              "loc": {
252                "start": {
253                  "line": 19,
254                  "column": 25
255                },
256                "end": {
257                  "line": 19,
258                  "column": 26
259                }
260              }
261            },
262            "typeParameters": {
263              "type": "TSTypeParameterInstantiation",
264              "params": [
265                {
266                  "type": "TSNumberKeyword",
267                  "loc": {
268                    "start": {
269                      "line": 19,
270                      "column": 27
271                    },
272                    "end": {
273                      "line": 19,
274                      "column": 33
275                    }
276                  }
277                }
278              ],
279              "loc": {
280                "start": {
281                  "line": 19,
282                  "column": 26
283                },
284                "end": {
285                  "line": 19,
286                  "column": 34
287                }
288              }
289            },
290            "arguments": [],
291            "loc": {
292              "start": {
293                "line": 19,
294                "column": 21
295              },
296              "end": {
297                "line": 19,
298                "column": 36
299              }
300            }
301          },
302          "loc": {
303            "start": {
304              "line": 19,
305              "column": 5
306            },
307            "end": {
308              "line": 19,
309              "column": 36
310            }
311          }
312        }
313      ],
314      "kind": "let",
315      "loc": {
316        "start": {
317          "line": 19,
318          "column": 1
319        },
320        "end": {
321          "line": 19,
322          "column": 37
323        }
324      }
325    }
326  ],
327  "loc": {
328    "start": {
329      "line": 1,
330      "column": 1
331    },
332    "end": {
333      "line": 21,
334      "column": 1
335    }
336  }
337}
338