1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "FunctionDeclaration", 6 "function": { 7 "type": "ScriptFunction", 8 "id": { 9 "type": "Identifier", 10 "name": "A", 11 "loc": { 12 "start": { 13 "line": 17, 14 "column": 10 15 }, 16 "end": { 17 "line": 17, 18 "column": 11 19 } 20 } 21 }, 22 "generator": false, 23 "async": false, 24 "expression": false, 25 "params": [ 26 { 27 "type": "Identifier", 28 "name": "value", 29 "typeAnnotation": { 30 "type": "TSTypeReference", 31 "typeName": { 32 "type": "Identifier", 33 "name": "T", 34 "loc": { 35 "start": { 36 "line": 17, 37 "column": 22 38 }, 39 "end": { 40 "line": 17, 41 "column": 23 42 } 43 } 44 }, 45 "loc": { 46 "start": { 47 "line": 17, 48 "column": 22 49 }, 50 "end": { 51 "line": 17, 52 "column": 23 53 } 54 } 55 }, 56 "loc": { 57 "start": { 58 "line": 17, 59 "column": 15 60 }, 61 "end": { 62 "line": 17, 63 "column": 20 64 } 65 } 66 } 67 ], 68 "typeParameters": { 69 "type": "TSTypeParameterDeclaration", 70 "params": [ 71 { 72 "type": "TSTypeParameter", 73 "name": { 74 "type": "Identifier", 75 "name": "T", 76 "loc": { 77 "start": { 78 "line": 17, 79 "column": 12 80 }, 81 "end": { 82 "line": 17, 83 "column": 13 84 } 85 } 86 }, 87 "in": false, 88 "out": false, 89 "loc": { 90 "start": { 91 "line": 17, 92 "column": 12 93 }, 94 "end": { 95 "line": 17, 96 "column": 14 97 } 98 } 99 } 100 ], 101 "loc": { 102 "start": { 103 "line": 17, 104 "column": 11 105 }, 106 "end": { 107 "line": 17, 108 "column": 14 109 } 110 } 111 }, 112 "body": { 113 "type": "BlockStatement", 114 "statements": [ 115 { 116 "type": "ExpressionStatement", 117 "expression": { 118 "type": "CallExpression", 119 "callee": { 120 "type": "Identifier", 121 "name": "print", 122 "loc": { 123 "start": { 124 "line": 18, 125 "column": 5 126 }, 127 "end": { 128 "line": 18, 129 "column": 10 130 } 131 } 132 }, 133 "arguments": [ 134 { 135 "type": "Identifier", 136 "name": "value", 137 "loc": { 138 "start": { 139 "line": 18, 140 "column": 11 141 }, 142 "end": { 143 "line": 18, 144 "column": 16 145 } 146 } 147 } 148 ], 149 "optional": false, 150 "loc": { 151 "start": { 152 "line": 18, 153 "column": 5 154 }, 155 "end": { 156 "line": 18, 157 "column": 17 158 } 159 } 160 }, 161 "loc": { 162 "start": { 163 "line": 18, 164 "column": 5 165 }, 166 "end": { 167 "line": 18, 168 "column": 17 169 } 170 } 171 } 172 ], 173 "loc": { 174 "start": { 175 "line": 17, 176 "column": 25 177 }, 178 "end": { 179 "line": 19, 180 "column": 2 181 } 182 } 183 }, 184 "loc": { 185 "start": { 186 "line": 17, 187 "column": 1 188 }, 189 "end": { 190 "line": 19, 191 "column": 2 192 } 193 } 194 }, 195 "loc": { 196 "start": { 197 "line": 17, 198 "column": 1 199 }, 200 "end": { 201 "line": 19, 202 "column": 2 203 } 204 } 205 }, 206 { 207 "type": "ExpressionStatement", 208 "expression": { 209 "type": "LogicalExpression", 210 "operator": "&&", 211 "left": { 212 "type": "TypeArgumentsExpression", 213 "leftHandExpression": { 214 "type": "Identifier", 215 "name": "A", 216 "loc": { 217 "start": { 218 "line": 22, 219 "column": 1 220 }, 221 "end": { 222 "line": 22, 223 "column": 2 224 } 225 } 226 }, 227 "typeArguments": { 228 "type": "TSTypeParameterInstantiation", 229 "params": [ 230 { 231 "type": "TSStringKeyword", 232 "loc": { 233 "start": { 234 "line": 22, 235 "column": 3 236 }, 237 "end": { 238 "line": 22, 239 "column": 9 240 } 241 } 242 } 243 ], 244 "loc": { 245 "start": { 246 "line": 22, 247 "column": 2 248 }, 249 "end": { 250 "line": 22, 251 "column": 10 252 } 253 } 254 }, 255 "loc": { 256 "start": { 257 "line": 22, 258 "column": 1 259 }, 260 "end": { 261 "line": 22, 262 "column": 10 263 } 264 } 265 }, 266 "right": { 267 "type": "TypeArgumentsExpression", 268 "leftHandExpression": { 269 "type": "Identifier", 270 "name": "A", 271 "loc": { 272 "start": { 273 "line": 22, 274 "column": 14 275 }, 276 "end": { 277 "line": 22, 278 "column": 15 279 } 280 } 281 }, 282 "typeArguments": { 283 "type": "TSTypeParameterInstantiation", 284 "params": [ 285 { 286 "type": "TSNumberKeyword", 287 "loc": { 288 "start": { 289 "line": 22, 290 "column": 16 291 }, 292 "end": { 293 "line": 22, 294 "column": 22 295 } 296 } 297 } 298 ], 299 "loc": { 300 "start": { 301 "line": 22, 302 "column": 15 303 }, 304 "end": { 305 "line": 22, 306 "column": 23 307 } 308 } 309 }, 310 "loc": { 311 "start": { 312 "line": 22, 313 "column": 14 314 }, 315 "end": { 316 "line": 22, 317 "column": 23 318 } 319 } 320 }, 321 "loc": { 322 "start": { 323 "line": 22, 324 "column": 1 325 }, 326 "end": { 327 "line": 22, 328 "column": 23 329 } 330 } 331 }, 332 "loc": { 333 "start": { 334 "line": 22, 335 "column": 1 336 }, 337 "end": { 338 "line": 22, 339 "column": 23 340 } 341 } 342 }, 343 { 344 "type": "ExpressionStatement", 345 "expression": { 346 "type": "LogicalExpression", 347 "operator": "||", 348 "left": { 349 "type": "TypeArgumentsExpression", 350 "leftHandExpression": { 351 "type": "Identifier", 352 "name": "A", 353 "loc": { 354 "start": { 355 "line": 25, 356 "column": 1 357 }, 358 "end": { 359 "line": 25, 360 "column": 2 361 } 362 } 363 }, 364 "typeArguments": { 365 "type": "TSTypeParameterInstantiation", 366 "params": [ 367 { 368 "type": "TSStringKeyword", 369 "loc": { 370 "start": { 371 "line": 25, 372 "column": 3 373 }, 374 "end": { 375 "line": 25, 376 "column": 9 377 } 378 } 379 } 380 ], 381 "loc": { 382 "start": { 383 "line": 25, 384 "column": 2 385 }, 386 "end": { 387 "line": 25, 388 "column": 10 389 } 390 } 391 }, 392 "loc": { 393 "start": { 394 "line": 25, 395 "column": 1 396 }, 397 "end": { 398 "line": 25, 399 "column": 10 400 } 401 } 402 }, 403 "right": { 404 "type": "TypeArgumentsExpression", 405 "leftHandExpression": { 406 "type": "Identifier", 407 "name": "A", 408 "loc": { 409 "start": { 410 "line": 25, 411 "column": 14 412 }, 413 "end": { 414 "line": 25, 415 "column": 15 416 } 417 } 418 }, 419 "typeArguments": { 420 "type": "TSTypeParameterInstantiation", 421 "params": [ 422 { 423 "type": "TSNumberKeyword", 424 "loc": { 425 "start": { 426 "line": 25, 427 "column": 16 428 }, 429 "end": { 430 "line": 25, 431 "column": 22 432 } 433 } 434 } 435 ], 436 "loc": { 437 "start": { 438 "line": 25, 439 "column": 15 440 }, 441 "end": { 442 "line": 25, 443 "column": 23 444 } 445 } 446 }, 447 "loc": { 448 "start": { 449 "line": 25, 450 "column": 14 451 }, 452 "end": { 453 "line": 25, 454 "column": 23 455 } 456 } 457 }, 458 "loc": { 459 "start": { 460 "line": 25, 461 "column": 1 462 }, 463 "end": { 464 "line": 25, 465 "column": 23 466 } 467 } 468 }, 469 "loc": { 470 "start": { 471 "line": 25, 472 "column": 1 473 }, 474 "end": { 475 "line": 25, 476 "column": 23 477 } 478 } 479 }, 480 { 481 "type": "ExpressionStatement", 482 "expression": { 483 "type": "LogicalExpression", 484 "operator": "??", 485 "left": { 486 "type": "TypeArgumentsExpression", 487 "leftHandExpression": { 488 "type": "Identifier", 489 "name": "A", 490 "loc": { 491 "start": { 492 "line": 28, 493 "column": 1 494 }, 495 "end": { 496 "line": 28, 497 "column": 2 498 } 499 } 500 }, 501 "typeArguments": { 502 "type": "TSTypeParameterInstantiation", 503 "params": [ 504 { 505 "type": "TSStringKeyword", 506 "loc": { 507 "start": { 508 "line": 28, 509 "column": 3 510 }, 511 "end": { 512 "line": 28, 513 "column": 9 514 } 515 } 516 } 517 ], 518 "loc": { 519 "start": { 520 "line": 28, 521 "column": 2 522 }, 523 "end": { 524 "line": 28, 525 "column": 10 526 } 527 } 528 }, 529 "loc": { 530 "start": { 531 "line": 28, 532 "column": 1 533 }, 534 "end": { 535 "line": 28, 536 "column": 10 537 } 538 } 539 }, 540 "right": { 541 "type": "TypeArgumentsExpression", 542 "leftHandExpression": { 543 "type": "Identifier", 544 "name": "A", 545 "loc": { 546 "start": { 547 "line": 28, 548 "column": 14 549 }, 550 "end": { 551 "line": 28, 552 "column": 15 553 } 554 } 555 }, 556 "typeArguments": { 557 "type": "TSTypeParameterInstantiation", 558 "params": [ 559 { 560 "type": "TSNumberKeyword", 561 "loc": { 562 "start": { 563 "line": 28, 564 "column": 16 565 }, 566 "end": { 567 "line": 28, 568 "column": 22 569 } 570 } 571 } 572 ], 573 "loc": { 574 "start": { 575 "line": 28, 576 "column": 15 577 }, 578 "end": { 579 "line": 28, 580 "column": 23 581 } 582 } 583 }, 584 "loc": { 585 "start": { 586 "line": 28, 587 "column": 14 588 }, 589 "end": { 590 "line": 28, 591 "column": 23 592 } 593 } 594 }, 595 "loc": { 596 "start": { 597 "line": 28, 598 "column": 1 599 }, 600 "end": { 601 "line": 28, 602 "column": 23 603 } 604 } 605 }, 606 "loc": { 607 "start": { 608 "line": 28, 609 "column": 1 610 }, 611 "end": { 612 "line": 28, 613 "column": 23 614 } 615 } 616 }, 617 { 618 "type": "VariableDeclaration", 619 "declarations": [ 620 { 621 "type": "VariableDeclarator", 622 "id": { 623 "type": "Identifier", 624 "name": "d", 625 "loc": { 626 "start": { 627 "line": 31, 628 "column": 5 629 }, 630 "end": { 631 "line": 31, 632 "column": 6 633 } 634 } 635 }, 636 "init": { 637 "type": "TypeArgumentsExpression", 638 "leftHandExpression": { 639 "type": "Identifier", 640 "name": "A", 641 "loc": { 642 "start": { 643 "line": 31, 644 "column": 9 645 }, 646 "end": { 647 "line": 31, 648 "column": 10 649 } 650 } 651 }, 652 "typeArguments": { 653 "type": "TSTypeParameterInstantiation", 654 "params": [ 655 { 656 "type": "TSStringKeyword", 657 "loc": { 658 "start": { 659 "line": 31, 660 "column": 11 661 }, 662 "end": { 663 "line": 31, 664 "column": 17 665 } 666 } 667 } 668 ], 669 "loc": { 670 "start": { 671 "line": 31, 672 "column": 10 673 }, 674 "end": { 675 "line": 31, 676 "column": 18 677 } 678 } 679 }, 680 "loc": { 681 "start": { 682 "line": 31, 683 "column": 9 684 }, 685 "end": { 686 "line": 31, 687 "column": 18 688 } 689 } 690 }, 691 "loc": { 692 "start": { 693 "line": 31, 694 "column": 5 695 }, 696 "end": { 697 "line": 31, 698 "column": 18 699 } 700 } 701 }, 702 { 703 "type": "VariableDeclarator", 704 "id": { 705 "type": "Identifier", 706 "name": "e", 707 "loc": { 708 "start": { 709 "line": 31, 710 "column": 20 711 }, 712 "end": { 713 "line": 31, 714 "column": 21 715 } 716 } 717 }, 718 "init": { 719 "type": "TypeArgumentsExpression", 720 "leftHandExpression": { 721 "type": "Identifier", 722 "name": "A", 723 "loc": { 724 "start": { 725 "line": 31, 726 "column": 24 727 }, 728 "end": { 729 "line": 31, 730 "column": 25 731 } 732 } 733 }, 734 "typeArguments": { 735 "type": "TSTypeParameterInstantiation", 736 "params": [ 737 { 738 "type": "TSNumberKeyword", 739 "loc": { 740 "start": { 741 "line": 31, 742 "column": 26 743 }, 744 "end": { 745 "line": 31, 746 "column": 32 747 } 748 } 749 } 750 ], 751 "loc": { 752 "start": { 753 "line": 31, 754 "column": 25 755 }, 756 "end": { 757 "line": 31, 758 "column": 33 759 } 760 } 761 }, 762 "loc": { 763 "start": { 764 "line": 31, 765 "column": 24 766 }, 767 "end": { 768 "line": 31, 769 "column": 33 770 } 771 } 772 }, 773 "loc": { 774 "start": { 775 "line": 31, 776 "column": 20 777 }, 778 "end": { 779 "line": 31, 780 "column": 33 781 } 782 } 783 } 784 ], 785 "kind": "var", 786 "loc": { 787 "start": { 788 "line": 31, 789 "column": 1 790 }, 791 "end": { 792 "line": 31, 793 "column": 33 794 } 795 } 796 } 797 ], 798 "loc": { 799 "start": { 800 "line": 1, 801 "column": 1 802 }, 803 "end": { 804 "line": 31, 805 "column": 33 806 } 807 } 808} 809