1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "FunctionDeclaration", 6 "function": { 7 "type": "ScriptFunction", 8 "id": { 9 "type": "Identifier", 10 "name": "func1", 11 "loc": { 12 "start": { 13 "line": 17, 14 "column": 10 15 }, 16 "end": { 17 "line": 17, 18 "column": 15 19 } 20 } 21 }, 22 "generator": false, 23 "async": false, 24 "expression": false, 25 "params": [ 26 { 27 "type": "Identifier", 28 "name": "arg", 29 "typeAnnotation": { 30 "type": "TSTypeReference", 31 "typeName": { 32 "type": "Identifier", 33 "name": "Type", 34 "loc": { 35 "start": { 36 "line": 17, 37 "column": 59 38 }, 39 "end": { 40 "line": 17, 41 "column": 63 42 } 43 } 44 }, 45 "loc": { 46 "start": { 47 "line": 17, 48 "column": 59 49 }, 50 "end": { 51 "line": 17, 52 "column": 63 53 } 54 } 55 }, 56 "loc": { 57 "start": { 58 "line": 17, 59 "column": 54 60 }, 61 "end": { 62 "line": 17, 63 "column": 57 64 } 65 } 66 } 67 ], 68 "returnType": { 69 "type": "TSTypeReference", 70 "typeName": { 71 "type": "Identifier", 72 "name": "Type", 73 "loc": { 74 "start": { 75 "line": 17, 76 "column": 66 77 }, 78 "end": { 79 "line": 17, 80 "column": 70 81 } 82 } 83 }, 84 "loc": { 85 "start": { 86 "line": 17, 87 "column": 66 88 }, 89 "end": { 90 "line": 17, 91 "column": 70 92 } 93 } 94 }, 95 "typeParameters": { 96 "type": "TSTypeParameterDeclaration", 97 "params": [ 98 { 99 "type": "TSTypeParameter", 100 "name": { 101 "type": "Identifier", 102 "name": "Type", 103 "loc": { 104 "start": { 105 "line": 17, 106 "column": 16 107 }, 108 "end": { 109 "line": 17, 110 "column": 20 111 } 112 } 113 }, 114 "in": false, 115 "out": false, 116 "loc": { 117 "start": { 118 "line": 17, 119 "column": 16 120 }, 121 "end": { 122 "line": 17, 123 "column": 21 124 } 125 } 126 }, 127 { 128 "type": "TSTypeParameter", 129 "name": { 130 "type": "Identifier", 131 "name": "A", 132 "loc": { 133 "start": { 134 "line": 17, 135 "column": 22 136 }, 137 "end": { 138 "line": 17, 139 "column": 23 140 } 141 } 142 }, 143 "in": false, 144 "out": false, 145 "loc": { 146 "start": { 147 "line": 17, 148 "column": 22 149 }, 150 "end": { 151 "line": 17, 152 "column": 24 153 } 154 } 155 }, 156 { 157 "type": "TSTypeParameter", 158 "name": { 159 "type": "Identifier", 160 "name": "B", 161 "loc": { 162 "start": { 163 "line": 17, 164 "column": 25 165 }, 166 "end": { 167 "line": 17, 168 "column": 26 169 } 170 } 171 }, 172 "constraint": { 173 "type": "TSTypeOperator", 174 "operator": "readonly", 175 "typeAnnotation": { 176 "type": "TSArrayType", 177 "elementType": { 178 "type": "TSNumberKeyword", 179 "loc": { 180 "start": { 181 "line": 17, 182 "column": 44 183 }, 184 "end": { 185 "line": 17, 186 "column": 50 187 } 188 } 189 }, 190 "loc": { 191 "start": { 192 "line": 17, 193 "column": 44 194 }, 195 "end": { 196 "line": 17, 197 "column": 52 198 } 199 } 200 }, 201 "loc": { 202 "start": { 203 "line": 17, 204 "column": 35 205 }, 206 "end": { 207 "line": 17, 208 "column": 52 209 } 210 } 211 }, 212 "in": false, 213 "out": false, 214 "loc": { 215 "start": { 216 "line": 17, 217 "column": 25 218 }, 219 "end": { 220 "line": 17, 221 "column": 53 222 } 223 } 224 } 225 ], 226 "loc": { 227 "start": { 228 "line": 17, 229 "column": 15 230 }, 231 "end": { 232 "line": 17, 233 "column": 53 234 } 235 } 236 }, 237 "body": { 238 "type": "BlockStatement", 239 "statements": [ 240 { 241 "type": "ReturnStatement", 242 "argument": { 243 "type": "Identifier", 244 "name": "arg", 245 "loc": { 246 "start": { 247 "line": 18, 248 "column": 12 249 }, 250 "end": { 251 "line": 18, 252 "column": 15 253 } 254 } 255 }, 256 "loc": { 257 "start": { 258 "line": 18, 259 "column": 5 260 }, 261 "end": { 262 "line": 18, 263 "column": 16 264 } 265 } 266 } 267 ], 268 "loc": { 269 "start": { 270 "line": 17, 271 "column": 71 272 }, 273 "end": { 274 "line": 19, 275 "column": 2 276 } 277 } 278 }, 279 "loc": { 280 "start": { 281 "line": 17, 282 "column": 1 283 }, 284 "end": { 285 "line": 19, 286 "column": 2 287 } 288 } 289 }, 290 "loc": { 291 "start": { 292 "line": 17, 293 "column": 1 294 }, 295 "end": { 296 "line": 19, 297 "column": 2 298 } 299 } 300 }, 301 { 302 "type": "FunctionDeclaration", 303 "function": { 304 "type": "ScriptFunction", 305 "id": { 306 "type": "Identifier", 307 "name": "func2", 308 "loc": { 309 "start": { 310 "line": 21, 311 "column": 10 312 }, 313 "end": { 314 "line": 21, 315 "column": 15 316 } 317 } 318 }, 319 "generator": false, 320 "async": false, 321 "expression": false, 322 "params": [], 323 "typeParameters": { 324 "type": "TSTypeParameterDeclaration", 325 "params": [ 326 { 327 "type": "TSTypeParameter", 328 "name": { 329 "type": "Identifier", 330 "name": "A", 331 "loc": { 332 "start": { 333 "line": 21, 334 "column": 16 335 }, 336 "end": { 337 "line": 21, 338 "column": 17 339 } 340 } 341 }, 342 "constraint": { 343 "type": "TSTypeLiteral", 344 "members": [ 345 { 346 "type": "TSPropertySignature", 347 "computed": false, 348 "optional": false, 349 "readonly": false, 350 "key": { 351 "type": "Identifier", 352 "name": "a", 353 "loc": { 354 "start": { 355 "line": 21, 356 "column": 28 357 }, 358 "end": { 359 "line": 21, 360 "column": 29 361 } 362 } 363 }, 364 "typeAnnotation": { 365 "type": "TSNumberKeyword", 366 "loc": { 367 "start": { 368 "line": 21, 369 "column": 31 370 }, 371 "end": { 372 "line": 21, 373 "column": 37 374 } 375 } 376 }, 377 "loc": { 378 "start": { 379 "line": 21, 380 "column": 28 381 }, 382 "end": { 383 "line": 21, 384 "column": 38 385 } 386 } 387 }, 388 { 389 "type": "TSPropertySignature", 390 "computed": false, 391 "optional": false, 392 "readonly": false, 393 "key": { 394 "type": "Identifier", 395 "name": "b", 396 "loc": { 397 "start": { 398 "line": 21, 399 "column": 39 400 }, 401 "end": { 402 "line": 21, 403 "column": 40 404 } 405 } 406 }, 407 "typeAnnotation": { 408 "type": "TSStringKeyword", 409 "loc": { 410 "start": { 411 "line": 21, 412 "column": 42 413 }, 414 "end": { 415 "line": 21, 416 "column": 48 417 } 418 } 419 }, 420 "loc": { 421 "start": { 422 "line": 21, 423 "column": 39 424 }, 425 "end": { 426 "line": 21, 427 "column": 50 428 } 429 } 430 } 431 ], 432 "loc": { 433 "start": { 434 "line": 21, 435 "column": 26 436 }, 437 "end": { 438 "line": 21, 439 "column": 50 440 } 441 } 442 }, 443 "in": false, 444 "out": false, 445 "loc": { 446 "start": { 447 "line": 21, 448 "column": 16 449 }, 450 "end": { 451 "line": 21, 452 "column": 51 453 } 454 } 455 } 456 ], 457 "loc": { 458 "start": { 459 "line": 21, 460 "column": 15 461 }, 462 "end": { 463 "line": 21, 464 "column": 51 465 } 466 } 467 }, 468 "body": { 469 "type": "BlockStatement", 470 "statements": [], 471 "loc": { 472 "start": { 473 "line": 21, 474 "column": 54 475 }, 476 "end": { 477 "line": 21, 478 "column": 57 479 } 480 } 481 }, 482 "loc": { 483 "start": { 484 "line": 21, 485 "column": 1 486 }, 487 "end": { 488 "line": 21, 489 "column": 57 490 } 491 } 492 }, 493 "loc": { 494 "start": { 495 "line": 21, 496 "column": 1 497 }, 498 "end": { 499 "line": 21, 500 "column": 57 501 } 502 } 503 }, 504 { 505 "type": "FunctionDeclaration", 506 "function": { 507 "type": "ScriptFunction", 508 "id": { 509 "type": "Identifier", 510 "name": "func3", 511 "loc": { 512 "start": { 513 "line": 23, 514 "column": 10 515 }, 516 "end": { 517 "line": 23, 518 "column": 15 519 } 520 } 521 }, 522 "generator": false, 523 "async": false, 524 "expression": false, 525 "params": [ 526 { 527 "type": "Identifier", 528 "name": "a", 529 "typeAnnotation": { 530 "type": "TSTypeReference", 531 "typeName": { 532 "type": "Identifier", 533 "name": "A", 534 "loc": { 535 "start": { 536 "line": 23, 537 "column": 90 538 }, 539 "end": { 540 "line": 23, 541 "column": 91 542 } 543 } 544 }, 545 "loc": { 546 "start": { 547 "line": 23, 548 "column": 90 549 }, 550 "end": { 551 "line": 23, 552 "column": 91 553 } 554 } 555 }, 556 "loc": { 557 "start": { 558 "line": 23, 559 "column": 87 560 }, 561 "end": { 562 "line": 23, 563 "column": 88 564 } 565 } 566 }, 567 { 568 "type": "Identifier", 569 "name": "b", 570 "typeAnnotation": { 571 "type": "TSStringKeyword", 572 "loc": { 573 "start": { 574 "line": 23, 575 "column": 96 576 }, 577 "end": { 578 "line": 23, 579 "column": 102 580 } 581 } 582 }, 583 "loc": { 584 "start": { 585 "line": 23, 586 "column": 93 587 }, 588 "end": { 589 "line": 23, 590 "column": 94 591 } 592 } 593 } 594 ], 595 "returnType": { 596 "type": "TSUnionType", 597 "types": [ 598 { 599 "type": "TSNumberKeyword", 600 "loc": { 601 "start": { 602 "line": 23, 603 "column": 105 604 }, 605 "end": { 606 "line": 23, 607 "column": 111 608 } 609 } 610 }, 611 { 612 "type": "TSBooleanKeyword", 613 "loc": { 614 "start": { 615 "line": 23, 616 "column": 114 617 }, 618 "end": { 619 "line": 23, 620 "column": 121 621 } 622 } 623 } 624 ], 625 "loc": { 626 "start": { 627 "line": 23, 628 "column": 105 629 }, 630 "end": { 631 "line": 23, 632 "column": 121 633 } 634 } 635 }, 636 "typeParameters": { 637 "type": "TSTypeParameterDeclaration", 638 "params": [ 639 { 640 "type": "TSTypeParameter", 641 "name": { 642 "type": "Identifier", 643 "name": "A", 644 "loc": { 645 "start": { 646 "line": 23, 647 "column": 16 648 }, 649 "end": { 650 "line": 23, 651 "column": 17 652 } 653 } 654 }, 655 "constraint": { 656 "type": "TSTypeOperator", 657 "operator": "keyof", 658 "typeAnnotation": { 659 "type": "TSTypeLiteral", 660 "members": [ 661 { 662 "type": "TSPropertySignature", 663 "computed": false, 664 "optional": false, 665 "readonly": false, 666 "key": { 667 "type": "Identifier", 668 "name": "a", 669 "loc": { 670 "start": { 671 "line": 23, 672 "column": 34 673 }, 674 "end": { 675 "line": 23, 676 "column": 35 677 } 678 } 679 }, 680 "typeAnnotation": { 681 "type": "TSTypeLiteral", 682 "members": [ 683 { 684 "type": "TSPropertySignature", 685 "computed": false, 686 "optional": false, 687 "readonly": false, 688 "key": { 689 "type": "Identifier", 690 "name": "b", 691 "loc": { 692 "start": { 693 "line": 23, 694 "column": 39 695 }, 696 "end": { 697 "line": 23, 698 "column": 40 699 } 700 } 701 }, 702 "typeAnnotation": { 703 "type": "TSNumberKeyword", 704 "loc": { 705 "start": { 706 "line": 23, 707 "column": 42 708 }, 709 "end": { 710 "line": 23, 711 "column": 48 712 } 713 } 714 }, 715 "loc": { 716 "start": { 717 "line": 23, 718 "column": 39 719 }, 720 "end": { 721 "line": 23, 722 "column": 49 723 } 724 } 725 }, 726 { 727 "type": "TSPropertySignature", 728 "computed": false, 729 "optional": false, 730 "readonly": false, 731 "key": { 732 "type": "Identifier", 733 "name": "c", 734 "loc": { 735 "start": { 736 "line": 23, 737 "column": 50 738 }, 739 "end": { 740 "line": 23, 741 "column": 51 742 } 743 } 744 }, 745 "typeAnnotation": { 746 "type": "TSBooleanKeyword", 747 "loc": { 748 "start": { 749 "line": 23, 750 "column": 53 751 }, 752 "end": { 753 "line": 23, 754 "column": 60 755 } 756 } 757 }, 758 "loc": { 759 "start": { 760 "line": 23, 761 "column": 50 762 }, 763 "end": { 764 "line": 23, 765 "column": 62 766 } 767 } 768 } 769 ], 770 "loc": { 771 "start": { 772 "line": 23, 773 "column": 37 774 }, 775 "end": { 776 "line": 23, 777 "column": 62 778 } 779 } 780 }, 781 "loc": { 782 "start": { 783 "line": 23, 784 "column": 34 785 }, 786 "end": { 787 "line": 23, 788 "column": 63 789 } 790 } 791 }, 792 { 793 "type": "TSPropertySignature", 794 "computed": false, 795 "optional": false, 796 "readonly": false, 797 "key": { 798 "type": "Identifier", 799 "name": "b", 800 "loc": { 801 "start": { 802 "line": 23, 803 "column": 64 804 }, 805 "end": { 806 "line": 23, 807 "column": 65 808 } 809 } 810 }, 811 "typeAnnotation": { 812 "type": "TSTupleType", 813 "elementTypes": [ 814 { 815 "type": "TSNumberKeyword", 816 "loc": { 817 "start": { 818 "line": 23, 819 "column": 68 820 }, 821 "end": { 822 "line": 23, 823 "column": 74 824 } 825 } 826 }, 827 { 828 "type": "TSStringKeyword", 829 "loc": { 830 "start": { 831 "line": 23, 832 "column": 76 833 }, 834 "end": { 835 "line": 23, 836 "column": 82 837 } 838 } 839 } 840 ], 841 "loc": { 842 "start": { 843 "line": 23, 844 "column": 67 845 }, 846 "end": { 847 "line": 23, 848 "column": 83 849 } 850 } 851 }, 852 "loc": { 853 "start": { 854 "line": 23, 855 "column": 64 856 }, 857 "end": { 858 "line": 23, 859 "column": 85 860 } 861 } 862 } 863 ], 864 "loc": { 865 "start": { 866 "line": 23, 867 "column": 32 868 }, 869 "end": { 870 "line": 23, 871 "column": 85 872 } 873 } 874 }, 875 "loc": { 876 "start": { 877 "line": 23, 878 "column": 26 879 }, 880 "end": { 881 "line": 23, 882 "column": 85 883 } 884 } 885 }, 886 "in": false, 887 "out": false, 888 "loc": { 889 "start": { 890 "line": 23, 891 "column": 16 892 }, 893 "end": { 894 "line": 23, 895 "column": 86 896 } 897 } 898 } 899 ], 900 "loc": { 901 "start": { 902 "line": 23, 903 "column": 15 904 }, 905 "end": { 906 "line": 23, 907 "column": 86 908 } 909 } 910 }, 911 "body": { 912 "type": "BlockStatement", 913 "statements": [ 914 { 915 "type": "ReturnStatement", 916 "argument": { 917 "type": "BooleanLiteral", 918 "value": true, 919 "loc": { 920 "start": { 921 "line": 24, 922 "column": 12 923 }, 924 "end": { 925 "line": 24, 926 "column": 16 927 } 928 } 929 }, 930 "loc": { 931 "start": { 932 "line": 24, 933 "column": 5 934 }, 935 "end": { 936 "line": 24, 937 "column": 17 938 } 939 } 940 } 941 ], 942 "loc": { 943 "start": { 944 "line": 23, 945 "column": 122 946 }, 947 "end": { 948 "line": 25, 949 "column": 2 950 } 951 } 952 }, 953 "loc": { 954 "start": { 955 "line": 23, 956 "column": 1 957 }, 958 "end": { 959 "line": 25, 960 "column": 2 961 } 962 } 963 }, 964 "loc": { 965 "start": { 966 "line": 23, 967 "column": 1 968 }, 969 "end": { 970 "line": 25, 971 "column": 2 972 } 973 } 974 }, 975 { 976 "type": "TSTypeAliasDeclaration", 977 "id": { 978 "type": "Identifier", 979 "name": "PromiseConstructorLike", 980 "loc": { 981 "start": { 982 "line": 27, 983 "column": 14 984 }, 985 "end": { 986 "line": 27, 987 "column": 36 988 } 989 } 990 }, 991 "typeAnnotation": { 992 "type": "TSConstructorType", 993 "params": [ 994 { 995 "type": "Identifier", 996 "name": "executor", 997 "typeAnnotation": { 998 "type": "TSFunctionType", 999 "params": [ 1000 { 1001 "type": "Identifier", 1002 "name": "resolve", 1003 "typeAnnotation": { 1004 "type": "TSFunctionType", 1005 "params": [ 1006 { 1007 "type": "Identifier", 1008 "name": "value", 1009 "typeAnnotation": { 1010 "type": "TSUnionType", 1011 "types": [ 1012 { 1013 "type": "TSTypeReference", 1014 "typeName": { 1015 "type": "Identifier", 1016 "name": "T", 1017 "loc": { 1018 "start": { 1019 "line": 27, 1020 "column": 75 1021 }, 1022 "end": { 1023 "line": 27, 1024 "column": 76 1025 } 1026 } 1027 }, 1028 "loc": { 1029 "start": { 1030 "line": 27, 1031 "column": 75 1032 }, 1033 "end": { 1034 "line": 27, 1035 "column": 76 1036 } 1037 } 1038 }, 1039 { 1040 "type": "TSTypeReference", 1041 "typeName": { 1042 "type": "Identifier", 1043 "name": "PromiseLike", 1044 "loc": { 1045 "start": { 1046 "line": 27, 1047 "column": 79 1048 }, 1049 "end": { 1050 "line": 27, 1051 "column": 90 1052 } 1053 } 1054 }, 1055 "typeParameters": { 1056 "type": "TSTypeParameterInstantiation", 1057 "params": [ 1058 { 1059 "type": "TSTypeReference", 1060 "typeName": { 1061 "type": "Identifier", 1062 "name": "T", 1063 "loc": { 1064 "start": { 1065 "line": 27, 1066 "column": 91 1067 }, 1068 "end": { 1069 "line": 27, 1070 "column": 92 1071 } 1072 } 1073 }, 1074 "loc": { 1075 "start": { 1076 "line": 27, 1077 "column": 91 1078 }, 1079 "end": { 1080 "line": 27, 1081 "column": 92 1082 } 1083 } 1084 } 1085 ], 1086 "loc": { 1087 "start": { 1088 "line": 27, 1089 "column": 90 1090 }, 1091 "end": { 1092 "line": 27, 1093 "column": 93 1094 } 1095 } 1096 }, 1097 "loc": { 1098 "start": { 1099 "line": 27, 1100 "column": 79 1101 }, 1102 "end": { 1103 "line": 27, 1104 "column": 90 1105 } 1106 } 1107 } 1108 ], 1109 "loc": { 1110 "start": { 1111 "line": 27, 1112 "column": 75 1113 }, 1114 "end": { 1115 "line": 27, 1116 "column": 90 1117 } 1118 } 1119 }, 1120 "loc": { 1121 "start": { 1122 "line": 27, 1123 "column": 68 1124 }, 1125 "end": { 1126 "line": 27, 1127 "column": 73 1128 } 1129 } 1130 } 1131 ], 1132 "returnType": { 1133 "type": "TSVoidKeyword", 1134 "loc": { 1135 "start": { 1136 "line": 27, 1137 "column": 98 1138 }, 1139 "end": { 1140 "line": 27, 1141 "column": 102 1142 } 1143 } 1144 }, 1145 "loc": { 1146 "start": { 1147 "line": 27, 1148 "column": 67 1149 }, 1150 "end": { 1151 "line": 27, 1152 "column": 102 1153 } 1154 } 1155 }, 1156 "loc": { 1157 "start": { 1158 "line": 27, 1159 "column": 58 1160 }, 1161 "end": { 1162 "line": 27, 1163 "column": 65 1164 } 1165 } 1166 }, 1167 { 1168 "type": "Identifier", 1169 "name": "reject", 1170 "typeAnnotation": { 1171 "type": "TSFunctionType", 1172 "params": [ 1173 { 1174 "type": "Identifier", 1175 "name": "reason", 1176 "typeAnnotation": { 1177 "type": "TSAnyKeyword", 1178 "loc": { 1179 "start": { 1180 "line": 27, 1181 "column": 122 1182 }, 1183 "end": { 1184 "line": 27, 1185 "column": 125 1186 } 1187 } 1188 }, 1189 "optional": true, 1190 "loc": { 1191 "start": { 1192 "line": 27, 1193 "column": 113 1194 }, 1195 "end": { 1196 "line": 27, 1197 "column": 119 1198 } 1199 } 1200 } 1201 ], 1202 "returnType": { 1203 "type": "TSVoidKeyword", 1204 "loc": { 1205 "start": { 1206 "line": 27, 1207 "column": 130 1208 }, 1209 "end": { 1210 "line": 27, 1211 "column": 134 1212 } 1213 } 1214 }, 1215 "loc": { 1216 "start": { 1217 "line": 27, 1218 "column": 112 1219 }, 1220 "end": { 1221 "line": 27, 1222 "column": 134 1223 } 1224 } 1225 }, 1226 "loc": { 1227 "start": { 1228 "line": 27, 1229 "column": 104 1230 }, 1231 "end": { 1232 "line": 27, 1233 "column": 110 1234 } 1235 } 1236 } 1237 ], 1238 "returnType": { 1239 "type": "TSVoidKeyword", 1240 "loc": { 1241 "start": { 1242 "line": 27, 1243 "column": 139 1244 }, 1245 "end": { 1246 "line": 27, 1247 "column": 143 1248 } 1249 } 1250 }, 1251 "loc": { 1252 "start": { 1253 "line": 27, 1254 "column": 57 1255 }, 1256 "end": { 1257 "line": 27, 1258 "column": 143 1259 } 1260 } 1261 }, 1262 "loc": { 1263 "start": { 1264 "line": 27, 1265 "column": 47 1266 }, 1267 "end": { 1268 "line": 27, 1269 "column": 55 1270 } 1271 } 1272 } 1273 ], 1274 "typeParameters": { 1275 "type": "TSTypeParameterDeclaration", 1276 "params": [ 1277 { 1278 "type": "TSTypeParameter", 1279 "name": { 1280 "type": "Identifier", 1281 "name": "T", 1282 "loc": { 1283 "start": { 1284 "line": 27, 1285 "column": 44 1286 }, 1287 "end": { 1288 "line": 27, 1289 "column": 45 1290 } 1291 } 1292 }, 1293 "in": false, 1294 "out": false, 1295 "loc": { 1296 "start": { 1297 "line": 27, 1298 "column": 44 1299 }, 1300 "end": { 1301 "line": 27, 1302 "column": 46 1303 } 1304 } 1305 } 1306 ], 1307 "loc": { 1308 "start": { 1309 "line": 27, 1310 "column": 43 1311 }, 1312 "end": { 1313 "line": 27, 1314 "column": 46 1315 } 1316 } 1317 }, 1318 "returnType": { 1319 "type": "TSTypeReference", 1320 "typeName": { 1321 "type": "Identifier", 1322 "name": "PromiseLike", 1323 "loc": { 1324 "start": { 1325 "line": 27, 1326 "column": 148 1327 }, 1328 "end": { 1329 "line": 27, 1330 "column": 159 1331 } 1332 } 1333 }, 1334 "typeParameters": { 1335 "type": "TSTypeParameterInstantiation", 1336 "params": [ 1337 { 1338 "type": "TSTypeReference", 1339 "typeName": { 1340 "type": "Identifier", 1341 "name": "T", 1342 "loc": { 1343 "start": { 1344 "line": 27, 1345 "column": 160 1346 }, 1347 "end": { 1348 "line": 27, 1349 "column": 161 1350 } 1351 } 1352 }, 1353 "loc": { 1354 "start": { 1355 "line": 27, 1356 "column": 160 1357 }, 1358 "end": { 1359 "line": 27, 1360 "column": 161 1361 } 1362 } 1363 } 1364 ], 1365 "loc": { 1366 "start": { 1367 "line": 27, 1368 "column": 159 1369 }, 1370 "end": { 1371 "line": 27, 1372 "column": 162 1373 } 1374 } 1375 }, 1376 "loc": { 1377 "start": { 1378 "line": 27, 1379 "column": 148 1380 }, 1381 "end": { 1382 "line": 27, 1383 "column": 159 1384 } 1385 } 1386 }, 1387 "loc": { 1388 "start": { 1389 "line": 27, 1390 "column": 39 1391 }, 1392 "end": { 1393 "line": 27, 1394 "column": 159 1395 } 1396 } 1397 }, 1398 "declare": true, 1399 "loc": { 1400 "start": { 1401 "line": 27, 1402 "column": 9 1403 }, 1404 "end": { 1405 "line": 27, 1406 "column": 163 1407 } 1408 } 1409 }, 1410 { 1411 "type": "TSInterfaceDeclaration", 1412 "body": { 1413 "type": "TSInterfaceBody", 1414 "body": [ 1415 { 1416 "type": "TSPropertySignature", 1417 "computed": false, 1418 "optional": false, 1419 "readonly": false, 1420 "key": { 1421 "type": "Identifier", 1422 "name": "a", 1423 "loc": { 1424 "start": { 1425 "line": 30, 1426 "column": 5 1427 }, 1428 "end": { 1429 "line": 30, 1430 "column": 6 1431 } 1432 } 1433 }, 1434 "typeAnnotation": { 1435 "type": "TSNumberKeyword", 1436 "loc": { 1437 "start": { 1438 "line": 30, 1439 "column": 8 1440 }, 1441 "end": { 1442 "line": 30, 1443 "column": 14 1444 } 1445 } 1446 }, 1447 "loc": { 1448 "start": { 1449 "line": 30, 1450 "column": 5 1451 }, 1452 "end": { 1453 "line": 30, 1454 "column": 15 1455 } 1456 } 1457 }, 1458 { 1459 "type": "TSIndexSignature", 1460 "parameters": { 1461 "type": "Identifier", 1462 "name": "x", 1463 "typeAnnotation": { 1464 "type": "TSStringKeyword", 1465 "loc": { 1466 "start": { 1467 "line": 31, 1468 "column": 9 1469 }, 1470 "end": { 1471 "line": 31, 1472 "column": 15 1473 } 1474 } 1475 }, 1476 "loc": { 1477 "start": { 1478 "line": 31, 1479 "column": 6 1480 }, 1481 "end": { 1482 "line": 31, 1483 "column": 7 1484 } 1485 } 1486 }, 1487 "typeAnnotation": { 1488 "type": "TSUnionType", 1489 "types": [ 1490 { 1491 "type": "TSBooleanKeyword", 1492 "loc": { 1493 "start": { 1494 "line": 31, 1495 "column": 18 1496 }, 1497 "end": { 1498 "line": 31, 1499 "column": 25 1500 } 1501 } 1502 }, 1503 { 1504 "type": "TSNumberKeyword", 1505 "loc": { 1506 "start": { 1507 "line": 31, 1508 "column": 28 1509 }, 1510 "end": { 1511 "line": 31, 1512 "column": 34 1513 } 1514 } 1515 } 1516 ], 1517 "loc": { 1518 "start": { 1519 "line": 31, 1520 "column": 18 1521 }, 1522 "end": { 1523 "line": 31, 1524 "column": 34 1525 } 1526 } 1527 }, 1528 "readonly": false, 1529 "static": false, 1530 "loc": { 1531 "start": { 1532 "line": 31, 1533 "column": 5 1534 }, 1535 "end": { 1536 "line": 31, 1537 "column": 35 1538 } 1539 } 1540 } 1541 ], 1542 "loc": { 1543 "start": { 1544 "line": 29, 1545 "column": 53 1546 }, 1547 "end": { 1548 "line": 32, 1549 "column": 2 1550 } 1551 } 1552 }, 1553 "id": { 1554 "type": "Identifier", 1555 "name": "R", 1556 "loc": { 1557 "start": { 1558 "line": 29, 1559 "column": 11 1560 }, 1561 "end": { 1562 "line": 29, 1563 "column": 12 1564 } 1565 } 1566 }, 1567 "extends": [], 1568 "typeParameters": { 1569 "type": "TSTypeParameterDeclaration", 1570 "params": [ 1571 { 1572 "type": "TSTypeParameter", 1573 "name": { 1574 "type": "Identifier", 1575 "name": "K", 1576 "loc": { 1577 "start": { 1578 "line": 29, 1579 "column": 13 1580 }, 1581 "end": { 1582 "line": 29, 1583 "column": 14 1584 } 1585 } 1586 }, 1587 "constraint": { 1588 "type": "TSTupleType", 1589 "elementTypes": [ 1590 { 1591 "type": "TSNumberKeyword", 1592 "loc": { 1593 "start": { 1594 "line": 29, 1595 "column": 24 1596 }, 1597 "end": { 1598 "line": 29, 1599 "column": 30 1600 } 1601 } 1602 }, 1603 { 1604 "type": "TSStringKeyword", 1605 "loc": { 1606 "start": { 1607 "line": 29, 1608 "column": 32 1609 }, 1610 "end": { 1611 "line": 29, 1612 "column": 38 1613 } 1614 } 1615 } 1616 ], 1617 "loc": { 1618 "start": { 1619 "line": 29, 1620 "column": 23 1621 }, 1622 "end": { 1623 "line": 29, 1624 "column": 39 1625 } 1626 } 1627 }, 1628 "in": false, 1629 "out": false, 1630 "loc": { 1631 "start": { 1632 "line": 29, 1633 "column": 13 1634 }, 1635 "end": { 1636 "line": 29, 1637 "column": 40 1638 } 1639 } 1640 }, 1641 { 1642 "type": "TSTypeParameter", 1643 "name": { 1644 "type": "Identifier", 1645 "name": "T", 1646 "loc": { 1647 "start": { 1648 "line": 29, 1649 "column": 41 1650 }, 1651 "end": { 1652 "line": 29, 1653 "column": 42 1654 } 1655 } 1656 }, 1657 "default": { 1658 "type": "TSStringKeyword", 1659 "loc": { 1660 "start": { 1661 "line": 29, 1662 "column": 45 1663 }, 1664 "end": { 1665 "line": 29, 1666 "column": 51 1667 } 1668 } 1669 }, 1670 "in": false, 1671 "out": false, 1672 "loc": { 1673 "start": { 1674 "line": 29, 1675 "column": 41 1676 }, 1677 "end": { 1678 "line": 29, 1679 "column": 52 1680 } 1681 } 1682 } 1683 ], 1684 "loc": { 1685 "start": { 1686 "line": 29, 1687 "column": 12 1688 }, 1689 "end": { 1690 "line": 29, 1691 "column": 52 1692 } 1693 } 1694 }, 1695 "loc": { 1696 "start": { 1697 "line": 29, 1698 "column": 1 1699 }, 1700 "end": { 1701 "line": 32, 1702 "column": 2 1703 } 1704 } 1705 }, 1706 { 1707 "type": "TSInterfaceDeclaration", 1708 "body": { 1709 "type": "TSInterfaceBody", 1710 "body": [ 1711 { 1712 "type": "TSCallSignatureDeclaration", 1713 "params": [], 1714 "typeParameters": { 1715 "type": "TSTypeParameterDeclaration", 1716 "params": [ 1717 { 1718 "type": "TSTypeParameter", 1719 "name": { 1720 "type": "Identifier", 1721 "name": "A", 1722 "loc": { 1723 "start": { 1724 "line": 35, 1725 "column": 6 1726 }, 1727 "end": { 1728 "line": 35, 1729 "column": 7 1730 } 1731 } 1732 }, 1733 "in": false, 1734 "out": false, 1735 "loc": { 1736 "start": { 1737 "line": 35, 1738 "column": 6 1739 }, 1740 "end": { 1741 "line": 35, 1742 "column": 8 1743 } 1744 } 1745 } 1746 ], 1747 "loc": { 1748 "start": { 1749 "line": 35, 1750 "column": 5 1751 }, 1752 "end": { 1753 "line": 35, 1754 "column": 8 1755 } 1756 } 1757 }, 1758 "returnType": { 1759 "type": "TSNumberKeyword", 1760 "loc": { 1761 "start": { 1762 "line": 35, 1763 "column": 12 1764 }, 1765 "end": { 1766 "line": 35, 1767 "column": 18 1768 } 1769 } 1770 }, 1771 "loc": { 1772 "start": { 1773 "line": 35, 1774 "column": 5 1775 }, 1776 "end": { 1777 "line": 35, 1778 "column": 19 1779 } 1780 } 1781 }, 1782 { 1783 "type": "TSMethodSignature", 1784 "computed": false, 1785 "optional": false, 1786 "isGetAccessor": false, 1787 "isSetAccessor": false, 1788 "key": { 1789 "type": "Identifier", 1790 "name": "readonly", 1791 "loc": { 1792 "start": { 1793 "line": 36, 1794 "column": 5 1795 }, 1796 "end": { 1797 "line": 36, 1798 "column": 13 1799 } 1800 } 1801 }, 1802 "params": [], 1803 "typeParameters": { 1804 "type": "TSTypeParameterDeclaration", 1805 "params": [ 1806 { 1807 "type": "TSTypeParameter", 1808 "name": { 1809 "type": "Identifier", 1810 "name": "A", 1811 "loc": { 1812 "start": { 1813 "line": 36, 1814 "column": 14 1815 }, 1816 "end": { 1817 "line": 36, 1818 "column": 15 1819 } 1820 } 1821 }, 1822 "constraint": { 1823 "type": "TSNumberKeyword", 1824 "loc": { 1825 "start": { 1826 "line": 36, 1827 "column": 24 1828 }, 1829 "end": { 1830 "line": 36, 1831 "column": 30 1832 } 1833 } 1834 }, 1835 "in": false, 1836 "out": false, 1837 "loc": { 1838 "start": { 1839 "line": 36, 1840 "column": 14 1841 }, 1842 "end": { 1843 "line": 36, 1844 "column": 31 1845 } 1846 } 1847 } 1848 ], 1849 "loc": { 1850 "start": { 1851 "line": 36, 1852 "column": 13 1853 }, 1854 "end": { 1855 "line": 36, 1856 "column": 31 1857 } 1858 } 1859 }, 1860 "typeAnnotation": { 1861 "type": "TSTupleType", 1862 "elementTypes": [ 1863 { 1864 "type": "TSBooleanKeyword", 1865 "loc": { 1866 "start": { 1867 "line": 36, 1868 "column": 36 1869 }, 1870 "end": { 1871 "line": 36, 1872 "column": 43 1873 } 1874 } 1875 }, 1876 { 1877 "type": "TSArrayType", 1878 "elementType": { 1879 "type": "TSNumberKeyword", 1880 "loc": { 1881 "start": { 1882 "line": 36, 1883 "column": 45 1884 }, 1885 "end": { 1886 "line": 36, 1887 "column": 51 1888 } 1889 } 1890 }, 1891 "loc": { 1892 "start": { 1893 "line": 36, 1894 "column": 45 1895 }, 1896 "end": { 1897 "line": 36, 1898 "column": 53 1899 } 1900 } 1901 } 1902 ], 1903 "loc": { 1904 "start": { 1905 "line": 36, 1906 "column": 35 1907 }, 1908 "end": { 1909 "line": 36, 1910 "column": 54 1911 } 1912 } 1913 }, 1914 "loc": { 1915 "start": { 1916 "line": 36, 1917 "column": 5 1918 }, 1919 "end": { 1920 "line": 36, 1921 "column": 55 1922 } 1923 } 1924 } 1925 ], 1926 "loc": { 1927 "start": { 1928 "line": 34, 1929 "column": 117 1930 }, 1931 "end": { 1932 "line": 37, 1933 "column": 2 1934 } 1935 } 1936 }, 1937 "id": { 1938 "type": "Identifier", 1939 "name": "U", 1940 "loc": { 1941 "start": { 1942 "line": 34, 1943 "column": 11 1944 }, 1945 "end": { 1946 "line": 34, 1947 "column": 12 1948 } 1949 } 1950 }, 1951 "extends": [ 1952 { 1953 "type": "TSInterfaceHeritage", 1954 "expression": { 1955 "type": "TSTypeReference", 1956 "typeName": { 1957 "type": "Identifier", 1958 "name": "R", 1959 "loc": { 1960 "start": { 1961 "line": 34, 1962 "column": 97 1963 }, 1964 "end": { 1965 "line": 34, 1966 "column": 98 1967 } 1968 } 1969 }, 1970 "typeParameters": { 1971 "type": "TSTypeParameterInstantiation", 1972 "params": [ 1973 { 1974 "type": "TSTupleType", 1975 "elementTypes": [ 1976 { 1977 "type": "TSNumberKeyword", 1978 "loc": { 1979 "start": { 1980 "line": 34, 1981 "column": 100 1982 }, 1983 "end": { 1984 "line": 34, 1985 "column": 106 1986 } 1987 } 1988 }, 1989 { 1990 "type": "TSStringKeyword", 1991 "loc": { 1992 "start": { 1993 "line": 34, 1994 "column": 108 1995 }, 1996 "end": { 1997 "line": 34, 1998 "column": 114 1999 } 2000 } 2001 } 2002 ], 2003 "loc": { 2004 "start": { 2005 "line": 34, 2006 "column": 99 2007 }, 2008 "end": { 2009 "line": 34, 2010 "column": 115 2011 } 2012 } 2013 } 2014 ], 2015 "loc": { 2016 "start": { 2017 "line": 34, 2018 "column": 98 2019 }, 2020 "end": { 2021 "line": 34, 2022 "column": 116 2023 } 2024 } 2025 }, 2026 "loc": { 2027 "start": { 2028 "line": 34, 2029 "column": 117 2030 }, 2031 "end": { 2032 "line": 34, 2033 "column": 116 2034 } 2035 } 2036 }, 2037 "loc": { 2038 "start": { 2039 "line": 34, 2040 "column": 117 2041 }, 2042 "end": { 2043 "line": 34, 2044 "column": 116 2045 } 2046 } 2047 } 2048 ], 2049 "typeParameters": { 2050 "type": "TSTypeParameterDeclaration", 2051 "params": [ 2052 { 2053 "type": "TSTypeParameter", 2054 "name": { 2055 "type": "Identifier", 2056 "name": "A", 2057 "loc": { 2058 "start": { 2059 "line": 34, 2060 "column": 13 2061 }, 2062 "end": { 2063 "line": 34, 2064 "column": 14 2065 } 2066 } 2067 }, 2068 "constraint": { 2069 "type": "TSTypeOperator", 2070 "operator": "readonly", 2071 "typeAnnotation": { 2072 "type": "TSTupleType", 2073 "elementTypes": [ 2074 { 2075 "type": "TSNumberKeyword", 2076 "loc": { 2077 "start": { 2078 "line": 34, 2079 "column": 33 2080 }, 2081 "end": { 2082 "line": 34, 2083 "column": 39 2084 } 2085 } 2086 }, 2087 { 2088 "type": "TSNumberKeyword", 2089 "loc": { 2090 "start": { 2091 "line": 34, 2092 "column": 41 2093 }, 2094 "end": { 2095 "line": 34, 2096 "column": 47 2097 } 2098 } 2099 }, 2100 { 2101 "type": "TSTypeLiteral", 2102 "members": [ 2103 { 2104 "type": "TSPropertySignature", 2105 "computed": false, 2106 "optional": false, 2107 "readonly": false, 2108 "key": { 2109 "type": "Identifier", 2110 "name": "a", 2111 "loc": { 2112 "start": { 2113 "line": 34, 2114 "column": 51 2115 }, 2116 "end": { 2117 "line": 34, 2118 "column": 52 2119 } 2120 } 2121 }, 2122 "typeAnnotation": { 2123 "type": "TSNumberKeyword", 2124 "loc": { 2125 "start": { 2126 "line": 34, 2127 "column": 54 2128 }, 2129 "end": { 2130 "line": 34, 2131 "column": 60 2132 } 2133 } 2134 }, 2135 "loc": { 2136 "start": { 2137 "line": 34, 2138 "column": 51 2139 }, 2140 "end": { 2141 "line": 34, 2142 "column": 61 2143 } 2144 } 2145 }, 2146 { 2147 "type": "TSPropertySignature", 2148 "computed": false, 2149 "optional": false, 2150 "readonly": false, 2151 "key": { 2152 "type": "Identifier", 2153 "name": "b", 2154 "loc": { 2155 "start": { 2156 "line": 34, 2157 "column": 62 2158 }, 2159 "end": { 2160 "line": 34, 2161 "column": 63 2162 } 2163 } 2164 }, 2165 "typeAnnotation": { 2166 "type": "TSStringKeyword", 2167 "loc": { 2168 "start": { 2169 "line": 34, 2170 "column": 65 2171 }, 2172 "end": { 2173 "line": 34, 2174 "column": 71 2175 } 2176 } 2177 }, 2178 "loc": { 2179 "start": { 2180 "line": 34, 2181 "column": 62 2182 }, 2183 "end": { 2184 "line": 34, 2185 "column": 73 2186 } 2187 } 2188 } 2189 ], 2190 "loc": { 2191 "start": { 2192 "line": 34, 2193 "column": 49 2194 }, 2195 "end": { 2196 "line": 34, 2197 "column": 73 2198 } 2199 } 2200 } 2201 ], 2202 "loc": { 2203 "start": { 2204 "line": 34, 2205 "column": 32 2206 }, 2207 "end": { 2208 "line": 34, 2209 "column": 74 2210 } 2211 } 2212 }, 2213 "loc": { 2214 "start": { 2215 "line": 34, 2216 "column": 23 2217 }, 2218 "end": { 2219 "line": 34, 2220 "column": 74 2221 } 2222 } 2223 }, 2224 "in": false, 2225 "out": false, 2226 "loc": { 2227 "start": { 2228 "line": 34, 2229 "column": 13 2230 }, 2231 "end": { 2232 "line": 34, 2233 "column": 75 2234 } 2235 } 2236 }, 2237 { 2238 "type": "TSTypeParameter", 2239 "name": { 2240 "type": "Identifier", 2241 "name": "Z", 2242 "loc": { 2243 "start": { 2244 "line": 34, 2245 "column": 76 2246 }, 2247 "end": { 2248 "line": 34, 2249 "column": 77 2250 } 2251 } 2252 }, 2253 "default": { 2254 "type": "TSBooleanKeyword", 2255 "loc": { 2256 "start": { 2257 "line": 34, 2258 "column": 80 2259 }, 2260 "end": { 2261 "line": 34, 2262 "column": 87 2263 } 2264 } 2265 }, 2266 "in": false, 2267 "out": false, 2268 "loc": { 2269 "start": { 2270 "line": 34, 2271 "column": 76 2272 }, 2273 "end": { 2274 "line": 34, 2275 "column": 88 2276 } 2277 } 2278 } 2279 ], 2280 "loc": { 2281 "start": { 2282 "line": 34, 2283 "column": 12 2284 }, 2285 "end": { 2286 "line": 34, 2287 "column": 88 2288 } 2289 } 2290 }, 2291 "loc": { 2292 "start": { 2293 "line": 34, 2294 "column": 1 2295 }, 2296 "end": { 2297 "line": 37, 2298 "column": 2 2299 } 2300 } 2301 }, 2302 { 2303 "type": "ExpressionStatement", 2304 "expression": { 2305 "type": "CallExpression", 2306 "callee": { 2307 "type": "Identifier", 2308 "name": "func1", 2309 "loc": { 2310 "start": { 2311 "line": 39, 2312 "column": 1 2313 }, 2314 "end": { 2315 "line": 39, 2316 "column": 6 2317 } 2318 } 2319 }, 2320 "arguments": [], 2321 "optional": false, 2322 "typeParameters": { 2323 "type": "TSTypeParameterInstantiation", 2324 "params": [ 2325 { 2326 "type": "TSNumberKeyword", 2327 "loc": { 2328 "start": { 2329 "line": 39, 2330 "column": 7 2331 }, 2332 "end": { 2333 "line": 39, 2334 "column": 13 2335 } 2336 } 2337 }, 2338 { 2339 "type": "TSStringKeyword", 2340 "loc": { 2341 "start": { 2342 "line": 39, 2343 "column": 15 2344 }, 2345 "end": { 2346 "line": 39, 2347 "column": 21 2348 } 2349 } 2350 }, 2351 { 2352 "type": "TSTupleType", 2353 "elementTypes": [ 2354 { 2355 "type": "TSLiteralType", 2356 "literal": { 2357 "type": "NumberLiteral", 2358 "value": 1, 2359 "loc": { 2360 "start": { 2361 "line": 39, 2362 "column": 24 2363 }, 2364 "end": { 2365 "line": 39, 2366 "column": 25 2367 } 2368 } 2369 }, 2370 "loc": { 2371 "start": { 2372 "line": 39, 2373 "column": 24 2374 }, 2375 "end": { 2376 "line": 39, 2377 "column": 25 2378 } 2379 } 2380 }, 2381 { 2382 "type": "TSLiteralType", 2383 "literal": { 2384 "type": "NumberLiteral", 2385 "value": 2, 2386 "loc": { 2387 "start": { 2388 "line": 39, 2389 "column": 27 2390 }, 2391 "end": { 2392 "line": 39, 2393 "column": 28 2394 } 2395 } 2396 }, 2397 "loc": { 2398 "start": { 2399 "line": 39, 2400 "column": 27 2401 }, 2402 "end": { 2403 "line": 39, 2404 "column": 28 2405 } 2406 } 2407 }, 2408 { 2409 "type": "TSLiteralType", 2410 "literal": { 2411 "type": "NumberLiteral", 2412 "value": 3, 2413 "loc": { 2414 "start": { 2415 "line": 39, 2416 "column": 30 2417 }, 2418 "end": { 2419 "line": 39, 2420 "column": 31 2421 } 2422 } 2423 }, 2424 "loc": { 2425 "start": { 2426 "line": 39, 2427 "column": 30 2428 }, 2429 "end": { 2430 "line": 39, 2431 "column": 31 2432 } 2433 } 2434 } 2435 ], 2436 "loc": { 2437 "start": { 2438 "line": 39, 2439 "column": 23 2440 }, 2441 "end": { 2442 "line": 39, 2443 "column": 32 2444 } 2445 } 2446 } 2447 ], 2448 "loc": { 2449 "start": { 2450 "line": 39, 2451 "column": 6 2452 }, 2453 "end": { 2454 "line": 39, 2455 "column": 33 2456 } 2457 } 2458 }, 2459 "loc": { 2460 "start": { 2461 "line": 39, 2462 "column": 1 2463 }, 2464 "end": { 2465 "line": 39, 2466 "column": 35 2467 } 2468 } 2469 }, 2470 "loc": { 2471 "start": { 2472 "line": 39, 2473 "column": 1 2474 }, 2475 "end": { 2476 "line": 39, 2477 "column": 35 2478 } 2479 } 2480 }, 2481 { 2482 "type": "ExpressionStatement", 2483 "expression": { 2484 "type": "CallExpression", 2485 "callee": { 2486 "type": "Identifier", 2487 "name": "func2", 2488 "loc": { 2489 "start": { 2490 "line": 40, 2491 "column": 1 2492 }, 2493 "end": { 2494 "line": 40, 2495 "column": 6 2496 } 2497 } 2498 }, 2499 "arguments": [], 2500 "optional": false, 2501 "typeParameters": { 2502 "type": "TSTypeParameterInstantiation", 2503 "params": [ 2504 { 2505 "type": "TSFunctionType", 2506 "params": [], 2507 "typeParameters": { 2508 "type": "TSTypeParameterDeclaration", 2509 "params": [ 2510 { 2511 "type": "TSTypeParameter", 2512 "name": { 2513 "type": "Identifier", 2514 "name": "A", 2515 "loc": { 2516 "start": { 2517 "line": 40, 2518 "column": 8 2519 }, 2520 "end": { 2521 "line": 40, 2522 "column": 9 2523 } 2524 } 2525 }, 2526 "in": false, 2527 "out": false, 2528 "loc": { 2529 "start": { 2530 "line": 40, 2531 "column": 8 2532 }, 2533 "end": { 2534 "line": 40, 2535 "column": 10 2536 } 2537 } 2538 } 2539 ], 2540 "loc": { 2541 "start": { 2542 "line": 40, 2543 "column": 7 2544 }, 2545 "end": { 2546 "line": 40, 2547 "column": 10 2548 } 2549 } 2550 }, 2551 "returnType": { 2552 "type": "TSTypeLiteral", 2553 "members": [], 2554 "loc": { 2555 "start": { 2556 "line": 40, 2557 "column": 16 2558 }, 2559 "end": { 2560 "line": 40, 2561 "column": 18 2562 } 2563 } 2564 }, 2565 "loc": { 2566 "start": { 2567 "line": 40, 2568 "column": 7 2569 }, 2570 "end": { 2571 "line": 40, 2572 "column": 18 2573 } 2574 } 2575 } 2576 ], 2577 "loc": { 2578 "start": { 2579 "line": 40, 2580 "column": 6 2581 }, 2582 "end": { 2583 "line": 40, 2584 "column": 19 2585 } 2586 } 2587 }, 2588 "loc": { 2589 "start": { 2590 "line": 40, 2591 "column": 1 2592 }, 2593 "end": { 2594 "line": 40, 2595 "column": 21 2596 } 2597 } 2598 }, 2599 "loc": { 2600 "start": { 2601 "line": 40, 2602 "column": 1 2603 }, 2604 "end": { 2605 "line": 40, 2606 "column": 22 2607 } 2608 } 2609 }, 2610 { 2611 "type": "VariableDeclaration", 2612 "declarations": [ 2613 { 2614 "type": "VariableDeclarator", 2615 "id": { 2616 "type": "Identifier", 2617 "name": "o", 2618 "loc": { 2619 "start": { 2620 "line": 42, 2621 "column": 5 2622 }, 2623 "end": { 2624 "line": 42, 2625 "column": 6 2626 } 2627 } 2628 }, 2629 "init": { 2630 "type": "ObjectExpression", 2631 "properties": [ 2632 { 2633 "type": "Property", 2634 "method": false, 2635 "shorthand": false, 2636 "computed": false, 2637 "key": { 2638 "type": "Identifier", 2639 "name": "a", 2640 "loc": { 2641 "start": { 2642 "line": 43, 2643 "column": 5 2644 }, 2645 "end": { 2646 "line": 43, 2647 "column": 6 2648 } 2649 } 2650 }, 2651 "value": { 2652 "type": "FunctionExpression", 2653 "function": { 2654 "type": "ScriptFunction", 2655 "id": null, 2656 "generator": false, 2657 "async": false, 2658 "expression": false, 2659 "params": [], 2660 "typeParameters": { 2661 "type": "TSTypeParameterDeclaration", 2662 "params": [ 2663 { 2664 "type": "TSTypeParameter", 2665 "name": { 2666 "type": "Identifier", 2667 "name": "B", 2668 "loc": { 2669 "start": { 2670 "line": 43, 2671 "column": 18 2672 }, 2673 "end": { 2674 "line": 43, 2675 "column": 19 2676 } 2677 } 2678 }, 2679 "in": false, 2680 "out": false, 2681 "loc": { 2682 "start": { 2683 "line": 43, 2684 "column": 18 2685 }, 2686 "end": { 2687 "line": 43, 2688 "column": 20 2689 } 2690 } 2691 }, 2692 { 2693 "type": "TSTypeParameter", 2694 "name": { 2695 "type": "Identifier", 2696 "name": "C", 2697 "loc": { 2698 "start": { 2699 "line": 43, 2700 "column": 21 2701 }, 2702 "end": { 2703 "line": 43, 2704 "column": 22 2705 } 2706 } 2707 }, 2708 "constraint": { 2709 "type": "TSTypeQuery", 2710 "exprName": { 2711 "type": "Identifier", 2712 "name": "func1", 2713 "loc": { 2714 "start": { 2715 "line": 43, 2716 "column": 38 2717 }, 2718 "end": { 2719 "line": 43, 2720 "column": 43 2721 } 2722 } 2723 }, 2724 "loc": { 2725 "start": { 2726 "line": 43, 2727 "column": 31 2728 }, 2729 "end": { 2730 "line": 43, 2731 "column": 43 2732 } 2733 } 2734 }, 2735 "in": false, 2736 "out": false, 2737 "loc": { 2738 "start": { 2739 "line": 43, 2740 "column": 21 2741 }, 2742 "end": { 2743 "line": 43, 2744 "column": 44 2745 } 2746 } 2747 } 2748 ], 2749 "loc": { 2750 "start": { 2751 "line": 43, 2752 "column": 17 2753 }, 2754 "end": { 2755 "line": 43, 2756 "column": 44 2757 } 2758 } 2759 }, 2760 "body": { 2761 "type": "BlockStatement", 2762 "statements": [], 2763 "loc": { 2764 "start": { 2765 "line": 43, 2766 "column": 47 2767 }, 2768 "end": { 2769 "line": 43, 2770 "column": 50 2771 } 2772 } 2773 }, 2774 "loc": { 2775 "start": { 2776 "line": 43, 2777 "column": 8 2778 }, 2779 "end": { 2780 "line": 43, 2781 "column": 50 2782 } 2783 } 2784 }, 2785 "loc": { 2786 "start": { 2787 "line": 43, 2788 "column": 8 2789 }, 2790 "end": { 2791 "line": 43, 2792 "column": 50 2793 } 2794 } 2795 }, 2796 "kind": "init", 2797 "loc": { 2798 "start": { 2799 "line": 43, 2800 "column": 5 2801 }, 2802 "end": { 2803 "line": 43, 2804 "column": 50 2805 } 2806 } 2807 }, 2808 { 2809 "type": "Property", 2810 "method": false, 2811 "shorthand": false, 2812 "computed": false, 2813 "key": { 2814 "type": "Identifier", 2815 "name": "b", 2816 "loc": { 2817 "start": { 2818 "line": 44, 2819 "column": 5 2820 }, 2821 "end": { 2822 "line": 44, 2823 "column": 6 2824 } 2825 } 2826 }, 2827 "value": { 2828 "type": "FunctionExpression", 2829 "function": { 2830 "type": "ScriptFunction", 2831 "id": null, 2832 "generator": false, 2833 "async": false, 2834 "expression": false, 2835 "params": [], 2836 "typeParameters": { 2837 "type": "TSTypeParameterDeclaration", 2838 "params": [ 2839 { 2840 "type": "TSTypeParameter", 2841 "name": { 2842 "type": "Identifier", 2843 "name": "D", 2844 "loc": { 2845 "start": { 2846 "line": 44, 2847 "column": 18 2848 }, 2849 "end": { 2850 "line": 44, 2851 "column": 19 2852 } 2853 } 2854 }, 2855 "default": { 2856 "type": "TSNumberKeyword", 2857 "loc": { 2858 "start": { 2859 "line": 44, 2860 "column": 22 2861 }, 2862 "end": { 2863 "line": 44, 2864 "column": 28 2865 } 2866 } 2867 }, 2868 "in": false, 2869 "out": false, 2870 "loc": { 2871 "start": { 2872 "line": 44, 2873 "column": 18 2874 }, 2875 "end": { 2876 "line": 44, 2877 "column": 29 2878 } 2879 } 2880 }, 2881 { 2882 "type": "TSTypeParameter", 2883 "name": { 2884 "type": "Identifier", 2885 "name": "T", 2886 "loc": { 2887 "start": { 2888 "line": 44, 2889 "column": 30 2890 }, 2891 "end": { 2892 "line": 44, 2893 "column": 31 2894 } 2895 } 2896 }, 2897 "default": { 2898 "type": "TSStringKeyword", 2899 "loc": { 2900 "start": { 2901 "line": 44, 2902 "column": 34 2903 }, 2904 "end": { 2905 "line": 44, 2906 "column": 40 2907 } 2908 } 2909 }, 2910 "in": false, 2911 "out": false, 2912 "loc": { 2913 "start": { 2914 "line": 44, 2915 "column": 30 2916 }, 2917 "end": { 2918 "line": 44, 2919 "column": 41 2920 } 2921 } 2922 } 2923 ], 2924 "loc": { 2925 "start": { 2926 "line": 44, 2927 "column": 17 2928 }, 2929 "end": { 2930 "line": 44, 2931 "column": 41 2932 } 2933 } 2934 }, 2935 "body": { 2936 "type": "BlockStatement", 2937 "statements": [], 2938 "loc": { 2939 "start": { 2940 "line": 44, 2941 "column": 44 2942 }, 2943 "end": { 2944 "line": 44, 2945 "column": 47 2946 } 2947 } 2948 }, 2949 "loc": { 2950 "start": { 2951 "line": 44, 2952 "column": 8 2953 }, 2954 "end": { 2955 "line": 44, 2956 "column": 47 2957 } 2958 } 2959 }, 2960 "loc": { 2961 "start": { 2962 "line": 44, 2963 "column": 8 2964 }, 2965 "end": { 2966 "line": 44, 2967 "column": 47 2968 } 2969 } 2970 }, 2971 "kind": "init", 2972 "loc": { 2973 "start": { 2974 "line": 44, 2975 "column": 5 2976 }, 2977 "end": { 2978 "line": 44, 2979 "column": 47 2980 } 2981 } 2982 }, 2983 { 2984 "type": "Property", 2985 "method": true, 2986 "shorthand": false, 2987 "computed": false, 2988 "key": { 2989 "type": "Identifier", 2990 "name": "c", 2991 "loc": { 2992 "start": { 2993 "line": 45, 2994 "column": 5 2995 }, 2996 "end": { 2997 "line": 45, 2998 "column": 6 2999 } 3000 } 3001 }, 3002 "value": { 3003 "type": "FunctionExpression", 3004 "function": { 3005 "type": "ScriptFunction", 3006 "id": null, 3007 "generator": false, 3008 "async": false, 3009 "expression": false, 3010 "params": [], 3011 "typeParameters": { 3012 "type": "TSTypeParameterDeclaration", 3013 "params": [ 3014 { 3015 "type": "TSTypeParameter", 3016 "name": { 3017 "type": "Identifier", 3018 "name": "E", 3019 "loc": { 3020 "start": { 3021 "line": 45, 3022 "column": 7 3023 }, 3024 "end": { 3025 "line": 45, 3026 "column": 8 3027 } 3028 } 3029 }, 3030 "in": false, 3031 "out": false, 3032 "loc": { 3033 "start": { 3034 "line": 45, 3035 "column": 7 3036 }, 3037 "end": { 3038 "line": 45, 3039 "column": 9 3040 } 3041 } 3042 }, 3043 { 3044 "type": "TSTypeParameter", 3045 "name": { 3046 "type": "Identifier", 3047 "name": "F", 3048 "loc": { 3049 "start": { 3050 "line": 45, 3051 "column": 10 3052 }, 3053 "end": { 3054 "line": 45, 3055 "column": 11 3056 } 3057 } 3058 }, 3059 "constraint": { 3060 "type": "TSTypeOperator", 3061 "operator": "readonly", 3062 "typeAnnotation": { 3063 "type": "TSTupleType", 3064 "elementTypes": [], 3065 "loc": { 3066 "start": { 3067 "line": 45, 3068 "column": 29 3069 }, 3070 "end": { 3071 "line": 45, 3072 "column": 31 3073 } 3074 } 3075 }, 3076 "loc": { 3077 "start": { 3078 "line": 45, 3079 "column": 20 3080 }, 3081 "end": { 3082 "line": 45, 3083 "column": 31 3084 } 3085 } 3086 }, 3087 "in": false, 3088 "out": false, 3089 "loc": { 3090 "start": { 3091 "line": 45, 3092 "column": 10 3093 }, 3094 "end": { 3095 "line": 45, 3096 "column": 32 3097 } 3098 } 3099 } 3100 ], 3101 "loc": { 3102 "start": { 3103 "line": 45, 3104 "column": 6 3105 }, 3106 "end": { 3107 "line": 45, 3108 "column": 32 3109 } 3110 } 3111 }, 3112 "body": { 3113 "type": "BlockStatement", 3114 "statements": [], 3115 "loc": { 3116 "start": { 3117 "line": 45, 3118 "column": 35 3119 }, 3120 "end": { 3121 "line": 45, 3122 "column": 38 3123 } 3124 } 3125 }, 3126 "loc": { 3127 "start": { 3128 "line": 45, 3129 "column": 6 3130 }, 3131 "end": { 3132 "line": 45, 3133 "column": 38 3134 } 3135 } 3136 }, 3137 "loc": { 3138 "start": { 3139 "line": 45, 3140 "column": 6 3141 }, 3142 "end": { 3143 "line": 45, 3144 "column": 38 3145 } 3146 } 3147 }, 3148 "kind": "init", 3149 "loc": { 3150 "start": { 3151 "line": 45, 3152 "column": 5 3153 }, 3154 "end": { 3155 "line": 45, 3156 "column": 38 3157 } 3158 } 3159 } 3160 ], 3161 "loc": { 3162 "start": { 3163 "line": 42, 3164 "column": 9 3165 }, 3166 "end": { 3167 "line": 46, 3168 "column": 2 3169 } 3170 } 3171 }, 3172 "loc": { 3173 "start": { 3174 "line": 42, 3175 "column": 5 3176 }, 3177 "end": { 3178 "line": 46, 3179 "column": 2 3180 } 3181 } 3182 } 3183 ], 3184 "kind": "var", 3185 "loc": { 3186 "start": { 3187 "line": 42, 3188 "column": 1 3189 }, 3190 "end": { 3191 "line": 46, 3192 "column": 2 3193 } 3194 } 3195 }, 3196 { 3197 "type": "ClassDeclaration", 3198 "definition": { 3199 "id": { 3200 "type": "Identifier", 3201 "name": "A", 3202 "loc": { 3203 "start": { 3204 "line": 48, 3205 "column": 7 3206 }, 3207 "end": { 3208 "line": 48, 3209 "column": 8 3210 } 3211 } 3212 }, 3213 "typeParameters": { 3214 "type": "TSTypeParameterDeclaration", 3215 "params": [ 3216 { 3217 "type": "TSTypeParameter", 3218 "name": { 3219 "type": "Identifier", 3220 "name": "T", 3221 "loc": { 3222 "start": { 3223 "line": 48, 3224 "column": 9 3225 }, 3226 "end": { 3227 "line": 48, 3228 "column": 10 3229 } 3230 } 3231 }, 3232 "constraint": { 3233 "type": "TSTypeReference", 3234 "typeName": { 3235 "type": "Identifier", 3236 "name": "B", 3237 "loc": { 3238 "start": { 3239 "line": 48, 3240 "column": 19 3241 }, 3242 "end": { 3243 "line": 48, 3244 "column": 20 3245 } 3246 } 3247 }, 3248 "loc": { 3249 "start": { 3250 "line": 48, 3251 "column": 19 3252 }, 3253 "end": { 3254 "line": 48, 3255 "column": 20 3256 } 3257 } 3258 }, 3259 "in": false, 3260 "out": false, 3261 "loc": { 3262 "start": { 3263 "line": 48, 3264 "column": 9 3265 }, 3266 "end": { 3267 "line": 48, 3268 "column": 21 3269 } 3270 } 3271 }, 3272 { 3273 "type": "TSTypeParameter", 3274 "name": { 3275 "type": "Identifier", 3276 "name": "Z", 3277 "loc": { 3278 "start": { 3279 "line": 48, 3280 "column": 22 3281 }, 3282 "end": { 3283 "line": 48, 3284 "column": 23 3285 } 3286 } 3287 }, 3288 "default": { 3289 "type": "TSTypeLiteral", 3290 "members": [ 3291 { 3292 "type": "TSPropertySignature", 3293 "computed": false, 3294 "optional": false, 3295 "readonly": false, 3296 "key": { 3297 "type": "Identifier", 3298 "name": "a", 3299 "loc": { 3300 "start": { 3301 "line": 48, 3302 "column": 28 3303 }, 3304 "end": { 3305 "line": 48, 3306 "column": 29 3307 } 3308 } 3309 }, 3310 "typeAnnotation": { 3311 "type": "TSNumberKeyword", 3312 "loc": { 3313 "start": { 3314 "line": 48, 3315 "column": 31 3316 }, 3317 "end": { 3318 "line": 48, 3319 "column": 37 3320 } 3321 } 3322 }, 3323 "loc": { 3324 "start": { 3325 "line": 48, 3326 "column": 28 3327 }, 3328 "end": { 3329 "line": 48, 3330 "column": 38 3331 } 3332 } 3333 }, 3334 { 3335 "type": "TSPropertySignature", 3336 "computed": false, 3337 "optional": false, 3338 "readonly": false, 3339 "key": { 3340 "type": "Identifier", 3341 "name": "b", 3342 "loc": { 3343 "start": { 3344 "line": 48, 3345 "column": 39 3346 }, 3347 "end": { 3348 "line": 48, 3349 "column": 40 3350 } 3351 } 3352 }, 3353 "typeAnnotation": { 3354 "type": "TSStringKeyword", 3355 "loc": { 3356 "start": { 3357 "line": 48, 3358 "column": 42 3359 }, 3360 "end": { 3361 "line": 48, 3362 "column": 48 3363 } 3364 } 3365 }, 3366 "loc": { 3367 "start": { 3368 "line": 48, 3369 "column": 39 3370 }, 3371 "end": { 3372 "line": 48, 3373 "column": 50 3374 } 3375 } 3376 } 3377 ], 3378 "loc": { 3379 "start": { 3380 "line": 48, 3381 "column": 26 3382 }, 3383 "end": { 3384 "line": 48, 3385 "column": 50 3386 } 3387 } 3388 }, 3389 "in": false, 3390 "out": false, 3391 "loc": { 3392 "start": { 3393 "line": 48, 3394 "column": 22 3395 }, 3396 "end": { 3397 "line": 48, 3398 "column": 51 3399 } 3400 } 3401 } 3402 ], 3403 "loc": { 3404 "start": { 3405 "line": 48, 3406 "column": 8 3407 }, 3408 "end": { 3409 "line": 48, 3410 "column": 51 3411 } 3412 } 3413 }, 3414 "superClass": null, 3415 "implements": [], 3416 "constructor": { 3417 "type": "MethodDefinition", 3418 "key": { 3419 "type": "Identifier", 3420 "name": "constructor", 3421 "loc": { 3422 "start": { 3423 "line": 1, 3424 "column": 1 3425 }, 3426 "end": { 3427 "line": 1, 3428 "column": 1 3429 } 3430 } 3431 }, 3432 "kind": "constructor", 3433 "static": false, 3434 "optional": false, 3435 "computed": false, 3436 "value": { 3437 "type": "FunctionExpression", 3438 "function": { 3439 "type": "ScriptFunction", 3440 "id": null, 3441 "generator": false, 3442 "async": false, 3443 "expression": false, 3444 "params": [], 3445 "body": { 3446 "type": "BlockStatement", 3447 "statements": [], 3448 "loc": { 3449 "start": { 3450 "line": 1, 3451 "column": 1 3452 }, 3453 "end": { 3454 "line": 1, 3455 "column": 1 3456 } 3457 } 3458 }, 3459 "loc": { 3460 "start": { 3461 "line": 1, 3462 "column": 1 3463 }, 3464 "end": { 3465 "line": 1, 3466 "column": 1 3467 } 3468 } 3469 }, 3470 "loc": { 3471 "start": { 3472 "line": 1, 3473 "column": 1 3474 }, 3475 "end": { 3476 "line": 1, 3477 "column": 1 3478 } 3479 } 3480 }, 3481 "overloads": [], 3482 "decorators": [], 3483 "loc": { 3484 "start": { 3485 "line": 48, 3486 "column": 1 3487 }, 3488 "end": { 3489 "line": 51, 3490 "column": 2 3491 } 3492 } 3493 }, 3494 "body": [ 3495 { 3496 "type": "MethodDefinition", 3497 "key": { 3498 "type": "Identifier", 3499 "name": "a", 3500 "loc": { 3501 "start": { 3502 "line": 49, 3503 "column": 12 3504 }, 3505 "end": { 3506 "line": 49, 3507 "column": 13 3508 } 3509 } 3510 }, 3511 "kind": "method", 3512 "accessibility": "public", 3513 "static": false, 3514 "optional": false, 3515 "computed": false, 3516 "value": { 3517 "type": "FunctionExpression", 3518 "function": { 3519 "type": "ScriptFunction", 3520 "id": null, 3521 "generator": false, 3522 "async": false, 3523 "expression": false, 3524 "params": [], 3525 "typeParameters": { 3526 "type": "TSTypeParameterDeclaration", 3527 "params": [ 3528 { 3529 "type": "TSTypeParameter", 3530 "name": { 3531 "type": "Identifier", 3532 "name": "T", 3533 "loc": { 3534 "start": { 3535 "line": 49, 3536 "column": 14 3537 }, 3538 "end": { 3539 "line": 49, 3540 "column": 15 3541 } 3542 } 3543 }, 3544 "in": false, 3545 "out": false, 3546 "loc": { 3547 "start": { 3548 "line": 49, 3549 "column": 14 3550 }, 3551 "end": { 3552 "line": 49, 3553 "column": 16 3554 } 3555 } 3556 }, 3557 { 3558 "type": "TSTypeParameter", 3559 "name": { 3560 "type": "Identifier", 3561 "name": "R", 3562 "loc": { 3563 "start": { 3564 "line": 49, 3565 "column": 17 3566 }, 3567 "end": { 3568 "line": 49, 3569 "column": 18 3570 } 3571 } 3572 }, 3573 "in": false, 3574 "out": false, 3575 "loc": { 3576 "start": { 3577 "line": 49, 3578 "column": 17 3579 }, 3580 "end": { 3581 "line": 49, 3582 "column": 19 3583 } 3584 } 3585 } 3586 ], 3587 "loc": { 3588 "start": { 3589 "line": 49, 3590 "column": 13 3591 }, 3592 "end": { 3593 "line": 49, 3594 "column": 19 3595 } 3596 } 3597 }, 3598 "body": { 3599 "type": "BlockStatement", 3600 "statements": [], 3601 "loc": { 3602 "start": { 3603 "line": 49, 3604 "column": 22 3605 }, 3606 "end": { 3607 "line": 49, 3608 "column": 25 3609 } 3610 } 3611 }, 3612 "loc": { 3613 "start": { 3614 "line": 49, 3615 "column": 13 3616 }, 3617 "end": { 3618 "line": 49, 3619 "column": 25 3620 } 3621 } 3622 }, 3623 "loc": { 3624 "start": { 3625 "line": 49, 3626 "column": 13 3627 }, 3628 "end": { 3629 "line": 49, 3630 "column": 25 3631 } 3632 } 3633 }, 3634 "overloads": [], 3635 "decorators": [], 3636 "loc": { 3637 "start": { 3638 "line": 49, 3639 "column": 5 3640 }, 3641 "end": { 3642 "line": 49, 3643 "column": 25 3644 } 3645 } 3646 }, 3647 { 3648 "type": "MethodDefinition", 3649 "key": { 3650 "type": "Identifier", 3651 "name": "b", 3652 "loc": { 3653 "start": { 3654 "line": 50, 3655 "column": 13 3656 }, 3657 "end": { 3658 "line": 50, 3659 "column": 14 3660 } 3661 } 3662 }, 3663 "kind": "method", 3664 "accessibility": "private", 3665 "static": false, 3666 "optional": false, 3667 "computed": false, 3668 "value": { 3669 "type": "FunctionExpression", 3670 "function": { 3671 "type": "ScriptFunction", 3672 "id": null, 3673 "generator": false, 3674 "async": false, 3675 "expression": false, 3676 "params": [], 3677 "typeParameters": { 3678 "type": "TSTypeParameterDeclaration", 3679 "params": [ 3680 { 3681 "type": "TSTypeParameter", 3682 "name": { 3683 "type": "Identifier", 3684 "name": "E", 3685 "loc": { 3686 "start": { 3687 "line": 50, 3688 "column": 15 3689 }, 3690 "end": { 3691 "line": 50, 3692 "column": 16 3693 } 3694 } 3695 }, 3696 "constraint": { 3697 "type": "TSFunctionType", 3698 "params": [ 3699 { 3700 "type": "Identifier", 3701 "name": "a", 3702 "typeAnnotation": { 3703 "type": "TSNumberKeyword", 3704 "loc": { 3705 "start": { 3706 "line": 50, 3707 "column": 29 3708 }, 3709 "end": { 3710 "line": 50, 3711 "column": 35 3712 } 3713 } 3714 }, 3715 "loc": { 3716 "start": { 3717 "line": 50, 3718 "column": 26 3719 }, 3720 "end": { 3721 "line": 50, 3722 "column": 27 3723 } 3724 } 3725 }, 3726 { 3727 "type": "Identifier", 3728 "name": "b", 3729 "typeAnnotation": { 3730 "type": "TSStringKeyword", 3731 "loc": { 3732 "start": { 3733 "line": 50, 3734 "column": 40 3735 }, 3736 "end": { 3737 "line": 50, 3738 "column": 46 3739 } 3740 } 3741 }, 3742 "loc": { 3743 "start": { 3744 "line": 50, 3745 "column": 37 3746 }, 3747 "end": { 3748 "line": 50, 3749 "column": 38 3750 } 3751 } 3752 } 3753 ], 3754 "returnType": { 3755 "type": "TSArrayType", 3756 "elementType": { 3757 "type": "TSAnyKeyword", 3758 "loc": { 3759 "start": { 3760 "line": 50, 3761 "column": 51 3762 }, 3763 "end": { 3764 "line": 50, 3765 "column": 54 3766 } 3767 } 3768 }, 3769 "loc": { 3770 "start": { 3771 "line": 50, 3772 "column": 51 3773 }, 3774 "end": { 3775 "line": 50, 3776 "column": 56 3777 } 3778 } 3779 }, 3780 "loc": { 3781 "start": { 3782 "line": 50, 3783 "column": 25 3784 }, 3785 "end": { 3786 "line": 50, 3787 "column": 56 3788 } 3789 } 3790 }, 3791 "in": false, 3792 "out": false, 3793 "loc": { 3794 "start": { 3795 "line": 50, 3796 "column": 15 3797 }, 3798 "end": { 3799 "line": 50, 3800 "column": 57 3801 } 3802 } 3803 } 3804 ], 3805 "loc": { 3806 "start": { 3807 "line": 50, 3808 "column": 14 3809 }, 3810 "end": { 3811 "line": 50, 3812 "column": 57 3813 } 3814 } 3815 }, 3816 "body": { 3817 "type": "BlockStatement", 3818 "statements": [], 3819 "loc": { 3820 "start": { 3821 "line": 50, 3822 "column": 60 3823 }, 3824 "end": { 3825 "line": 50, 3826 "column": 63 3827 } 3828 } 3829 }, 3830 "loc": { 3831 "start": { 3832 "line": 50, 3833 "column": 14 3834 }, 3835 "end": { 3836 "line": 50, 3837 "column": 63 3838 } 3839 } 3840 }, 3841 "loc": { 3842 "start": { 3843 "line": 50, 3844 "column": 14 3845 }, 3846 "end": { 3847 "line": 50, 3848 "column": 63 3849 } 3850 } 3851 }, 3852 "overloads": [], 3853 "decorators": [], 3854 "loc": { 3855 "start": { 3856 "line": 50, 3857 "column": 5 3858 }, 3859 "end": { 3860 "line": 50, 3861 "column": 63 3862 } 3863 } 3864 } 3865 ], 3866 "indexSignatures": [], 3867 "loc": { 3868 "start": { 3869 "line": 48, 3870 "column": 52 3871 }, 3872 "end": { 3873 "line": 51, 3874 "column": 2 3875 } 3876 } 3877 }, 3878 "decorators": [], 3879 "loc": { 3880 "start": { 3881 "line": 48, 3882 "column": 1 3883 }, 3884 "end": { 3885 "line": 51, 3886 "column": 2 3887 } 3888 } 3889 }, 3890 { 3891 "type": "ClassDeclaration", 3892 "definition": { 3893 "id": { 3894 "type": "Identifier", 3895 "name": "W", 3896 "loc": { 3897 "start": { 3898 "line": 53, 3899 "column": 7 3900 }, 3901 "end": { 3902 "line": 53, 3903 "column": 8 3904 } 3905 } 3906 }, 3907 "superClass": { 3908 "type": "Identifier", 3909 "name": "T", 3910 "loc": { 3911 "start": { 3912 "line": 53, 3913 "column": 17 3914 }, 3915 "end": { 3916 "line": 53, 3917 "column": 18 3918 } 3919 } 3920 }, 3921 "superTypeParameters": { 3922 "type": "TSTypeParameterInstantiation", 3923 "params": [ 3924 { 3925 "type": "TSFunctionType", 3926 "params": [], 3927 "typeParameters": { 3928 "type": "TSTypeParameterDeclaration", 3929 "params": [ 3930 { 3931 "type": "TSTypeParameter", 3932 "name": { 3933 "type": "Identifier", 3934 "name": "B", 3935 "loc": { 3936 "start": { 3937 "line": 53, 3938 "column": 20 3939 }, 3940 "end": { 3941 "line": 53, 3942 "column": 21 3943 } 3944 } 3945 }, 3946 "in": false, 3947 "out": false, 3948 "loc": { 3949 "start": { 3950 "line": 53, 3951 "column": 20 3952 }, 3953 "end": { 3954 "line": 53, 3955 "column": 22 3956 } 3957 } 3958 } 3959 ], 3960 "loc": { 3961 "start": { 3962 "line": 53, 3963 "column": 19 3964 }, 3965 "end": { 3966 "line": 53, 3967 "column": 22 3968 } 3969 } 3970 }, 3971 "returnType": { 3972 "type": "TSNumberKeyword", 3973 "loc": { 3974 "start": { 3975 "line": 53, 3976 "column": 29 3977 }, 3978 "end": { 3979 "line": 53, 3980 "column": 35 3981 } 3982 } 3983 }, 3984 "loc": { 3985 "start": { 3986 "line": 53, 3987 "column": 19 3988 }, 3989 "end": { 3990 "line": 53, 3991 "column": 35 3992 } 3993 } 3994 }, 3995 { 3996 "type": "TSArrayType", 3997 "elementType": { 3998 "type": "TSTupleType", 3999 "elementTypes": [ 4000 { 4001 "type": "TSUnionType", 4002 "types": [ 4003 { 4004 "type": "TSNumberKeyword", 4005 "loc": { 4006 "start": { 4007 "line": 53, 4008 "column": 38 4009 }, 4010 "end": { 4011 "line": 53, 4012 "column": 44 4013 } 4014 } 4015 }, 4016 { 4017 "type": "TSStringKeyword", 4018 "loc": { 4019 "start": { 4020 "line": 53, 4021 "column": 47 4022 }, 4023 "end": { 4024 "line": 53, 4025 "column": 53 4026 } 4027 } 4028 } 4029 ], 4030 "loc": { 4031 "start": { 4032 "line": 53, 4033 "column": 38 4034 }, 4035 "end": { 4036 "line": 53, 4037 "column": 53 4038 } 4039 } 4040 } 4041 ], 4042 "loc": { 4043 "start": { 4044 "line": 53, 4045 "column": 37 4046 }, 4047 "end": { 4048 "line": 53, 4049 "column": 54 4050 } 4051 } 4052 }, 4053 "loc": { 4054 "start": { 4055 "line": 53, 4056 "column": 37 4057 }, 4058 "end": { 4059 "line": 53, 4060 "column": 56 4061 } 4062 } 4063 } 4064 ], 4065 "loc": { 4066 "start": { 4067 "line": 53, 4068 "column": 18 4069 }, 4070 "end": { 4071 "line": 53, 4072 "column": 57 4073 } 4074 } 4075 }, 4076 "implements": [], 4077 "constructor": { 4078 "type": "MethodDefinition", 4079 "key": { 4080 "type": "Identifier", 4081 "name": "constructor", 4082 "loc": { 4083 "start": { 4084 "line": 1, 4085 "column": 1 4086 }, 4087 "end": { 4088 "line": 1, 4089 "column": 1 4090 } 4091 } 4092 }, 4093 "kind": "constructor", 4094 "static": false, 4095 "optional": false, 4096 "computed": false, 4097 "value": { 4098 "type": "FunctionExpression", 4099 "function": { 4100 "type": "ScriptFunction", 4101 "id": null, 4102 "generator": false, 4103 "async": false, 4104 "expression": false, 4105 "params": [ 4106 { 4107 "type": "RestElement", 4108 "argument": { 4109 "type": "Identifier", 4110 "name": "args", 4111 "loc": { 4112 "start": { 4113 "line": 1, 4114 "column": 1 4115 }, 4116 "end": { 4117 "line": 1, 4118 "column": 1 4119 } 4120 } 4121 }, 4122 "loc": { 4123 "start": { 4124 "line": 1, 4125 "column": 1 4126 }, 4127 "end": { 4128 "line": 1, 4129 "column": 1 4130 } 4131 } 4132 } 4133 ], 4134 "body": { 4135 "type": "BlockStatement", 4136 "statements": [ 4137 { 4138 "type": "ExpressionStatement", 4139 "expression": { 4140 "type": "CallExpression", 4141 "callee": { 4142 "type": "Super", 4143 "loc": { 4144 "start": { 4145 "line": 1, 4146 "column": 1 4147 }, 4148 "end": { 4149 "line": 1, 4150 "column": 1 4151 } 4152 } 4153 }, 4154 "arguments": [ 4155 { 4156 "type": "SpreadElement", 4157 "argument": { 4158 "type": "Identifier", 4159 "name": "args", 4160 "loc": { 4161 "start": { 4162 "line": 1, 4163 "column": 1 4164 }, 4165 "end": { 4166 "line": 1, 4167 "column": 1 4168 } 4169 } 4170 }, 4171 "loc": { 4172 "start": { 4173 "line": 1, 4174 "column": 1 4175 }, 4176 "end": { 4177 "line": 1, 4178 "column": 1 4179 } 4180 } 4181 } 4182 ], 4183 "optional": false, 4184 "loc": { 4185 "start": { 4186 "line": 1, 4187 "column": 1 4188 }, 4189 "end": { 4190 "line": 1, 4191 "column": 1 4192 } 4193 } 4194 }, 4195 "loc": { 4196 "start": { 4197 "line": 1, 4198 "column": 1 4199 }, 4200 "end": { 4201 "line": 1, 4202 "column": 1 4203 } 4204 } 4205 } 4206 ], 4207 "loc": { 4208 "start": { 4209 "line": 1, 4210 "column": 1 4211 }, 4212 "end": { 4213 "line": 1, 4214 "column": 1 4215 } 4216 } 4217 }, 4218 "loc": { 4219 "start": { 4220 "line": 1, 4221 "column": 1 4222 }, 4223 "end": { 4224 "line": 1, 4225 "column": 1 4226 } 4227 } 4228 }, 4229 "loc": { 4230 "start": { 4231 "line": 1, 4232 "column": 1 4233 }, 4234 "end": { 4235 "line": 1, 4236 "column": 1 4237 } 4238 } 4239 }, 4240 "overloads": [], 4241 "decorators": [], 4242 "loc": { 4243 "start": { 4244 "line": 53, 4245 "column": 1 4246 }, 4247 "end": { 4248 "line": 55, 4249 "column": 2 4250 } 4251 } 4252 }, 4253 "body": [], 4254 "indexSignatures": [], 4255 "loc": { 4256 "start": { 4257 "line": 53, 4258 "column": 58 4259 }, 4260 "end": { 4261 "line": 55, 4262 "column": 2 4263 } 4264 } 4265 }, 4266 "decorators": [], 4267 "loc": { 4268 "start": { 4269 "line": 53, 4270 "column": 1 4271 }, 4272 "end": { 4273 "line": 55, 4274 "column": 2 4275 } 4276 } 4277 }, 4278 { 4279 "type": "ClassDeclaration", 4280 "definition": { 4281 "id": { 4282 "type": "Identifier", 4283 "name": "X", 4284 "loc": { 4285 "start": { 4286 "line": 57, 4287 "column": 7 4288 }, 4289 "end": { 4290 "line": 57, 4291 "column": 8 4292 } 4293 } 4294 }, 4295 "superClass": { 4296 "type": "Identifier", 4297 "name": "Q", 4298 "loc": { 4299 "start": { 4300 "line": 57, 4301 "column": 17 4302 }, 4303 "end": { 4304 "line": 57, 4305 "column": 18 4306 } 4307 } 4308 }, 4309 "superTypeParameters": { 4310 "type": "TSTypeParameterInstantiation", 4311 "params": [ 4312 { 4313 "type": "TSNumberKeyword", 4314 "loc": { 4315 "start": { 4316 "line": 57, 4317 "column": 19 4318 }, 4319 "end": { 4320 "line": 57, 4321 "column": 25 4322 } 4323 } 4324 } 4325 ], 4326 "loc": { 4327 "start": { 4328 "line": 57, 4329 "column": 18 4330 }, 4331 "end": { 4332 "line": 57, 4333 "column": 26 4334 } 4335 } 4336 }, 4337 "implements": [ 4338 { 4339 "type": "TSClassImplements", 4340 "expression": { 4341 "type": "Identifier", 4342 "name": "S", 4343 "loc": { 4344 "start": { 4345 "line": 57, 4346 "column": 38 4347 }, 4348 "end": { 4349 "line": 57, 4350 "column": 39 4351 } 4352 } 4353 }, 4354 "typeParameters": { 4355 "type": "TSTypeParameterInstantiation", 4356 "params": [ 4357 { 4358 "type": "TSFunctionType", 4359 "params": [ 4360 { 4361 "type": "Identifier", 4362 "name": "a", 4363 "typeAnnotation": { 4364 "type": "TSNumberKeyword", 4365 "loc": { 4366 "start": { 4367 "line": 57, 4368 "column": 46 4369 }, 4370 "end": { 4371 "line": 57, 4372 "column": 52 4373 } 4374 } 4375 }, 4376 "loc": { 4377 "start": { 4378 "line": 57, 4379 "column": 44 4380 }, 4381 "end": { 4382 "line": 57, 4383 "column": 45 4384 } 4385 } 4386 }, 4387 { 4388 "type": "Identifier", 4389 "name": "b", 4390 "typeAnnotation": { 4391 "type": "TSStringKeyword", 4392 "loc": { 4393 "start": { 4394 "line": 57, 4395 "column": 56 4396 }, 4397 "end": { 4398 "line": 57, 4399 "column": 62 4400 } 4401 } 4402 }, 4403 "loc": { 4404 "start": { 4405 "line": 57, 4406 "column": 54 4407 }, 4408 "end": { 4409 "line": 57, 4410 "column": 55 4411 } 4412 } 4413 } 4414 ], 4415 "typeParameters": { 4416 "type": "TSTypeParameterDeclaration", 4417 "params": [ 4418 { 4419 "type": "TSTypeParameter", 4420 "name": { 4421 "type": "Identifier", 4422 "name": "R", 4423 "loc": { 4424 "start": { 4425 "line": 57, 4426 "column": 41 4427 }, 4428 "end": { 4429 "line": 57, 4430 "column": 42 4431 } 4432 } 4433 }, 4434 "in": false, 4435 "out": false, 4436 "loc": { 4437 "start": { 4438 "line": 57, 4439 "column": 41 4440 }, 4441 "end": { 4442 "line": 57, 4443 "column": 43 4444 } 4445 } 4446 } 4447 ], 4448 "loc": { 4449 "start": { 4450 "line": 57, 4451 "column": 40 4452 }, 4453 "end": { 4454 "line": 57, 4455 "column": 43 4456 } 4457 } 4458 }, 4459 "returnType": { 4460 "type": "TSTupleType", 4461 "elementTypes": [ 4462 { 4463 "type": "TSNumberKeyword", 4464 "loc": { 4465 "start": { 4466 "line": 57, 4467 "column": 68 4468 }, 4469 "end": { 4470 "line": 57, 4471 "column": 74 4472 } 4473 } 4474 } 4475 ], 4476 "loc": { 4477 "start": { 4478 "line": 57, 4479 "column": 67 4480 }, 4481 "end": { 4482 "line": 57, 4483 "column": 75 4484 } 4485 } 4486 }, 4487 "loc": { 4488 "start": { 4489 "line": 57, 4490 "column": 40 4491 }, 4492 "end": { 4493 "line": 57, 4494 "column": 75 4495 } 4496 } 4497 } 4498 ], 4499 "loc": { 4500 "start": { 4501 "line": 57, 4502 "column": 39 4503 }, 4504 "end": { 4505 "line": 57, 4506 "column": 76 4507 } 4508 } 4509 }, 4510 "loc": { 4511 "start": { 4512 "line": 57, 4513 "column": 38 4514 }, 4515 "end": { 4516 "line": 57, 4517 "column": 77 4518 } 4519 } 4520 }, 4521 { 4522 "type": "TSClassImplements", 4523 "expression": { 4524 "type": "Identifier", 4525 "name": "A", 4526 "loc": { 4527 "start": { 4528 "line": 57, 4529 "column": 78 4530 }, 4531 "end": { 4532 "line": 57, 4533 "column": 79 4534 } 4535 } 4536 }, 4537 "loc": { 4538 "start": { 4539 "line": 57, 4540 "column": 78 4541 }, 4542 "end": { 4543 "line": 57, 4544 "column": 81 4545 } 4546 } 4547 } 4548 ], 4549 "constructor": { 4550 "type": "MethodDefinition", 4551 "key": { 4552 "type": "Identifier", 4553 "name": "constructor", 4554 "loc": { 4555 "start": { 4556 "line": 1, 4557 "column": 1 4558 }, 4559 "end": { 4560 "line": 1, 4561 "column": 1 4562 } 4563 } 4564 }, 4565 "kind": "constructor", 4566 "static": false, 4567 "optional": false, 4568 "computed": false, 4569 "value": { 4570 "type": "FunctionExpression", 4571 "function": { 4572 "type": "ScriptFunction", 4573 "id": null, 4574 "generator": false, 4575 "async": false, 4576 "expression": false, 4577 "params": [ 4578 { 4579 "type": "RestElement", 4580 "argument": { 4581 "type": "Identifier", 4582 "name": "args", 4583 "loc": { 4584 "start": { 4585 "line": 1, 4586 "column": 1 4587 }, 4588 "end": { 4589 "line": 1, 4590 "column": 1 4591 } 4592 } 4593 }, 4594 "loc": { 4595 "start": { 4596 "line": 1, 4597 "column": 1 4598 }, 4599 "end": { 4600 "line": 1, 4601 "column": 1 4602 } 4603 } 4604 } 4605 ], 4606 "body": { 4607 "type": "BlockStatement", 4608 "statements": [ 4609 { 4610 "type": "ExpressionStatement", 4611 "expression": { 4612 "type": "CallExpression", 4613 "callee": { 4614 "type": "Super", 4615 "loc": { 4616 "start": { 4617 "line": 1, 4618 "column": 1 4619 }, 4620 "end": { 4621 "line": 1, 4622 "column": 1 4623 } 4624 } 4625 }, 4626 "arguments": [ 4627 { 4628 "type": "SpreadElement", 4629 "argument": { 4630 "type": "Identifier", 4631 "name": "args", 4632 "loc": { 4633 "start": { 4634 "line": 1, 4635 "column": 1 4636 }, 4637 "end": { 4638 "line": 1, 4639 "column": 1 4640 } 4641 } 4642 }, 4643 "loc": { 4644 "start": { 4645 "line": 1, 4646 "column": 1 4647 }, 4648 "end": { 4649 "line": 1, 4650 "column": 1 4651 } 4652 } 4653 } 4654 ], 4655 "optional": false, 4656 "loc": { 4657 "start": { 4658 "line": 1, 4659 "column": 1 4660 }, 4661 "end": { 4662 "line": 1, 4663 "column": 1 4664 } 4665 } 4666 }, 4667 "loc": { 4668 "start": { 4669 "line": 1, 4670 "column": 1 4671 }, 4672 "end": { 4673 "line": 1, 4674 "column": 1 4675 } 4676 } 4677 } 4678 ], 4679 "loc": { 4680 "start": { 4681 "line": 1, 4682 "column": 1 4683 }, 4684 "end": { 4685 "line": 1, 4686 "column": 1 4687 } 4688 } 4689 }, 4690 "loc": { 4691 "start": { 4692 "line": 1, 4693 "column": 1 4694 }, 4695 "end": { 4696 "line": 1, 4697 "column": 1 4698 } 4699 } 4700 }, 4701 "loc": { 4702 "start": { 4703 "line": 1, 4704 "column": 1 4705 }, 4706 "end": { 4707 "line": 1, 4708 "column": 1 4709 } 4710 } 4711 }, 4712 "overloads": [], 4713 "decorators": [], 4714 "loc": { 4715 "start": { 4716 "line": 57, 4717 "column": 1 4718 }, 4719 "end": { 4720 "line": 59, 4721 "column": 2 4722 } 4723 } 4724 }, 4725 "body": [], 4726 "indexSignatures": [], 4727 "loc": { 4728 "start": { 4729 "line": 57, 4730 "column": 80 4731 }, 4732 "end": { 4733 "line": 59, 4734 "column": 2 4735 } 4736 } 4737 }, 4738 "decorators": [], 4739 "loc": { 4740 "start": { 4741 "line": 57, 4742 "column": 1 4743 }, 4744 "end": { 4745 "line": 59, 4746 "column": 2 4747 } 4748 } 4749 }, 4750 { 4751 "type": "VariableDeclaration", 4752 "declarations": [ 4753 { 4754 "type": "VariableDeclarator", 4755 "id": { 4756 "type": "Identifier", 4757 "name": "a", 4758 "typeAnnotation": { 4759 "type": "TSConstructorType", 4760 "params": [], 4761 "typeParameters": { 4762 "type": "TSTypeParameterDeclaration", 4763 "params": [ 4764 { 4765 "type": "TSTypeParameter", 4766 "name": { 4767 "type": "Identifier", 4768 "name": "A", 4769 "loc": { 4770 "start": { 4771 "line": 61, 4772 "column": 13 4773 }, 4774 "end": { 4775 "line": 61, 4776 "column": 14 4777 } 4778 } 4779 }, 4780 "in": false, 4781 "out": false, 4782 "loc": { 4783 "start": { 4784 "line": 61, 4785 "column": 13 4786 }, 4787 "end": { 4788 "line": 61, 4789 "column": 15 4790 } 4791 } 4792 } 4793 ], 4794 "loc": { 4795 "start": { 4796 "line": 61, 4797 "column": 12 4798 }, 4799 "end": { 4800 "line": 61, 4801 "column": 15 4802 } 4803 } 4804 }, 4805 "returnType": { 4806 "type": "TSFunctionType", 4807 "params": [], 4808 "typeParameters": { 4809 "type": "TSTypeParameterDeclaration", 4810 "params": [ 4811 { 4812 "type": "TSTypeParameter", 4813 "name": { 4814 "type": "Identifier", 4815 "name": "B", 4816 "loc": { 4817 "start": { 4818 "line": 61, 4819 "column": 22 4820 }, 4821 "end": { 4822 "line": 61, 4823 "column": 23 4824 } 4825 } 4826 }, 4827 "in": false, 4828 "out": false, 4829 "loc": { 4830 "start": { 4831 "line": 61, 4832 "column": 22 4833 }, 4834 "end": { 4835 "line": 61, 4836 "column": 24 4837 } 4838 } 4839 } 4840 ], 4841 "loc": { 4842 "start": { 4843 "line": 61, 4844 "column": 21 4845 }, 4846 "end": { 4847 "line": 61, 4848 "column": 24 4849 } 4850 } 4851 }, 4852 "returnType": { 4853 "type": "TSStringKeyword", 4854 "loc": { 4855 "start": { 4856 "line": 61, 4857 "column": 30 4858 }, 4859 "end": { 4860 "line": 61, 4861 "column": 36 4862 } 4863 } 4864 }, 4865 "loc": { 4866 "start": { 4867 "line": 61, 4868 "column": 21 4869 }, 4870 "end": { 4871 "line": 61, 4872 "column": 36 4873 } 4874 } 4875 }, 4876 "loc": { 4877 "start": { 4878 "line": 61, 4879 "column": 8 4880 }, 4881 "end": { 4882 "line": 61, 4883 "column": 36 4884 } 4885 } 4886 }, 4887 "loc": { 4888 "start": { 4889 "line": 61, 4890 "column": 5 4891 }, 4892 "end": { 4893 "line": 61, 4894 "column": 6 4895 } 4896 } 4897 }, 4898 "init": null, 4899 "loc": { 4900 "start": { 4901 "line": 61, 4902 "column": 5 4903 }, 4904 "end": { 4905 "line": 61, 4906 "column": 6 4907 } 4908 } 4909 } 4910 ], 4911 "kind": "var", 4912 "loc": { 4913 "start": { 4914 "line": 61, 4915 "column": 1 4916 }, 4917 "end": { 4918 "line": 61, 4919 "column": 37 4920 } 4921 } 4922 }, 4923 { 4924 "type": "VariableDeclaration", 4925 "declarations": [ 4926 { 4927 "type": "VariableDeclarator", 4928 "id": { 4929 "type": "Identifier", 4930 "name": "b", 4931 "typeAnnotation": { 4932 "type": "TSFunctionType", 4933 "params": [ 4934 { 4935 "type": "Identifier", 4936 "name": "a", 4937 "typeAnnotation": { 4938 "type": "TSUnionType", 4939 "types": [ 4940 { 4941 "type": "TSNumberKeyword", 4942 "loc": { 4943 "start": { 4944 "line": 62, 4945 "column": 32 4946 }, 4947 "end": { 4948 "line": 62, 4949 "column": 38 4950 } 4951 } 4952 }, 4953 { 4954 "type": "TSStringKeyword", 4955 "loc": { 4956 "start": { 4957 "line": 62, 4958 "column": 41 4959 }, 4960 "end": { 4961 "line": 62, 4962 "column": 47 4963 } 4964 } 4965 } 4966 ], 4967 "loc": { 4968 "start": { 4969 "line": 62, 4970 "column": 32 4971 }, 4972 "end": { 4973 "line": 62, 4974 "column": 47 4975 } 4976 } 4977 }, 4978 "loc": { 4979 "start": { 4980 "line": 62, 4981 "column": 29 4982 }, 4983 "end": { 4984 "line": 62, 4985 "column": 30 4986 } 4987 } 4988 } 4989 ], 4990 "typeParameters": { 4991 "type": "TSTypeParameterDeclaration", 4992 "params": [ 4993 { 4994 "type": "TSTypeParameter", 4995 "name": { 4996 "type": "Identifier", 4997 "name": "A", 4998 "loc": { 4999 "start": { 5000 "line": 62, 5001 "column": 9 5002 }, 5003 "end": { 5004 "line": 62, 5005 "column": 10 5006 } 5007 } 5008 }, 5009 "constraint": { 5010 "type": "TSTypeReference", 5011 "typeName": { 5012 "type": "Identifier", 5013 "name": "T", 5014 "loc": { 5015 "start": { 5016 "line": 62, 5017 "column": 19 5018 }, 5019 "end": { 5020 "line": 62, 5021 "column": 20 5022 } 5023 } 5024 }, 5025 "loc": { 5026 "start": { 5027 "line": 62, 5028 "column": 19 5029 }, 5030 "end": { 5031 "line": 62, 5032 "column": 20 5033 } 5034 } 5035 }, 5036 "in": false, 5037 "out": false, 5038 "loc": { 5039 "start": { 5040 "line": 62, 5041 "column": 9 5042 }, 5043 "end": { 5044 "line": 62, 5045 "column": 21 5046 } 5047 } 5048 }, 5049 { 5050 "type": "TSTypeParameter", 5051 "name": { 5052 "type": "Identifier", 5053 "name": "U", 5054 "loc": { 5055 "start": { 5056 "line": 62, 5057 "column": 22 5058 }, 5059 "end": { 5060 "line": 62, 5061 "column": 23 5062 } 5063 } 5064 }, 5065 "default": { 5066 "type": "TSLiteralType", 5067 "literal": { 5068 "type": "NumberLiteral", 5069 "value": 5, 5070 "loc": { 5071 "start": { 5072 "line": 62, 5073 "column": 26 5074 }, 5075 "end": { 5076 "line": 62, 5077 "column": 27 5078 } 5079 } 5080 }, 5081 "loc": { 5082 "start": { 5083 "line": 62, 5084 "column": 26 5085 }, 5086 "end": { 5087 "line": 62, 5088 "column": 27 5089 } 5090 } 5091 }, 5092 "in": false, 5093 "out": false, 5094 "loc": { 5095 "start": { 5096 "line": 62, 5097 "column": 22 5098 }, 5099 "end": { 5100 "line": 62, 5101 "column": 28 5102 } 5103 } 5104 } 5105 ], 5106 "loc": { 5107 "start": { 5108 "line": 62, 5109 "column": 8 5110 }, 5111 "end": { 5112 "line": 62, 5113 "column": 28 5114 } 5115 } 5116 }, 5117 "returnType": { 5118 "type": "TSTypeLiteral", 5119 "members": [ 5120 { 5121 "type": "TSPropertySignature", 5122 "computed": false, 5123 "optional": false, 5124 "readonly": false, 5125 "key": { 5126 "type": "Identifier", 5127 "name": "a", 5128 "loc": { 5129 "start": { 5130 "line": 62, 5131 "column": 54 5132 }, 5133 "end": { 5134 "line": 62, 5135 "column": 55 5136 } 5137 } 5138 }, 5139 "typeAnnotation": { 5140 "type": "TSNumberKeyword", 5141 "loc": { 5142 "start": { 5143 "line": 62, 5144 "column": 57 5145 }, 5146 "end": { 5147 "line": 62, 5148 "column": 63 5149 } 5150 } 5151 }, 5152 "loc": { 5153 "start": { 5154 "line": 62, 5155 "column": 54 5156 }, 5157 "end": { 5158 "line": 62, 5159 "column": 65 5160 } 5161 } 5162 } 5163 ], 5164 "loc": { 5165 "start": { 5166 "line": 62, 5167 "column": 52 5168 }, 5169 "end": { 5170 "line": 62, 5171 "column": 65 5172 } 5173 } 5174 }, 5175 "loc": { 5176 "start": { 5177 "line": 62, 5178 "column": 8 5179 }, 5180 "end": { 5181 "line": 62, 5182 "column": 65 5183 } 5184 } 5185 }, 5186 "loc": { 5187 "start": { 5188 "line": 62, 5189 "column": 5 5190 }, 5191 "end": { 5192 "line": 62, 5193 "column": 6 5194 } 5195 } 5196 }, 5197 "init": null, 5198 "loc": { 5199 "start": { 5200 "line": 62, 5201 "column": 5 5202 }, 5203 "end": { 5204 "line": 62, 5205 "column": 6 5206 } 5207 } 5208 } 5209 ], 5210 "kind": "var", 5211 "loc": { 5212 "start": { 5213 "line": 62, 5214 "column": 1 5215 }, 5216 "end": { 5217 "line": 62, 5218 "column": 66 5219 } 5220 } 5221 }, 5222 { 5223 "type": "VariableDeclaration", 5224 "declarations": [ 5225 { 5226 "type": "VariableDeclarator", 5227 "id": { 5228 "type": "Identifier", 5229 "name": "c", 5230 "typeAnnotation": { 5231 "type": "TSIndexedAccessType", 5232 "objectType": { 5233 "type": "TSTypeReference", 5234 "typeName": { 5235 "type": "TSQualifiedName", 5236 "left": { 5237 "type": "Identifier", 5238 "name": "B", 5239 "loc": { 5240 "start": { 5241 "line": 64, 5242 "column": 8 5243 }, 5244 "end": { 5245 "line": 64, 5246 "column": 9 5247 } 5248 } 5249 }, 5250 "right": { 5251 "type": "Identifier", 5252 "name": "T", 5253 "loc": { 5254 "start": { 5255 "line": 64, 5256 "column": 10 5257 }, 5258 "end": { 5259 "line": 64, 5260 "column": 11 5261 } 5262 } 5263 }, 5264 "loc": { 5265 "start": { 5266 "line": 64, 5267 "column": 8 5268 }, 5269 "end": { 5270 "line": 64, 5271 "column": 12 5272 } 5273 } 5274 }, 5275 "typeParameters": { 5276 "type": "TSTypeParameterInstantiation", 5277 "params": [ 5278 { 5279 "type": "TSTypeReference", 5280 "typeName": { 5281 "type": "Identifier", 5282 "name": "A", 5283 "loc": { 5284 "start": { 5285 "line": 64, 5286 "column": 12 5287 }, 5288 "end": { 5289 "line": 64, 5290 "column": 13 5291 } 5292 } 5293 }, 5294 "typeParameters": { 5295 "type": "TSTypeParameterInstantiation", 5296 "params": [ 5297 { 5298 "type": "TSTypeReference", 5299 "typeName": { 5300 "type": "Identifier", 5301 "name": "C", 5302 "loc": { 5303 "start": { 5304 "line": 64, 5305 "column": 14 5306 }, 5307 "end": { 5308 "line": 64, 5309 "column": 15 5310 } 5311 } 5312 }, 5313 "typeParameters": { 5314 "type": "TSTypeParameterInstantiation", 5315 "params": [ 5316 { 5317 "type": "TSNumberKeyword", 5318 "loc": { 5319 "start": { 5320 "line": 64, 5321 "column": 16 5322 }, 5323 "end": { 5324 "line": 64, 5325 "column": 22 5326 } 5327 } 5328 } 5329 ], 5330 "loc": { 5331 "start": { 5332 "line": 64, 5333 "column": 15 5334 }, 5335 "end": { 5336 "line": 64, 5337 "column": 25 5338 } 5339 } 5340 }, 5341 "loc": { 5342 "start": { 5343 "line": 64, 5344 "column": 14 5345 }, 5346 "end": { 5347 "line": 64, 5348 "column": 15 5349 } 5350 } 5351 } 5352 ], 5353 "loc": { 5354 "start": { 5355 "line": 64, 5356 "column": 13 5357 }, 5358 "end": { 5359 "line": 64, 5360 "column": 25 5361 } 5362 } 5363 }, 5364 "loc": { 5365 "start": { 5366 "line": 64, 5367 "column": 12 5368 }, 5369 "end": { 5370 "line": 64, 5371 "column": 13 5372 } 5373 } 5374 } 5375 ], 5376 "loc": { 5377 "start": { 5378 "line": 64, 5379 "column": 11 5380 }, 5381 "end": { 5382 "line": 64, 5383 "column": 25 5384 } 5385 } 5386 }, 5387 "loc": { 5388 "start": { 5389 "line": 64, 5390 "column": 8 5391 }, 5392 "end": { 5393 "line": 64, 5394 "column": 26 5395 } 5396 } 5397 }, 5398 "indexType": { 5399 "type": "TSLiteralType", 5400 "literal": { 5401 "type": "NumberLiteral", 5402 "value": 0, 5403 "loc": { 5404 "start": { 5405 "line": 64, 5406 "column": 26 5407 }, 5408 "end": { 5409 "line": 64, 5410 "column": 27 5411 } 5412 } 5413 }, 5414 "loc": { 5415 "start": { 5416 "line": 64, 5417 "column": 26 5418 }, 5419 "end": { 5420 "line": 64, 5421 "column": 27 5422 } 5423 } 5424 }, 5425 "loc": { 5426 "start": { 5427 "line": 64, 5428 "column": 8 5429 }, 5430 "end": { 5431 "line": 64, 5432 "column": 29 5433 } 5434 } 5435 }, 5436 "loc": { 5437 "start": { 5438 "line": 64, 5439 "column": 5 5440 }, 5441 "end": { 5442 "line": 64, 5443 "column": 6 5444 } 5445 } 5446 }, 5447 "init": null, 5448 "loc": { 5449 "start": { 5450 "line": 64, 5451 "column": 5 5452 }, 5453 "end": { 5454 "line": 64, 5455 "column": 6 5456 } 5457 } 5458 } 5459 ], 5460 "kind": "var", 5461 "loc": { 5462 "start": { 5463 "line": 64, 5464 "column": 1 5465 }, 5466 "end": { 5467 "line": 64, 5468 "column": 29 5469 } 5470 } 5471 }, 5472 { 5473 "type": "VariableDeclaration", 5474 "declarations": [ 5475 { 5476 "type": "VariableDeclarator", 5477 "id": { 5478 "type": "Identifier", 5479 "name": "d", 5480 "typeAnnotation": { 5481 "type": "TSTypeReference", 5482 "typeName": { 5483 "type": "Identifier", 5484 "name": "A", 5485 "loc": { 5486 "start": { 5487 "line": 65, 5488 "column": 8 5489 }, 5490 "end": { 5491 "line": 65, 5492 "column": 9 5493 } 5494 } 5495 }, 5496 "typeParameters": { 5497 "type": "TSTypeParameterInstantiation", 5498 "params": [ 5499 { 5500 "type": "TSNumberKeyword", 5501 "loc": { 5502 "start": { 5503 "line": 65, 5504 "column": 10 5505 }, 5506 "end": { 5507 "line": 65, 5508 "column": 16 5509 } 5510 } 5511 }, 5512 { 5513 "type": "TSTypeLiteral", 5514 "members": [ 5515 { 5516 "type": "TSPropertySignature", 5517 "computed": false, 5518 "optional": false, 5519 "readonly": false, 5520 "key": { 5521 "type": "Identifier", 5522 "name": "a", 5523 "loc": { 5524 "start": { 5525 "line": 65, 5526 "column": 20 5527 }, 5528 "end": { 5529 "line": 65, 5530 "column": 21 5531 } 5532 } 5533 }, 5534 "typeAnnotation": { 5535 "type": "TSNumberKeyword", 5536 "loc": { 5537 "start": { 5538 "line": 65, 5539 "column": 23 5540 }, 5541 "end": { 5542 "line": 65, 5543 "column": 29 5544 } 5545 } 5546 }, 5547 "loc": { 5548 "start": { 5549 "line": 65, 5550 "column": 20 5551 }, 5552 "end": { 5553 "line": 65, 5554 "column": 30 5555 } 5556 } 5557 }, 5558 { 5559 "type": "TSPropertySignature", 5560 "computed": false, 5561 "optional": false, 5562 "readonly": false, 5563 "key": { 5564 "type": "Identifier", 5565 "name": "b", 5566 "loc": { 5567 "start": { 5568 "line": 65, 5569 "column": 31 5570 }, 5571 "end": { 5572 "line": 65, 5573 "column": 32 5574 } 5575 } 5576 }, 5577 "typeAnnotation": { 5578 "type": "TSStringKeyword", 5579 "loc": { 5580 "start": { 5581 "line": 65, 5582 "column": 34 5583 }, 5584 "end": { 5585 "line": 65, 5586 "column": 40 5587 } 5588 } 5589 }, 5590 "loc": { 5591 "start": { 5592 "line": 65, 5593 "column": 31 5594 }, 5595 "end": { 5596 "line": 65, 5597 "column": 42 5598 } 5599 } 5600 } 5601 ], 5602 "loc": { 5603 "start": { 5604 "line": 65, 5605 "column": 18 5606 }, 5607 "end": { 5608 "line": 65, 5609 "column": 42 5610 } 5611 } 5612 }, 5613 { 5614 "type": "TSTupleType", 5615 "elementTypes": [ 5616 { 5617 "type": "TSNumberKeyword", 5618 "loc": { 5619 "start": { 5620 "line": 65, 5621 "column": 45 5622 }, 5623 "end": { 5624 "line": 65, 5625 "column": 51 5626 } 5627 } 5628 }, 5629 { 5630 "type": "TSStringKeyword", 5631 "loc": { 5632 "start": { 5633 "line": 65, 5634 "column": 53 5635 }, 5636 "end": { 5637 "line": 65, 5638 "column": 59 5639 } 5640 } 5641 } 5642 ], 5643 "loc": { 5644 "start": { 5645 "line": 65, 5646 "column": 44 5647 }, 5648 "end": { 5649 "line": 65, 5650 "column": 60 5651 } 5652 } 5653 } 5654 ], 5655 "loc": { 5656 "start": { 5657 "line": 65, 5658 "column": 9 5659 }, 5660 "end": { 5661 "line": 65, 5662 "column": 61 5663 } 5664 } 5665 }, 5666 "loc": { 5667 "start": { 5668 "line": 65, 5669 "column": 8 5670 }, 5671 "end": { 5672 "line": 65, 5673 "column": 9 5674 } 5675 } 5676 }, 5677 "loc": { 5678 "start": { 5679 "line": 65, 5680 "column": 5 5681 }, 5682 "end": { 5683 "line": 65, 5684 "column": 6 5685 } 5686 } 5687 }, 5688 "init": null, 5689 "loc": { 5690 "start": { 5691 "line": 65, 5692 "column": 5 5693 }, 5694 "end": { 5695 "line": 65, 5696 "column": 6 5697 } 5698 } 5699 } 5700 ], 5701 "kind": "var", 5702 "loc": { 5703 "start": { 5704 "line": 65, 5705 "column": 1 5706 }, 5707 "end": { 5708 "line": 65, 5709 "column": 62 5710 } 5711 } 5712 }, 5713 { 5714 "type": "VariableDeclaration", 5715 "declarations": [ 5716 { 5717 "type": "VariableDeclarator", 5718 "id": { 5719 "type": "Identifier", 5720 "name": "e", 5721 "typeAnnotation": { 5722 "type": "TSTypeReference", 5723 "typeName": { 5724 "type": "Identifier", 5725 "name": "T", 5726 "loc": { 5727 "start": { 5728 "line": 66, 5729 "column": 8 5730 }, 5731 "end": { 5732 "line": 66, 5733 "column": 9 5734 } 5735 } 5736 }, 5737 "typeParameters": { 5738 "type": "TSTypeParameterInstantiation", 5739 "params": [ 5740 { 5741 "type": "TSFunctionType", 5742 "params": [], 5743 "typeParameters": { 5744 "type": "TSTypeParameterDeclaration", 5745 "params": [ 5746 { 5747 "type": "TSTypeParameter", 5748 "name": { 5749 "type": "Identifier", 5750 "name": "A", 5751 "loc": { 5752 "start": { 5753 "line": 66, 5754 "column": 11 5755 }, 5756 "end": { 5757 "line": 66, 5758 "column": 12 5759 } 5760 } 5761 }, 5762 "in": false, 5763 "out": false, 5764 "loc": { 5765 "start": { 5766 "line": 66, 5767 "column": 11 5768 }, 5769 "end": { 5770 "line": 66, 5771 "column": 13 5772 } 5773 } 5774 } 5775 ], 5776 "loc": { 5777 "start": { 5778 "line": 66, 5779 "column": 10 5780 }, 5781 "end": { 5782 "line": 66, 5783 "column": 13 5784 } 5785 } 5786 }, 5787 "returnType": { 5788 "type": "TSTypeLiteral", 5789 "members": [], 5790 "loc": { 5791 "start": { 5792 "line": 66, 5793 "column": 19 5794 }, 5795 "end": { 5796 "line": 66, 5797 "column": 21 5798 } 5799 } 5800 }, 5801 "loc": { 5802 "start": { 5803 "line": 66, 5804 "column": 10 5805 }, 5806 "end": { 5807 "line": 66, 5808 "column": 21 5809 } 5810 } 5811 } 5812 ], 5813 "loc": { 5814 "start": { 5815 "line": 66, 5816 "column": 9 5817 }, 5818 "end": { 5819 "line": 66, 5820 "column": 22 5821 } 5822 } 5823 }, 5824 "loc": { 5825 "start": { 5826 "line": 66, 5827 "column": 8 5828 }, 5829 "end": { 5830 "line": 66, 5831 "column": 9 5832 } 5833 } 5834 }, 5835 "loc": { 5836 "start": { 5837 "line": 66, 5838 "column": 5 5839 }, 5840 "end": { 5841 "line": 66, 5842 "column": 6 5843 } 5844 } 5845 }, 5846 "init": null, 5847 "loc": { 5848 "start": { 5849 "line": 66, 5850 "column": 5 5851 }, 5852 "end": { 5853 "line": 66, 5854 "column": 6 5855 } 5856 } 5857 } 5858 ], 5859 "kind": "var", 5860 "loc": { 5861 "start": { 5862 "line": 66, 5863 "column": 1 5864 }, 5865 "end": { 5866 "line": 66, 5867 "column": 23 5868 } 5869 } 5870 }, 5871 { 5872 "type": "TSTypeAliasDeclaration", 5873 "id": { 5874 "type": "Identifier", 5875 "name": "E", 5876 "loc": { 5877 "start": { 5878 "line": 68, 5879 "column": 6 5880 }, 5881 "end": { 5882 "line": 68, 5883 "column": 7 5884 } 5885 } 5886 }, 5887 "typeAnnotation": { 5888 "type": "TSUnionType", 5889 "types": [ 5890 { 5891 "type": "TSNumberKeyword", 5892 "loc": { 5893 "start": { 5894 "line": 68, 5895 "column": 38 5896 }, 5897 "end": { 5898 "line": 68, 5899 "column": 44 5900 } 5901 } 5902 }, 5903 { 5904 "type": "TSTypeReference", 5905 "typeName": { 5906 "type": "Identifier", 5907 "name": "T", 5908 "loc": { 5909 "start": { 5910 "line": 68, 5911 "column": 47 5912 }, 5913 "end": { 5914 "line": 68, 5915 "column": 48 5916 } 5917 } 5918 }, 5919 "loc": { 5920 "start": { 5921 "line": 68, 5922 "column": 47 5923 }, 5924 "end": { 5925 "line": 68, 5926 "column": 48 5927 } 5928 } 5929 }, 5930 { 5931 "type": "TSStringKeyword", 5932 "loc": { 5933 "start": { 5934 "line": 68, 5935 "column": 51 5936 }, 5937 "end": { 5938 "line": 68, 5939 "column": 57 5940 } 5941 } 5942 } 5943 ], 5944 "loc": { 5945 "start": { 5946 "line": 68, 5947 "column": 38 5948 }, 5949 "end": { 5950 "line": 68, 5951 "column": 57 5952 } 5953 } 5954 }, 5955 "typeParameters": { 5956 "type": "TSTypeParameterDeclaration", 5957 "params": [ 5958 { 5959 "type": "TSTypeParameter", 5960 "name": { 5961 "type": "Identifier", 5962 "name": "R", 5963 "loc": { 5964 "start": { 5965 "line": 68, 5966 "column": 8 5967 }, 5968 "end": { 5969 "line": 68, 5970 "column": 9 5971 } 5972 } 5973 }, 5974 "constraint": { 5975 "type": "TSTypeReference", 5976 "typeName": { 5977 "type": "Identifier", 5978 "name": "B", 5979 "loc": { 5980 "start": { 5981 "line": 68, 5982 "column": 18 5983 }, 5984 "end": { 5985 "line": 68, 5986 "column": 19 5987 } 5988 } 5989 }, 5990 "loc": { 5991 "start": { 5992 "line": 68, 5993 "column": 18 5994 }, 5995 "end": { 5996 "line": 68, 5997 "column": 19 5998 } 5999 } 6000 }, 6001 "in": false, 6002 "out": false, 6003 "loc": { 6004 "start": { 6005 "line": 68, 6006 "column": 8 6007 }, 6008 "end": { 6009 "line": 68, 6010 "column": 20 6011 } 6012 } 6013 }, 6014 { 6015 "type": "TSTypeParameter", 6016 "name": { 6017 "type": "Identifier", 6018 "name": "C", 6019 "loc": { 6020 "start": { 6021 "line": 68, 6022 "column": 21 6023 }, 6024 "end": { 6025 "line": 68, 6026 "column": 22 6027 } 6028 } 6029 }, 6030 "in": false, 6031 "out": false, 6032 "loc": { 6033 "start": { 6034 "line": 68, 6035 "column": 21 6036 }, 6037 "end": { 6038 "line": 68, 6039 "column": 23 6040 } 6041 } 6042 }, 6043 { 6044 "type": "TSTypeParameter", 6045 "name": { 6046 "type": "Identifier", 6047 "name": "T", 6048 "loc": { 6049 "start": { 6050 "line": 68, 6051 "column": 24 6052 }, 6053 "end": { 6054 "line": 68, 6055 "column": 25 6056 } 6057 } 6058 }, 6059 "default": { 6060 "type": "TSNumberKeyword", 6061 "loc": { 6062 "start": { 6063 "line": 68, 6064 "column": 28 6065 }, 6066 "end": { 6067 "line": 68, 6068 "column": 34 6069 } 6070 } 6071 }, 6072 "in": false, 6073 "out": false, 6074 "loc": { 6075 "start": { 6076 "line": 68, 6077 "column": 24 6078 }, 6079 "end": { 6080 "line": 68, 6081 "column": 35 6082 } 6083 } 6084 } 6085 ], 6086 "loc": { 6087 "start": { 6088 "line": 68, 6089 "column": 7 6090 }, 6091 "end": { 6092 "line": 68, 6093 "column": 35 6094 } 6095 } 6096 }, 6097 "loc": { 6098 "start": { 6099 "line": 68, 6100 "column": 1 6101 }, 6102 "end": { 6103 "line": 68, 6104 "column": 58 6105 } 6106 } 6107 }, 6108 { 6109 "type": "TSTypeAliasDeclaration", 6110 "id": { 6111 "type": "Identifier", 6112 "name": "P", 6113 "loc": { 6114 "start": { 6115 "line": 69, 6116 "column": 6 6117 }, 6118 "end": { 6119 "line": 69, 6120 "column": 7 6121 } 6122 } 6123 }, 6124 "typeAnnotation": { 6125 "type": "TSTypeLiteral", 6126 "members": [ 6127 { 6128 "type": "TSPropertySignature", 6129 "computed": false, 6130 "optional": false, 6131 "readonly": false, 6132 "key": { 6133 "type": "Identifier", 6134 "name": "a", 6135 "loc": { 6136 "start": { 6137 "line": 69, 6138 "column": 52 6139 }, 6140 "end": { 6141 "line": 69, 6142 "column": 53 6143 } 6144 } 6145 }, 6146 "typeAnnotation": { 6147 "type": "TSTypeReference", 6148 "typeName": { 6149 "type": "Identifier", 6150 "name": "K", 6151 "loc": { 6152 "start": { 6153 "line": 69, 6154 "column": 54 6155 }, 6156 "end": { 6157 "line": 69, 6158 "column": 55 6159 } 6160 } 6161 }, 6162 "loc": { 6163 "start": { 6164 "line": 69, 6165 "column": 54 6166 }, 6167 "end": { 6168 "line": 69, 6169 "column": 55 6170 } 6171 } 6172 }, 6173 "loc": { 6174 "start": { 6175 "line": 69, 6176 "column": 52 6177 }, 6178 "end": { 6179 "line": 69, 6180 "column": 56 6181 } 6182 } 6183 }, 6184 { 6185 "type": "TSPropertySignature", 6186 "computed": false, 6187 "optional": false, 6188 "readonly": false, 6189 "key": { 6190 "type": "Identifier", 6191 "name": "b", 6192 "loc": { 6193 "start": { 6194 "line": 69, 6195 "column": 57 6196 }, 6197 "end": { 6198 "line": 69, 6199 "column": 58 6200 } 6201 } 6202 }, 6203 "typeAnnotation": { 6204 "type": "TSTypeReference", 6205 "typeName": { 6206 "type": "Identifier", 6207 "name": "Q", 6208 "loc": { 6209 "start": { 6210 "line": 69, 6211 "column": 59 6212 }, 6213 "end": { 6214 "line": 69, 6215 "column": 60 6216 } 6217 } 6218 }, 6219 "loc": { 6220 "start": { 6221 "line": 69, 6222 "column": 59 6223 }, 6224 "end": { 6225 "line": 69, 6226 "column": 60 6227 } 6228 } 6229 }, 6230 "loc": { 6231 "start": { 6232 "line": 69, 6233 "column": 57 6234 }, 6235 "end": { 6236 "line": 69, 6237 "column": 61 6238 } 6239 } 6240 } 6241 ], 6242 "loc": { 6243 "start": { 6244 "line": 69, 6245 "column": 51 6246 }, 6247 "end": { 6248 "line": 69, 6249 "column": 61 6250 } 6251 } 6252 }, 6253 "typeParameters": { 6254 "type": "TSTypeParameterDeclaration", 6255 "params": [ 6256 { 6257 "type": "TSTypeParameter", 6258 "name": { 6259 "type": "Identifier", 6260 "name": "K", 6261 "loc": { 6262 "start": { 6263 "line": 69, 6264 "column": 8 6265 }, 6266 "end": { 6267 "line": 69, 6268 "column": 9 6269 } 6270 } 6271 }, 6272 "in": false, 6273 "out": false, 6274 "loc": { 6275 "start": { 6276 "line": 69, 6277 "column": 8 6278 }, 6279 "end": { 6280 "line": 69, 6281 "column": 10 6282 } 6283 } 6284 }, 6285 { 6286 "type": "TSTypeParameter", 6287 "name": { 6288 "type": "Identifier", 6289 "name": "Q", 6290 "loc": { 6291 "start": { 6292 "line": 69, 6293 "column": 11 6294 }, 6295 "end": { 6296 "line": 69, 6297 "column": 12 6298 } 6299 } 6300 }, 6301 "default": { 6302 "type": "TSUnionType", 6303 "types": [ 6304 { 6305 "type": "TSTupleType", 6306 "elementTypes": [ 6307 { 6308 "type": "TSNumberKeyword", 6309 "loc": { 6310 "start": { 6311 "line": 69, 6312 "column": 16 6313 }, 6314 "end": { 6315 "line": 69, 6316 "column": 22 6317 } 6318 } 6319 }, 6320 { 6321 "type": "TSNumberKeyword", 6322 "loc": { 6323 "start": { 6324 "line": 69, 6325 "column": 24 6326 }, 6327 "end": { 6328 "line": 69, 6329 "column": 30 6330 } 6331 } 6332 }, 6333 { 6334 "type": "TSStringKeyword", 6335 "loc": { 6336 "start": { 6337 "line": 69, 6338 "column": 32 6339 }, 6340 "end": { 6341 "line": 69, 6342 "column": 38 6343 } 6344 } 6345 } 6346 ], 6347 "loc": { 6348 "start": { 6349 "line": 69, 6350 "column": 15 6351 }, 6352 "end": { 6353 "line": 69, 6354 "column": 39 6355 } 6356 } 6357 }, 6358 { 6359 "type": "TSArrayType", 6360 "elementType": { 6361 "type": "TSAnyKeyword", 6362 "loc": { 6363 "start": { 6364 "line": 69, 6365 "column": 42 6366 }, 6367 "end": { 6368 "line": 69, 6369 "column": 45 6370 } 6371 } 6372 }, 6373 "loc": { 6374 "start": { 6375 "line": 69, 6376 "column": 42 6377 }, 6378 "end": { 6379 "line": 69, 6380 "column": 47 6381 } 6382 } 6383 } 6384 ], 6385 "loc": { 6386 "start": { 6387 "line": 69, 6388 "column": 15 6389 }, 6390 "end": { 6391 "line": 69, 6392 "column": 47 6393 } 6394 } 6395 }, 6396 "in": false, 6397 "out": false, 6398 "loc": { 6399 "start": { 6400 "line": 69, 6401 "column": 11 6402 }, 6403 "end": { 6404 "line": 69, 6405 "column": 48 6406 } 6407 } 6408 } 6409 ], 6410 "loc": { 6411 "start": { 6412 "line": 69, 6413 "column": 7 6414 }, 6415 "end": { 6416 "line": 69, 6417 "column": 48 6418 } 6419 } 6420 }, 6421 "loc": { 6422 "start": { 6423 "line": 69, 6424 "column": 1 6425 }, 6426 "end": { 6427 "line": 69, 6428 "column": 62 6429 } 6430 } 6431 }, 6432 { 6433 "type": "ExpressionStatement", 6434 "expression": { 6435 "type": "CallExpression", 6436 "callee": { 6437 "type": "Identifier", 6438 "name": "async", 6439 "loc": { 6440 "start": { 6441 "line": 71, 6442 "column": 1 6443 }, 6444 "end": { 6445 "line": 71, 6446 "column": 6 6447 } 6448 } 6449 }, 6450 "arguments": [], 6451 "optional": false, 6452 "typeParameters": { 6453 "type": "TSTypeParameterInstantiation", 6454 "params": [ 6455 { 6456 "type": "TSFunctionType", 6457 "params": [], 6458 "typeParameters": { 6459 "type": "TSTypeParameterDeclaration", 6460 "params": [ 6461 { 6462 "type": "TSTypeParameter", 6463 "name": { 6464 "type": "Identifier", 6465 "name": "A", 6466 "loc": { 6467 "start": { 6468 "line": 71, 6469 "column": 8 6470 }, 6471 "end": { 6472 "line": 71, 6473 "column": 9 6474 } 6475 } 6476 }, 6477 "in": false, 6478 "out": false, 6479 "loc": { 6480 "start": { 6481 "line": 71, 6482 "column": 8 6483 }, 6484 "end": { 6485 "line": 71, 6486 "column": 10 6487 } 6488 } 6489 } 6490 ], 6491 "loc": { 6492 "start": { 6493 "line": 71, 6494 "column": 7 6495 }, 6496 "end": { 6497 "line": 71, 6498 "column": 10 6499 } 6500 } 6501 }, 6502 "returnType": { 6503 "type": "TSTypeLiteral", 6504 "members": [], 6505 "loc": { 6506 "start": { 6507 "line": 71, 6508 "column": 16 6509 }, 6510 "end": { 6511 "line": 71, 6512 "column": 18 6513 } 6514 } 6515 }, 6516 "loc": { 6517 "start": { 6518 "line": 71, 6519 "column": 7 6520 }, 6521 "end": { 6522 "line": 71, 6523 "column": 18 6524 } 6525 } 6526 } 6527 ], 6528 "loc": { 6529 "start": { 6530 "line": 71, 6531 "column": 6 6532 }, 6533 "end": { 6534 "line": 71, 6535 "column": 19 6536 } 6537 } 6538 }, 6539 "loc": { 6540 "start": { 6541 "line": 71, 6542 "column": 1 6543 }, 6544 "end": { 6545 "line": 71, 6546 "column": 21 6547 } 6548 } 6549 }, 6550 "loc": { 6551 "start": { 6552 "line": 71, 6553 "column": 1 6554 }, 6555 "end": { 6556 "line": 71, 6557 "column": 22 6558 } 6559 } 6560 }, 6561 { 6562 "type": "ExpressionStatement", 6563 "expression": { 6564 "type": "CallExpression", 6565 "callee": { 6566 "type": "Identifier", 6567 "name": "async", 6568 "loc": { 6569 "start": { 6570 "line": 72, 6571 "column": 1 6572 }, 6573 "end": { 6574 "line": 72, 6575 "column": 6 6576 } 6577 } 6578 }, 6579 "arguments": [], 6580 "optional": false, 6581 "typeParameters": { 6582 "type": "TSTypeParameterInstantiation", 6583 "params": [ 6584 { 6585 "type": "TSNumberKeyword", 6586 "loc": { 6587 "start": { 6588 "line": 72, 6589 "column": 7 6590 }, 6591 "end": { 6592 "line": 72, 6593 "column": 13 6594 } 6595 } 6596 } 6597 ], 6598 "loc": { 6599 "start": { 6600 "line": 72, 6601 "column": 6 6602 }, 6603 "end": { 6604 "line": 72, 6605 "column": 14 6606 } 6607 } 6608 }, 6609 "loc": { 6610 "start": { 6611 "line": 72, 6612 "column": 1 6613 }, 6614 "end": { 6615 "line": 72, 6616 "column": 16 6617 } 6618 } 6619 }, 6620 "loc": { 6621 "start": { 6622 "line": 72, 6623 "column": 1 6624 }, 6625 "end": { 6626 "line": 72, 6627 "column": 17 6628 } 6629 } 6630 }, 6631 { 6632 "type": "ExpressionStatement", 6633 "expression": { 6634 "type": "ArrowFunctionExpression", 6635 "function": { 6636 "type": "ScriptFunction", 6637 "id": null, 6638 "generator": false, 6639 "async": false, 6640 "expression": true, 6641 "params": [], 6642 "returnType": { 6643 "type": "TSNumberKeyword", 6644 "loc": { 6645 "start": { 6646 "line": 73, 6647 "column": 17 6648 }, 6649 "end": { 6650 "line": 73, 6651 "column": 23 6652 } 6653 } 6654 }, 6655 "typeParameters": { 6656 "type": "TSTypeParameterDeclaration", 6657 "params": [ 6658 { 6659 "type": "TSTypeParameter", 6660 "name": { 6661 "type": "Identifier", 6662 "name": "A", 6663 "loc": { 6664 "start": { 6665 "line": 73, 6666 "column": 2 6667 }, 6668 "end": { 6669 "line": 73, 6670 "column": 3 6671 } 6672 } 6673 }, 6674 "constraint": { 6675 "type": "TSTypeReference", 6676 "typeName": { 6677 "type": "Identifier", 6678 "name": "B", 6679 "loc": { 6680 "start": { 6681 "line": 73, 6682 "column": 12 6683 }, 6684 "end": { 6685 "line": 73, 6686 "column": 13 6687 } 6688 } 6689 }, 6690 "loc": { 6691 "start": { 6692 "line": 73, 6693 "column": 12 6694 }, 6695 "end": { 6696 "line": 73, 6697 "column": 13 6698 } 6699 } 6700 }, 6701 "in": false, 6702 "out": false, 6703 "loc": { 6704 "start": { 6705 "line": 73, 6706 "column": 2 6707 }, 6708 "end": { 6709 "line": 73, 6710 "column": 14 6711 } 6712 } 6713 } 6714 ], 6715 "loc": { 6716 "start": { 6717 "line": 73, 6718 "column": 1 6719 }, 6720 "end": { 6721 "line": 73, 6722 "column": 14 6723 } 6724 } 6725 }, 6726 "body": { 6727 "type": "BooleanLiteral", 6728 "value": true, 6729 "loc": { 6730 "start": { 6731 "line": 73, 6732 "column": 27 6733 }, 6734 "end": { 6735 "line": 73, 6736 "column": 31 6737 } 6738 } 6739 }, 6740 "loc": { 6741 "start": { 6742 "line": 73, 6743 "column": 1 6744 }, 6745 "end": { 6746 "line": 73, 6747 "column": 31 6748 } 6749 } 6750 }, 6751 "loc": { 6752 "start": { 6753 "line": 73, 6754 "column": 1 6755 }, 6756 "end": { 6757 "line": 73, 6758 "column": 31 6759 } 6760 } 6761 }, 6762 "loc": { 6763 "start": { 6764 "line": 73, 6765 "column": 1 6766 }, 6767 "end": { 6768 "line": 73, 6769 "column": 32 6770 } 6771 } 6772 }, 6773 { 6774 "type": "ExpressionStatement", 6775 "expression": { 6776 "type": "ArrowFunctionExpression", 6777 "function": { 6778 "type": "ScriptFunction", 6779 "id": null, 6780 "generator": false, 6781 "async": true, 6782 "expression": false, 6783 "params": [], 6784 "typeParameters": { 6785 "type": "TSTypeParameterDeclaration", 6786 "params": [ 6787 { 6788 "type": "TSTypeParameter", 6789 "name": { 6790 "type": "Identifier", 6791 "name": "A", 6792 "loc": { 6793 "start": { 6794 "line": 74, 6795 "column": 7 6796 }, 6797 "end": { 6798 "line": 74, 6799 "column": 8 6800 } 6801 } 6802 }, 6803 "constraint": { 6804 "type": "TSTypeOperator", 6805 "operator": "readonly", 6806 "typeAnnotation": { 6807 "type": "TSTupleType", 6808 "elementTypes": [ 6809 { 6810 "type": "TSNumberKeyword", 6811 "loc": { 6812 "start": { 6813 "line": 74, 6814 "column": 27 6815 }, 6816 "end": { 6817 "line": 74, 6818 "column": 33 6819 } 6820 } 6821 }, 6822 { 6823 "type": "TSStringKeyword", 6824 "loc": { 6825 "start": { 6826 "line": 74, 6827 "column": 35 6828 }, 6829 "end": { 6830 "line": 74, 6831 "column": 41 6832 } 6833 } 6834 } 6835 ], 6836 "loc": { 6837 "start": { 6838 "line": 74, 6839 "column": 26 6840 }, 6841 "end": { 6842 "line": 74, 6843 "column": 42 6844 } 6845 } 6846 }, 6847 "loc": { 6848 "start": { 6849 "line": 74, 6850 "column": 17 6851 }, 6852 "end": { 6853 "line": 74, 6854 "column": 42 6855 } 6856 } 6857 }, 6858 "in": false, 6859 "out": false, 6860 "loc": { 6861 "start": { 6862 "line": 74, 6863 "column": 7 6864 }, 6865 "end": { 6866 "line": 74, 6867 "column": 43 6868 } 6869 } 6870 } 6871 ], 6872 "loc": { 6873 "start": { 6874 "line": 74, 6875 "column": 6 6876 }, 6877 "end": { 6878 "line": 74, 6879 "column": 43 6880 } 6881 } 6882 }, 6883 "body": { 6884 "type": "BlockStatement", 6885 "statements": [ 6886 { 6887 "type": "ReturnStatement", 6888 "argument": { 6889 "type": "StringLiteral", 6890 "value": "foo", 6891 "loc": { 6892 "start": { 6893 "line": 74, 6894 "column": 57 6895 }, 6896 "end": { 6897 "line": 74, 6898 "column": 62 6899 } 6900 } 6901 }, 6902 "loc": { 6903 "start": { 6904 "line": 74, 6905 "column": 50 6906 }, 6907 "end": { 6908 "line": 74, 6909 "column": 63 6910 } 6911 } 6912 } 6913 ], 6914 "loc": { 6915 "start": { 6916 "line": 74, 6917 "column": 49 6918 }, 6919 "end": { 6920 "line": 74, 6921 "column": 64 6922 } 6923 } 6924 }, 6925 "loc": { 6926 "start": { 6927 "line": 74, 6928 "column": 1 6929 }, 6930 "end": { 6931 "line": 74, 6932 "column": 64 6933 } 6934 } 6935 }, 6936 "loc": { 6937 "start": { 6938 "line": 74, 6939 "column": 1 6940 }, 6941 "end": { 6942 "line": 74, 6943 "column": 64 6944 } 6945 } 6946 }, 6947 "loc": { 6948 "start": { 6949 "line": 74, 6950 "column": 1 6951 }, 6952 "end": { 6953 "line": 74, 6954 "column": 65 6955 } 6956 } 6957 } 6958 ], 6959 "loc": { 6960 "start": { 6961 "line": 1, 6962 "column": 1 6963 }, 6964 "end": { 6965 "line": 74, 6966 "column": 65 6967 } 6968 } 6969} 6970