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