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": 10 33 }, 34 "end": { 35 "line": 16, 36 "column": 11 37 } 38 } 39 }, 40 "loc": { 41 "start": { 42 "line": 16, 43 "column": 10 44 }, 45 "end": { 46 "line": 16, 47 "column": 12 48 } 49 } 50 } 51 ], 52 "loc": { 53 "start": { 54 "line": 16, 55 "column": 9 56 }, 57 "end": { 58 "line": 16, 59 "column": 12 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": 13 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": 8 185 }, 186 "end": { 187 "line": 19, 188 "column": 9 189 } 190 } 191 }, 192 "typeParameters": { 193 "type": "TSTypeParameterInstantiation", 194 "params": [ 195 { 196 "type": "TSFunctionType", 197 "params": [], 198 "typeParameters": { 199 "type": "TSTypeParameterDeclaration", 200 "params": [ 201 { 202 "type": "TSTypeParameter", 203 "name": { 204 "type": "Identifier", 205 "name": "T", 206 "loc": { 207 "start": { 208 "line": 19, 209 "column": 11 210 }, 211 "end": { 212 "line": 19, 213 "column": 12 214 } 215 } 216 }, 217 "loc": { 218 "start": { 219 "line": 19, 220 "column": 11 221 }, 222 "end": { 223 "line": 19, 224 "column": 13 225 } 226 } 227 } 228 ], 229 "loc": { 230 "start": { 231 "line": 19, 232 "column": 10 233 }, 234 "end": { 235 "line": 19, 236 "column": 13 237 } 238 } 239 }, 240 "returnType": { 241 "type": "TSTypeLiteral", 242 "members": [], 243 "loc": { 244 "start": { 245 "line": 19, 246 "column": 19 247 }, 248 "end": { 249 "line": 19, 250 "column": 21 251 } 252 } 253 }, 254 "loc": { 255 "start": { 256 "line": 19, 257 "column": 10 258 }, 259 "end": { 260 "line": 19, 261 "column": 21 262 } 263 } 264 } 265 ], 266 "loc": { 267 "start": { 268 "line": 19, 269 "column": 8 270 }, 271 "end": { 272 "line": 19, 273 "column": 22 274 } 275 } 276 }, 277 "loc": { 278 "start": { 279 "line": 19, 280 "column": 8 281 }, 282 "end": { 283 "line": 19, 284 "column": 9 285 } 286 } 287 }, 288 "loc": { 289 "start": { 290 "line": 19, 291 "column": 5 292 }, 293 "end": { 294 "line": 19, 295 "column": 6 296 } 297 } 298 }, 299 "init": { 300 "type": "NewExpression", 301 "callee": { 302 "type": "Identifier", 303 "name": "A", 304 "loc": { 305 "start": { 306 "line": 19, 307 "column": 29 308 }, 309 "end": { 310 "line": 19, 311 "column": 30 312 } 313 } 314 }, 315 "typeParameters": { 316 "type": "TSTypeParameterInstantiation", 317 "params": [ 318 { 319 "type": "TSFunctionType", 320 "params": [], 321 "typeParameters": { 322 "type": "TSTypeParameterDeclaration", 323 "params": [ 324 { 325 "type": "TSTypeParameter", 326 "name": { 327 "type": "Identifier", 328 "name": "T", 329 "loc": { 330 "start": { 331 "line": 19, 332 "column": 32 333 }, 334 "end": { 335 "line": 19, 336 "column": 33 337 } 338 } 339 }, 340 "loc": { 341 "start": { 342 "line": 19, 343 "column": 32 344 }, 345 "end": { 346 "line": 19, 347 "column": 34 348 } 349 } 350 } 351 ], 352 "loc": { 353 "start": { 354 "line": 19, 355 "column": 31 356 }, 357 "end": { 358 "line": 19, 359 "column": 34 360 } 361 } 362 }, 363 "returnType": { 364 "type": "TSTypeLiteral", 365 "members": [], 366 "loc": { 367 "start": { 368 "line": 19, 369 "column": 40 370 }, 371 "end": { 372 "line": 19, 373 "column": 42 374 } 375 } 376 }, 377 "loc": { 378 "start": { 379 "line": 19, 380 "column": 31 381 }, 382 "end": { 383 "line": 19, 384 "column": 42 385 } 386 } 387 } 388 ], 389 "loc": { 390 "start": { 391 "line": 19, 392 "column": 30 393 }, 394 "end": { 395 "line": 19, 396 "column": 43 397 } 398 } 399 }, 400 "arguments": [], 401 "loc": { 402 "start": { 403 "line": 19, 404 "column": 25 405 }, 406 "end": { 407 "line": 19, 408 "column": 45 409 } 410 } 411 }, 412 "loc": { 413 "start": { 414 "line": 19, 415 "column": 5 416 }, 417 "end": { 418 "line": 19, 419 "column": 45 420 } 421 } 422 } 423 ], 424 "kind": "var", 425 "loc": { 426 "start": { 427 "line": 19, 428 "column": 1 429 }, 430 "end": { 431 "line": 19, 432 "column": 45 433 } 434 } 435 } 436 ], 437 "loc": { 438 "start": { 439 "line": 1, 440 "column": 1 441 }, 442 "end": { 443 "line": 21, 444 "column": 1 445 } 446 } 447} 448