1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "TSInterfaceDeclaration", 6 "body": { 7 "type": "TSInterfaceBody", 8 "body": [], 9 "loc": { 10 "start": { 11 "line": 17, 12 "column": 12 13 }, 14 "end": { 15 "line": 17, 16 "column": 14 17 } 18 } 19 }, 20 "id": { 21 "type": "Identifier", 22 "name": "I", 23 "loc": { 24 "start": { 25 "line": 17, 26 "column": 11 27 }, 28 "end": { 29 "line": 17, 30 "column": 12 31 } 32 } 33 }, 34 "extends": [], 35 "loc": { 36 "start": { 37 "line": 17, 38 "column": 1 39 }, 40 "end": { 41 "line": 17, 42 "column": 14 43 } 44 } 45 }, 46 { 47 "type": "ClassDeclaration", 48 "definition": { 49 "id": { 50 "type": "Identifier", 51 "name": "C", 52 "loc": { 53 "start": { 54 "line": 18, 55 "column": 7 56 }, 57 "end": { 58 "line": 18, 59 "column": 8 60 } 61 } 62 }, 63 "typeParameters": { 64 "type": "TSTypeParameterDeclaration", 65 "params": [ 66 { 67 "type": "TSTypeParameter", 68 "name": { 69 "type": "Identifier", 70 "name": "T", 71 "loc": { 72 "start": { 73 "line": 18, 74 "column": 9 75 }, 76 "end": { 77 "line": 18, 78 "column": 10 79 } 80 } 81 }, 82 "loc": { 83 "start": { 84 "line": 18, 85 "column": 9 86 }, 87 "end": { 88 "line": 18, 89 "column": 11 90 } 91 } 92 } 93 ], 94 "loc": { 95 "start": { 96 "line": 18, 97 "column": 8 98 }, 99 "end": { 100 "line": 18, 101 "column": 11 102 } 103 } 104 }, 105 "superClass": null, 106 "implements": [ 107 { 108 "type": "TSClassImplements", 109 "expression": { 110 "type": "Identifier", 111 "name": "I", 112 "loc": { 113 "start": { 114 "line": 18, 115 "column": 23 116 }, 117 "end": { 118 "line": 18, 119 "column": 24 120 } 121 } 122 }, 123 "loc": { 124 "start": { 125 "line": 18, 126 "column": 23 127 }, 128 "end": { 129 "line": 18, 130 "column": 26 131 } 132 } 133 } 134 ], 135 "constructor": { 136 "type": "MethodDefinition", 137 "key": { 138 "type": "Identifier", 139 "name": "constructor", 140 "loc": { 141 "start": { 142 "line": 1, 143 "column": 1 144 }, 145 "end": { 146 "line": 1, 147 "column": 1 148 } 149 } 150 }, 151 "kind": "constructor", 152 "static": false, 153 "optional": false, 154 "computed": false, 155 "value": { 156 "type": "FunctionExpression", 157 "function": { 158 "type": "ScriptFunction", 159 "id": null, 160 "generator": false, 161 "async": false, 162 "expression": false, 163 "params": [], 164 "body": { 165 "type": "BlockStatement", 166 "statements": [], 167 "loc": { 168 "start": { 169 "line": 1, 170 "column": 1 171 }, 172 "end": { 173 "line": 1, 174 "column": 1 175 } 176 } 177 }, 178 "loc": { 179 "start": { 180 "line": 1, 181 "column": 1 182 }, 183 "end": { 184 "line": 1, 185 "column": 1 186 } 187 } 188 }, 189 "loc": { 190 "start": { 191 "line": 1, 192 "column": 1 193 }, 194 "end": { 195 "line": 1, 196 "column": 1 197 } 198 } 199 }, 200 "overloads": [], 201 "decorators": [], 202 "loc": { 203 "start": { 204 "line": 18, 205 "column": 1 206 }, 207 "end": { 208 "line": 20, 209 "column": 2 210 } 211 } 212 }, 213 "body": [], 214 "indexSignatures": [ 215 { 216 "type": "TSIndexSignature", 217 "parameters": { 218 "type": "Identifier", 219 "name": "a", 220 "typeAnnotation": { 221 "type": "TSNumberKeyword", 222 "loc": { 223 "start": { 224 "line": 19, 225 "column": 6 226 }, 227 "end": { 228 "line": 19, 229 "column": 12 230 } 231 } 232 }, 233 "loc": { 234 "start": { 235 "line": 19, 236 "column": 4 237 }, 238 "end": { 239 "line": 19, 240 "column": 5 241 } 242 } 243 }, 244 "typeAnnotation": { 245 "type": "TSTypeReference", 246 "typeName": { 247 "type": "Identifier", 248 "name": "T", 249 "loc": { 250 "start": { 251 "line": 19, 252 "column": 14 253 }, 254 "end": { 255 "line": 19, 256 "column": 15 257 } 258 } 259 }, 260 "loc": { 261 "start": { 262 "line": 19, 263 "column": 14 264 }, 265 "end": { 266 "line": 19, 267 "column": 15 268 } 269 } 270 }, 271 "readonly": false, 272 "loc": { 273 "start": { 274 "line": 19, 275 "column": 4 276 }, 277 "end": { 278 "line": 19, 279 "column": 15 280 } 281 } 282 } 283 ], 284 "loc": { 285 "start": { 286 "line": 18, 287 "column": 25 288 }, 289 "end": { 290 "line": 20, 291 "column": 2 292 } 293 } 294 }, 295 "decorators": [], 296 "loc": { 297 "start": { 298 "line": 18, 299 "column": 1 300 }, 301 "end": { 302 "line": 20, 303 "column": 2 304 } 305 } 306 }, 307 { 308 "type": "ClassDeclaration", 309 "definition": { 310 "id": { 311 "type": "Identifier", 312 "name": "D", 313 "loc": { 314 "start": { 315 "line": 21, 316 "column": 7 317 }, 318 "end": { 319 "line": 21, 320 "column": 8 321 } 322 } 323 }, 324 "typeParameters": { 325 "type": "TSTypeParameterDeclaration", 326 "params": [ 327 { 328 "type": "TSTypeParameter", 329 "name": { 330 "type": "Identifier", 331 "name": "T", 332 "loc": { 333 "start": { 334 "line": 21, 335 "column": 9 336 }, 337 "end": { 338 "line": 21, 339 "column": 10 340 } 341 } 342 }, 343 "loc": { 344 "start": { 345 "line": 21, 346 "column": 9 347 }, 348 "end": { 349 "line": 21, 350 "column": 11 351 } 352 } 353 } 354 ], 355 "loc": { 356 "start": { 357 "line": 21, 358 "column": 8 359 }, 360 "end": { 361 "line": 21, 362 "column": 11 363 } 364 } 365 }, 366 "superClass": { 367 "type": "Identifier", 368 "name": "C", 369 "loc": { 370 "start": { 371 "line": 21, 372 "column": 20 373 }, 374 "end": { 375 "line": 21, 376 "column": 21 377 } 378 } 379 }, 380 "superTypeParameters": { 381 "type": "TSTypeParameterInstantiation", 382 "params": [ 383 { 384 "type": "TSTypeReference", 385 "typeName": { 386 "type": "Identifier", 387 "name": "T", 388 "loc": { 389 "start": { 390 "line": 21, 391 "column": 22 392 }, 393 "end": { 394 "line": 21, 395 "column": 23 396 } 397 } 398 }, 399 "loc": { 400 "start": { 401 "line": 21, 402 "column": 22 403 }, 404 "end": { 405 "line": 21, 406 "column": 23 407 } 408 } 409 } 410 ], 411 "loc": { 412 "start": { 413 "line": 21, 414 "column": 21 415 }, 416 "end": { 417 "line": 21, 418 "column": 24 419 } 420 } 421 }, 422 "implements": [], 423 "constructor": { 424 "type": "MethodDefinition", 425 "key": { 426 "type": "Identifier", 427 "name": "constructor", 428 "loc": { 429 "start": { 430 "line": 1, 431 "column": 1 432 }, 433 "end": { 434 "line": 1, 435 "column": 1 436 } 437 } 438 }, 439 "kind": "constructor", 440 "static": false, 441 "optional": false, 442 "computed": false, 443 "value": { 444 "type": "FunctionExpression", 445 "function": { 446 "type": "ScriptFunction", 447 "id": null, 448 "generator": false, 449 "async": false, 450 "expression": false, 451 "params": [ 452 { 453 "type": "RestElement", 454 "argument": { 455 "type": "Identifier", 456 "name": "args", 457 "loc": { 458 "start": { 459 "line": 1, 460 "column": 1 461 }, 462 "end": { 463 "line": 1, 464 "column": 1 465 } 466 } 467 }, 468 "loc": { 469 "start": { 470 "line": 1, 471 "column": 1 472 }, 473 "end": { 474 "line": 1, 475 "column": 1 476 } 477 } 478 } 479 ], 480 "body": { 481 "type": "BlockStatement", 482 "statements": [ 483 { 484 "type": "ExpressionStatement", 485 "expression": { 486 "type": "CallExpression", 487 "callee": { 488 "type": "Super", 489 "loc": { 490 "start": { 491 "line": 1, 492 "column": 1 493 }, 494 "end": { 495 "line": 1, 496 "column": 1 497 } 498 } 499 }, 500 "arguments": [ 501 { 502 "type": "SpreadElement", 503 "argument": { 504 "type": "Identifier", 505 "name": "args", 506 "loc": { 507 "start": { 508 "line": 1, 509 "column": 1 510 }, 511 "end": { 512 "line": 1, 513 "column": 1 514 } 515 } 516 }, 517 "loc": { 518 "start": { 519 "line": 1, 520 "column": 1 521 }, 522 "end": { 523 "line": 1, 524 "column": 1 525 } 526 } 527 } 528 ], 529 "optional": false, 530 "loc": { 531 "start": { 532 "line": 1, 533 "column": 1 534 }, 535 "end": { 536 "line": 1, 537 "column": 1 538 } 539 } 540 }, 541 "loc": { 542 "start": { 543 "line": 1, 544 "column": 1 545 }, 546 "end": { 547 "line": 1, 548 "column": 1 549 } 550 } 551 } 552 ], 553 "loc": { 554 "start": { 555 "line": 1, 556 "column": 1 557 }, 558 "end": { 559 "line": 1, 560 "column": 1 561 } 562 } 563 }, 564 "loc": { 565 "start": { 566 "line": 1, 567 "column": 1 568 }, 569 "end": { 570 "line": 1, 571 "column": 1 572 } 573 } 574 }, 575 "loc": { 576 "start": { 577 "line": 1, 578 "column": 1 579 }, 580 "end": { 581 "line": 1, 582 "column": 1 583 } 584 } 585 }, 586 "overloads": [], 587 "decorators": [], 588 "loc": { 589 "start": { 590 "line": 21, 591 "column": 1 592 }, 593 "end": { 594 "line": 22, 595 "column": 2 596 } 597 } 598 }, 599 "body": [], 600 "indexSignatures": [], 601 "loc": { 602 "start": { 603 "line": 21, 604 "column": 25 605 }, 606 "end": { 607 "line": 22, 608 "column": 2 609 } 610 } 611 }, 612 "decorators": [], 613 "loc": { 614 "start": { 615 "line": 21, 616 "column": 1 617 }, 618 "end": { 619 "line": 22, 620 "column": 2 621 } 622 } 623 } 624 ], 625 "loc": { 626 "start": { 627 "line": 1, 628 "column": 1 629 }, 630 "end": { 631 "line": 23, 632 "column": 1 633 } 634 } 635} 636