1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "FunctionDeclaration", 6 "function": { 7 "type": "ScriptFunction", 8 "id": { 9 "type": "Identifier", 10 "name": "func1", 11 "decorators": [], 12 "loc": { 13 "start": { 14 "line": 17, 15 "column": 10 16 }, 17 "end": { 18 "line": 17, 19 "column": 15 20 } 21 } 22 }, 23 "generator": false, 24 "async": false, 25 "expression": false, 26 "params": [ 27 { 28 "type": "Identifier", 29 "name": "a", 30 "typeAnnotation": { 31 "type": "TSNumberKeyword", 32 "loc": { 33 "start": { 34 "line": 17, 35 "column": 19 36 }, 37 "end": { 38 "line": 17, 39 "column": 25 40 } 41 } 42 }, 43 "decorators": [], 44 "loc": { 45 "start": { 46 "line": 17, 47 "column": 16 48 }, 49 "end": { 50 "line": 17, 51 "column": 17 52 } 53 } 54 }, 55 { 56 "type": "Identifier", 57 "name": "b", 58 "typeAnnotation": { 59 "type": "TSStringKeyword", 60 "loc": { 61 "start": { 62 "line": 17, 63 "column": 30 64 }, 65 "end": { 66 "line": 17, 67 "column": 36 68 } 69 } 70 }, 71 "decorators": [], 72 "loc": { 73 "start": { 74 "line": 17, 75 "column": 27 76 }, 77 "end": { 78 "line": 17, 79 "column": 28 80 } 81 } 82 } 83 ], 84 "body": { 85 "type": "BlockStatement", 86 "statements": [], 87 "loc": { 88 "start": { 89 "line": 17, 90 "column": 38 91 }, 92 "end": { 93 "line": 17, 94 "column": 41 95 } 96 } 97 }, 98 "loc": { 99 "start": { 100 "line": 17, 101 "column": 1 102 }, 103 "end": { 104 "line": 17, 105 "column": 41 106 } 107 } 108 }, 109 "loc": { 110 "start": { 111 "line": 17, 112 "column": 1 113 }, 114 "end": { 115 "line": 17, 116 "column": 41 117 } 118 } 119 }, 120 { 121 "type": "FunctionDeclaration", 122 "function": { 123 "type": "ScriptFunction", 124 "id": { 125 "type": "Identifier", 126 "name": "func2", 127 "decorators": [], 128 "loc": { 129 "start": { 130 "line": 18, 131 "column": 10 132 }, 133 "end": { 134 "line": 18, 135 "column": 15 136 } 137 } 138 }, 139 "generator": false, 140 "async": false, 141 "expression": false, 142 "params": [ 143 { 144 "type": "AssignmentPattern", 145 "left": { 146 "type": "Identifier", 147 "name": "a", 148 "typeAnnotation": { 149 "type": "TSBooleanKeyword", 150 "loc": { 151 "start": { 152 "line": 18, 153 "column": 19 154 }, 155 "end": { 156 "line": 18, 157 "column": 26 158 } 159 } 160 }, 161 "decorators": [], 162 "loc": { 163 "start": { 164 "line": 18, 165 "column": 16 166 }, 167 "end": { 168 "line": 18, 169 "column": 17 170 } 171 } 172 }, 173 "right": { 174 "type": "BooleanLiteral", 175 "value": true, 176 "loc": { 177 "start": { 178 "line": 18, 179 "column": 29 180 }, 181 "end": { 182 "line": 18, 183 "column": 33 184 } 185 } 186 }, 187 "loc": { 188 "start": { 189 "line": 18, 190 "column": 16 191 }, 192 "end": { 193 "line": 18, 194 "column": 33 195 } 196 } 197 }, 198 { 199 "type": "RestElement", 200 "argument": { 201 "type": "Identifier", 202 "name": "b", 203 "typeAnnotation": { 204 "type": "TSArrayType", 205 "elementType": { 206 "type": "TSNumberKeyword", 207 "loc": { 208 "start": { 209 "line": 18, 210 "column": 41 211 }, 212 "end": { 213 "line": 18, 214 "column": 47 215 } 216 } 217 }, 218 "loc": { 219 "start": { 220 "line": 18, 221 "column": 41 222 }, 223 "end": { 224 "line": 18, 225 "column": 49 226 } 227 } 228 }, 229 "decorators": [], 230 "loc": { 231 "start": { 232 "line": 18, 233 "column": 38 234 }, 235 "end": { 236 "line": 18, 237 "column": 39 238 } 239 } 240 }, 241 "loc": { 242 "start": { 243 "line": 18, 244 "column": 35 245 }, 246 "end": { 247 "line": 18, 248 "column": 39 249 } 250 } 251 } 252 ], 253 "body": { 254 "type": "BlockStatement", 255 "statements": [], 256 "loc": { 257 "start": { 258 "line": 18, 259 "column": 51 260 }, 261 "end": { 262 "line": 18, 263 "column": 54 264 } 265 } 266 }, 267 "loc": { 268 "start": { 269 "line": 18, 270 "column": 1 271 }, 272 "end": { 273 "line": 18, 274 "column": 54 275 } 276 } 277 }, 278 "loc": { 279 "start": { 280 "line": 18, 281 "column": 1 282 }, 283 "end": { 284 "line": 18, 285 "column": 54 286 } 287 } 288 }, 289 { 290 "type": "FunctionDeclaration", 291 "function": { 292 "type": "ScriptFunction", 293 "id": { 294 "type": "Identifier", 295 "name": "func3", 296 "decorators": [], 297 "loc": { 298 "start": { 299 "line": 19, 300 "column": 10 301 }, 302 "end": { 303 "line": 19, 304 "column": 15 305 } 306 } 307 }, 308 "generator": false, 309 "async": false, 310 "expression": false, 311 "params": [ 312 { 313 "type": "AssignmentPattern", 314 "left": { 315 "type": "Identifier", 316 "name": "a", 317 "decorators": [], 318 "loc": { 319 "start": { 320 "line": 19, 321 "column": 16 322 }, 323 "end": { 324 "line": 19, 325 "column": 17 326 } 327 } 328 }, 329 "right": { 330 "type": "NumberLiteral", 331 "value": 6, 332 "loc": { 333 "start": { 334 "line": 19, 335 "column": 20 336 }, 337 "end": { 338 "line": 19, 339 "column": 21 340 } 341 } 342 }, 343 "loc": { 344 "start": { 345 "line": 19, 346 "column": 16 347 }, 348 "end": { 349 "line": 19, 350 "column": 21 351 } 352 } 353 }, 354 { 355 "type": "ArrayPattern", 356 "elements": [ 357 { 358 "type": "Identifier", 359 "name": "c", 360 "decorators": [], 361 "loc": { 362 "start": { 363 "line": 19, 364 "column": 24 365 }, 366 "end": { 367 "line": 19, 368 "column": 25 369 } 370 } 371 }, 372 { 373 "type": "Identifier", 374 "name": "d", 375 "decorators": [], 376 "loc": { 377 "start": { 378 "line": 19, 379 "column": 27 380 }, 381 "end": { 382 "line": 19, 383 "column": 28 384 } 385 } 386 } 387 ], 388 "loc": { 389 "start": { 390 "line": 19, 391 "column": 23 392 }, 393 "end": { 394 "line": 19, 395 "column": 29 396 } 397 } 398 }, 399 { 400 "type": "Identifier", 401 "name": "b", 402 "optional": true, 403 "decorators": [], 404 "loc": { 405 "start": { 406 "line": 19, 407 "column": 31 408 }, 409 "end": { 410 "line": 19, 411 "column": 32 412 } 413 } 414 } 415 ], 416 "body": { 417 "type": "BlockStatement", 418 "statements": [], 419 "loc": { 420 "start": { 421 "line": 19, 422 "column": 35 423 }, 424 "end": { 425 "line": 19, 426 "column": 38 427 } 428 } 429 }, 430 "loc": { 431 "start": { 432 "line": 19, 433 "column": 1 434 }, 435 "end": { 436 "line": 19, 437 "column": 38 438 } 439 } 440 }, 441 "loc": { 442 "start": { 443 "line": 19, 444 "column": 1 445 }, 446 "end": { 447 "line": 19, 448 "column": 38 449 } 450 } 451 }, 452 { 453 "type": "FunctionDeclaration", 454 "function": { 455 "type": "ScriptFunction", 456 "id": { 457 "type": "Identifier", 458 "name": "func4", 459 "decorators": [], 460 "loc": { 461 "start": { 462 "line": 20, 463 "column": 10 464 }, 465 "end": { 466 "line": 20, 467 "column": 15 468 } 469 } 470 }, 471 "generator": false, 472 "async": false, 473 "expression": false, 474 "params": [ 475 { 476 "type": "ObjectPattern", 477 "properties": [], 478 "typeAnnotation": { 479 "type": "TSNumberKeyword", 480 "loc": { 481 "start": { 482 "line": 20, 483 "column": 21 484 }, 485 "end": { 486 "line": 20, 487 "column": 27 488 } 489 } 490 }, 491 "loc": { 492 "start": { 493 "line": 20, 494 "column": 16 495 }, 496 "end": { 497 "line": 20, 498 "column": 19 499 } 500 } 501 }, 502 { 503 "type": "ArrayPattern", 504 "elements": [ 505 { 506 "type": "Identifier", 507 "name": "a", 508 "decorators": [], 509 "loc": { 510 "start": { 511 "line": 20, 512 "column": 30 513 }, 514 "end": { 515 "line": 20, 516 "column": 31 517 } 518 } 519 }, 520 { 521 "type": "Identifier", 522 "name": "b", 523 "decorators": [], 524 "loc": { 525 "start": { 526 "line": 20, 527 "column": 33 528 }, 529 "end": { 530 "line": 20, 531 "column": 34 532 } 533 } 534 } 535 ], 536 "typeAnnotation": { 537 "type": "TSArrayType", 538 "elementType": { 539 "type": "TSStringKeyword", 540 "loc": { 541 "start": { 542 "line": 20, 543 "column": 37 544 }, 545 "end": { 546 "line": 20, 547 "column": 43 548 } 549 } 550 }, 551 "loc": { 552 "start": { 553 "line": 20, 554 "column": 37 555 }, 556 "end": { 557 "line": 20, 558 "column": 45 559 } 560 } 561 }, 562 "loc": { 563 "start": { 564 "line": 20, 565 "column": 29 566 }, 567 "end": { 568 "line": 20, 569 "column": 35 570 } 571 } 572 } 573 ], 574 "body": { 575 "type": "BlockStatement", 576 "statements": [], 577 "loc": { 578 "start": { 579 "line": 20, 580 "column": 47 581 }, 582 "end": { 583 "line": 20, 584 "column": 50 585 } 586 } 587 }, 588 "loc": { 589 "start": { 590 "line": 20, 591 "column": 1 592 }, 593 "end": { 594 "line": 20, 595 "column": 50 596 } 597 } 598 }, 599 "loc": { 600 "start": { 601 "line": 20, 602 "column": 1 603 }, 604 "end": { 605 "line": 20, 606 "column": 50 607 } 608 } 609 }, 610 { 611 "type": "FunctionDeclaration", 612 "function": { 613 "type": "ScriptFunction", 614 "id": { 615 "type": "Identifier", 616 "name": "func5", 617 "decorators": [], 618 "loc": { 619 "start": { 620 "line": 21, 621 "column": 10 622 }, 623 "end": { 624 "line": 21, 625 "column": 15 626 } 627 } 628 }, 629 "generator": false, 630 "async": false, 631 "expression": false, 632 "params": [ 633 { 634 "type": "AssignmentPattern", 635 "left": { 636 "type": "ArrayPattern", 637 "elements": [ 638 { 639 "type": "Identifier", 640 "name": "a", 641 "decorators": [], 642 "loc": { 643 "start": { 644 "line": 21, 645 "column": 17 646 }, 647 "end": { 648 "line": 21, 649 "column": 18 650 } 651 } 652 }, 653 { 654 "type": "Identifier", 655 "name": "b", 656 "decorators": [], 657 "loc": { 658 "start": { 659 "line": 21, 660 "column": 20 661 }, 662 "end": { 663 "line": 21, 664 "column": 21 665 } 666 } 667 } 668 ], 669 "typeAnnotation": { 670 "type": "TSTupleType", 671 "elementTypes": [ 672 { 673 "type": "TSNumberKeyword", 674 "loc": { 675 "start": { 676 "line": 21, 677 "column": 25 678 }, 679 "end": { 680 "line": 21, 681 "column": 32 682 } 683 } 684 }, 685 { 686 "type": "TSStringKeyword", 687 "loc": { 688 "start": { 689 "line": 21, 690 "column": 33 691 }, 692 "end": { 693 "line": 21, 694 "column": 40 695 } 696 } 697 } 698 ], 699 "loc": { 700 "start": { 701 "line": 21, 702 "column": 24 703 }, 704 "end": { 705 "line": 21, 706 "column": 40 707 } 708 } 709 }, 710 "loc": { 711 "start": { 712 "line": 21, 713 "column": 16 714 }, 715 "end": { 716 "line": 21, 717 "column": 22 718 } 719 } 720 }, 721 "right": { 722 "type": "ArrayExpression", 723 "elements": [ 724 { 725 "type": "NumberLiteral", 726 "value": 1, 727 "loc": { 728 "start": { 729 "line": 21, 730 "column": 44 731 }, 732 "end": { 733 "line": 21, 734 "column": 45 735 } 736 } 737 }, 738 { 739 "type": "StringLiteral", 740 "value": "foo", 741 "loc": { 742 "start": { 743 "line": 21, 744 "column": 47 745 }, 746 "end": { 747 "line": 21, 748 "column": 52 749 } 750 } 751 } 752 ], 753 "loc": { 754 "start": { 755 "line": 21, 756 "column": 43 757 }, 758 "end": { 759 "line": 21, 760 "column": 53 761 } 762 } 763 }, 764 "loc": { 765 "start": { 766 "line": 21, 767 "column": 16 768 }, 769 "end": { 770 "line": 21, 771 "column": 53 772 } 773 } 774 } 775 ], 776 "body": { 777 "type": "BlockStatement", 778 "statements": [], 779 "loc": { 780 "start": { 781 "line": 21, 782 "column": 55 783 }, 784 "end": { 785 "line": 21, 786 "column": 58 787 } 788 } 789 }, 790 "loc": { 791 "start": { 792 "line": 21, 793 "column": 1 794 }, 795 "end": { 796 "line": 21, 797 "column": 58 798 } 799 } 800 }, 801 "loc": { 802 "start": { 803 "line": 21, 804 "column": 1 805 }, 806 "end": { 807 "line": 21, 808 "column": 58 809 } 810 } 811 }, 812 { 813 "type": "FunctionDeclaration", 814 "function": { 815 "type": "ScriptFunction", 816 "id": { 817 "type": "Identifier", 818 "name": "func6", 819 "decorators": [], 820 "loc": { 821 "start": { 822 "line": 22, 823 "column": 10 824 }, 825 "end": { 826 "line": 22, 827 "column": 15 828 } 829 } 830 }, 831 "generator": false, 832 "async": false, 833 "expression": false, 834 "params": [ 835 { 836 "type": "AssignmentPattern", 837 "left": { 838 "type": "ObjectPattern", 839 "properties": [ 840 { 841 "type": "Property", 842 "method": false, 843 "shorthand": true, 844 "computed": false, 845 "key": { 846 "type": "Identifier", 847 "name": "a", 848 "decorators": [], 849 "loc": { 850 "start": { 851 "line": 22, 852 "column": 18 853 }, 854 "end": { 855 "line": 22, 856 "column": 19 857 } 858 } 859 }, 860 "value": { 861 "type": "Identifier", 862 "name": "a", 863 "decorators": [], 864 "loc": { 865 "start": { 866 "line": 22, 867 "column": 18 868 }, 869 "end": { 870 "line": 22, 871 "column": 19 872 } 873 } 874 }, 875 "kind": "init", 876 "loc": { 877 "start": { 878 "line": 22, 879 "column": 18 880 }, 881 "end": { 882 "line": 22, 883 "column": 19 884 } 885 } 886 }, 887 { 888 "type": "Property", 889 "method": false, 890 "shorthand": true, 891 "computed": false, 892 "key": { 893 "type": "Identifier", 894 "name": "b", 895 "decorators": [], 896 "loc": { 897 "start": { 898 "line": 22, 899 "column": 21 900 }, 901 "end": { 902 "line": 22, 903 "column": 22 904 } 905 } 906 }, 907 "value": { 908 "type": "Identifier", 909 "name": "b", 910 "decorators": [], 911 "loc": { 912 "start": { 913 "line": 22, 914 "column": 21 915 }, 916 "end": { 917 "line": 22, 918 "column": 22 919 } 920 } 921 }, 922 "kind": "init", 923 "loc": { 924 "start": { 925 "line": 22, 926 "column": 21 927 }, 928 "end": { 929 "line": 22, 930 "column": 22 931 } 932 } 933 } 934 ], 935 "typeAnnotation": { 936 "type": "TSTypeLiteral", 937 "members": [ 938 { 939 "type": "TSPropertySignature", 940 "computed": false, 941 "optional": false, 942 "readonly": false, 943 "key": { 944 "type": "Identifier", 945 "name": "a", 946 "decorators": [], 947 "loc": { 948 "start": { 949 "line": 22, 950 "column": 28 951 }, 952 "end": { 953 "line": 22, 954 "column": 29 955 } 956 } 957 }, 958 "typeAnnotation": { 959 "type": "TSNumberKeyword", 960 "loc": { 961 "start": { 962 "line": 22, 963 "column": 31 964 }, 965 "end": { 966 "line": 22, 967 "column": 37 968 } 969 } 970 }, 971 "loc": { 972 "start": { 973 "line": 22, 974 "column": 28 975 }, 976 "end": { 977 "line": 22, 978 "column": 38 979 } 980 } 981 }, 982 { 983 "type": "TSPropertySignature", 984 "computed": false, 985 "optional": false, 986 "readonly": false, 987 "key": { 988 "type": "Identifier", 989 "name": "b", 990 "decorators": [], 991 "loc": { 992 "start": { 993 "line": 22, 994 "column": 39 995 }, 996 "end": { 997 "line": 22, 998 "column": 40 999 } 1000 } 1001 }, 1002 "typeAnnotation": { 1003 "type": "TSNumberKeyword", 1004 "loc": { 1005 "start": { 1006 "line": 22, 1007 "column": 42 1008 }, 1009 "end": { 1010 "line": 22, 1011 "column": 48 1012 } 1013 } 1014 }, 1015 "loc": { 1016 "start": { 1017 "line": 22, 1018 "column": 39 1019 }, 1020 "end": { 1021 "line": 22, 1022 "column": 50 1023 } 1024 } 1025 } 1026 ], 1027 "loc": { 1028 "start": { 1029 "line": 22, 1030 "column": 26 1031 }, 1032 "end": { 1033 "line": 22, 1034 "column": 50 1035 } 1036 } 1037 }, 1038 "loc": { 1039 "start": { 1040 "line": 22, 1041 "column": 16 1042 }, 1043 "end": { 1044 "line": 22, 1045 "column": 24 1046 } 1047 } 1048 }, 1049 "right": { 1050 "type": "ObjectExpression", 1051 "properties": [ 1052 { 1053 "type": "Property", 1054 "method": false, 1055 "shorthand": false, 1056 "computed": false, 1057 "key": { 1058 "type": "Identifier", 1059 "name": "a", 1060 "decorators": [], 1061 "loc": { 1062 "start": { 1063 "line": 22, 1064 "column": 55 1065 }, 1066 "end": { 1067 "line": 22, 1068 "column": 56 1069 } 1070 } 1071 }, 1072 "value": { 1073 "type": "NumberLiteral", 1074 "value": 0, 1075 "loc": { 1076 "start": { 1077 "line": 22, 1078 "column": 58 1079 }, 1080 "end": { 1081 "line": 22, 1082 "column": 59 1083 } 1084 } 1085 }, 1086 "kind": "init", 1087 "loc": { 1088 "start": { 1089 "line": 22, 1090 "column": 55 1091 }, 1092 "end": { 1093 "line": 22, 1094 "column": 59 1095 } 1096 } 1097 }, 1098 { 1099 "type": "Property", 1100 "method": false, 1101 "shorthand": false, 1102 "computed": false, 1103 "key": { 1104 "type": "Identifier", 1105 "name": "b", 1106 "decorators": [], 1107 "loc": { 1108 "start": { 1109 "line": 22, 1110 "column": 61 1111 }, 1112 "end": { 1113 "line": 22, 1114 "column": 62 1115 } 1116 } 1117 }, 1118 "value": { 1119 "type": "NumberLiteral", 1120 "value": 0, 1121 "loc": { 1122 "start": { 1123 "line": 22, 1124 "column": 64 1125 }, 1126 "end": { 1127 "line": 22, 1128 "column": 65 1129 } 1130 } 1131 }, 1132 "kind": "init", 1133 "loc": { 1134 "start": { 1135 "line": 22, 1136 "column": 61 1137 }, 1138 "end": { 1139 "line": 22, 1140 "column": 65 1141 } 1142 } 1143 } 1144 ], 1145 "loc": { 1146 "start": { 1147 "line": 22, 1148 "column": 53 1149 }, 1150 "end": { 1151 "line": 22, 1152 "column": 67 1153 } 1154 } 1155 }, 1156 "loc": { 1157 "start": { 1158 "line": 22, 1159 "column": 16 1160 }, 1161 "end": { 1162 "line": 22, 1163 "column": 67 1164 } 1165 } 1166 } 1167 ], 1168 "body": { 1169 "type": "BlockStatement", 1170 "statements": [], 1171 "loc": { 1172 "start": { 1173 "line": 22, 1174 "column": 69 1175 }, 1176 "end": { 1177 "line": 22, 1178 "column": 72 1179 } 1180 } 1181 }, 1182 "loc": { 1183 "start": { 1184 "line": 22, 1185 "column": 1 1186 }, 1187 "end": { 1188 "line": 22, 1189 "column": 72 1190 } 1191 } 1192 }, 1193 "loc": { 1194 "start": { 1195 "line": 22, 1196 "column": 1 1197 }, 1198 "end": { 1199 "line": 22, 1200 "column": 72 1201 } 1202 } 1203 }, 1204 { 1205 "type": "TSDeclareFunction", 1206 "function": { 1207 "type": "ScriptFunction", 1208 "id": { 1209 "type": "Identifier", 1210 "name": "func7", 1211 "decorators": [], 1212 "loc": { 1213 "start": { 1214 "line": 23, 1215 "column": 18 1216 }, 1217 "end": { 1218 "line": 23, 1219 "column": 23 1220 } 1221 } 1222 }, 1223 "generator": false, 1224 "async": false, 1225 "expression": false, 1226 "params": [ 1227 { 1228 "type": "ArrayPattern", 1229 "elements": [ 1230 { 1231 "type": "Identifier", 1232 "name": "a", 1233 "decorators": [], 1234 "loc": { 1235 "start": { 1236 "line": 23, 1237 "column": 25 1238 }, 1239 "end": { 1240 "line": 23, 1241 "column": 26 1242 } 1243 } 1244 }, 1245 { 1246 "type": "Identifier", 1247 "name": "b", 1248 "decorators": [], 1249 "loc": { 1250 "start": { 1251 "line": 23, 1252 "column": 28 1253 }, 1254 "end": { 1255 "line": 23, 1256 "column": 29 1257 } 1258 } 1259 } 1260 ], 1261 "typeAnnotation": { 1262 "type": "TSTupleType", 1263 "elementTypes": [ 1264 { 1265 "type": "TSNumberKeyword", 1266 "loc": { 1267 "start": { 1268 "line": 23, 1269 "column": 33 1270 }, 1271 "end": { 1272 "line": 23, 1273 "column": 40 1274 } 1275 } 1276 }, 1277 { 1278 "type": "TSStringKeyword", 1279 "loc": { 1280 "start": { 1281 "line": 23, 1282 "column": 41 1283 }, 1284 "end": { 1285 "line": 23, 1286 "column": 48 1287 } 1288 } 1289 } 1290 ], 1291 "loc": { 1292 "start": { 1293 "line": 23, 1294 "column": 32 1295 }, 1296 "end": { 1297 "line": 23, 1298 "column": 48 1299 } 1300 } 1301 }, 1302 "loc": { 1303 "start": { 1304 "line": 23, 1305 "column": 24 1306 }, 1307 "end": { 1308 "line": 23, 1309 "column": 30 1310 } 1311 } 1312 } 1313 ], 1314 "loc": { 1315 "start": { 1316 "line": 23, 1317 "column": 9 1318 }, 1319 "end": { 1320 "line": 24, 1321 "column": 8 1322 } 1323 } 1324 }, 1325 "loc": { 1326 "start": { 1327 "line": 23, 1328 "column": 9 1329 }, 1330 "end": { 1331 "line": 24, 1332 "column": 8 1333 } 1334 } 1335 }, 1336 { 1337 "type": "TSDeclareFunction", 1338 "function": { 1339 "type": "ScriptFunction", 1340 "id": { 1341 "type": "Identifier", 1342 "name": "func8", 1343 "decorators": [], 1344 "loc": { 1345 "start": { 1346 "line": 24, 1347 "column": 18 1348 }, 1349 "end": { 1350 "line": 24, 1351 "column": 23 1352 } 1353 } 1354 }, 1355 "generator": false, 1356 "async": false, 1357 "expression": false, 1358 "params": [ 1359 { 1360 "type": "ObjectPattern", 1361 "properties": [ 1362 { 1363 "type": "Property", 1364 "method": false, 1365 "shorthand": true, 1366 "computed": false, 1367 "key": { 1368 "type": "Identifier", 1369 "name": "a", 1370 "decorators": [], 1371 "loc": { 1372 "start": { 1373 "line": 24, 1374 "column": 26 1375 }, 1376 "end": { 1377 "line": 24, 1378 "column": 27 1379 } 1380 } 1381 }, 1382 "value": { 1383 "type": "Identifier", 1384 "name": "a", 1385 "decorators": [], 1386 "loc": { 1387 "start": { 1388 "line": 24, 1389 "column": 26 1390 }, 1391 "end": { 1392 "line": 24, 1393 "column": 27 1394 } 1395 } 1396 }, 1397 "kind": "init", 1398 "loc": { 1399 "start": { 1400 "line": 24, 1401 "column": 26 1402 }, 1403 "end": { 1404 "line": 24, 1405 "column": 27 1406 } 1407 } 1408 }, 1409 { 1410 "type": "Property", 1411 "method": false, 1412 "shorthand": true, 1413 "computed": false, 1414 "key": { 1415 "type": "Identifier", 1416 "name": "b", 1417 "decorators": [], 1418 "loc": { 1419 "start": { 1420 "line": 24, 1421 "column": 29 1422 }, 1423 "end": { 1424 "line": 24, 1425 "column": 30 1426 } 1427 } 1428 }, 1429 "value": { 1430 "type": "Identifier", 1431 "name": "b", 1432 "decorators": [], 1433 "loc": { 1434 "start": { 1435 "line": 24, 1436 "column": 29 1437 }, 1438 "end": { 1439 "line": 24, 1440 "column": 30 1441 } 1442 } 1443 }, 1444 "kind": "init", 1445 "loc": { 1446 "start": { 1447 "line": 24, 1448 "column": 29 1449 }, 1450 "end": { 1451 "line": 24, 1452 "column": 30 1453 } 1454 } 1455 } 1456 ], 1457 "typeAnnotation": { 1458 "type": "TSTypeLiteral", 1459 "members": [ 1460 { 1461 "type": "TSPropertySignature", 1462 "computed": false, 1463 "optional": false, 1464 "readonly": false, 1465 "key": { 1466 "type": "Identifier", 1467 "name": "a", 1468 "decorators": [], 1469 "loc": { 1470 "start": { 1471 "line": 24, 1472 "column": 36 1473 }, 1474 "end": { 1475 "line": 24, 1476 "column": 37 1477 } 1478 } 1479 }, 1480 "typeAnnotation": { 1481 "type": "TSNumberKeyword", 1482 "loc": { 1483 "start": { 1484 "line": 24, 1485 "column": 39 1486 }, 1487 "end": { 1488 "line": 24, 1489 "column": 45 1490 } 1491 } 1492 }, 1493 "loc": { 1494 "start": { 1495 "line": 24, 1496 "column": 36 1497 }, 1498 "end": { 1499 "line": 24, 1500 "column": 46 1501 } 1502 } 1503 }, 1504 { 1505 "type": "TSPropertySignature", 1506 "computed": false, 1507 "optional": false, 1508 "readonly": false, 1509 "key": { 1510 "type": "Identifier", 1511 "name": "b", 1512 "decorators": [], 1513 "loc": { 1514 "start": { 1515 "line": 24, 1516 "column": 47 1517 }, 1518 "end": { 1519 "line": 24, 1520 "column": 48 1521 } 1522 } 1523 }, 1524 "typeAnnotation": { 1525 "type": "TSNumberKeyword", 1526 "loc": { 1527 "start": { 1528 "line": 24, 1529 "column": 50 1530 }, 1531 "end": { 1532 "line": 24, 1533 "column": 56 1534 } 1535 } 1536 }, 1537 "loc": { 1538 "start": { 1539 "line": 24, 1540 "column": 47 1541 }, 1542 "end": { 1543 "line": 24, 1544 "column": 58 1545 } 1546 } 1547 } 1548 ], 1549 "loc": { 1550 "start": { 1551 "line": 24, 1552 "column": 34 1553 }, 1554 "end": { 1555 "line": 24, 1556 "column": 58 1557 } 1558 } 1559 }, 1560 "loc": { 1561 "start": { 1562 "line": 24, 1563 "column": 24 1564 }, 1565 "end": { 1566 "line": 24, 1567 "column": 32 1568 } 1569 } 1570 } 1571 ], 1572 "loc": { 1573 "start": { 1574 "line": 24, 1575 "column": 9 1576 }, 1577 "end": { 1578 "line": 25, 1579 "column": 8 1580 } 1581 } 1582 }, 1583 "loc": { 1584 "start": { 1585 "line": 24, 1586 "column": 9 1587 }, 1588 "end": { 1589 "line": 25, 1590 "column": 8 1591 } 1592 } 1593 }, 1594 { 1595 "type": "TSDeclareFunction", 1596 "function": { 1597 "type": "ScriptFunction", 1598 "id": { 1599 "type": "Identifier", 1600 "name": "func9", 1601 "decorators": [], 1602 "loc": { 1603 "start": { 1604 "line": 25, 1605 "column": 18 1606 }, 1607 "end": { 1608 "line": 25, 1609 "column": 23 1610 } 1611 } 1612 }, 1613 "generator": false, 1614 "async": false, 1615 "expression": false, 1616 "params": [ 1617 { 1618 "type": "ArrayPattern", 1619 "elements": [ 1620 { 1621 "type": "Identifier", 1622 "name": "a", 1623 "decorators": [], 1624 "loc": { 1625 "start": { 1626 "line": 25, 1627 "column": 25 1628 }, 1629 "end": { 1630 "line": 25, 1631 "column": 26 1632 } 1633 } 1634 }, 1635 { 1636 "type": "Identifier", 1637 "name": "b", 1638 "decorators": [], 1639 "loc": { 1640 "start": { 1641 "line": 25, 1642 "column": 28 1643 }, 1644 "end": { 1645 "line": 25, 1646 "column": 29 1647 } 1648 } 1649 } 1650 ], 1651 "typeAnnotation": { 1652 "type": "TSTupleType", 1653 "elementTypes": [ 1654 { 1655 "type": "TSNumberKeyword", 1656 "loc": { 1657 "start": { 1658 "line": 25, 1659 "column": 34 1660 }, 1661 "end": { 1662 "line": 25, 1663 "column": 41 1664 } 1665 } 1666 }, 1667 { 1668 "type": "TSStringKeyword", 1669 "loc": { 1670 "start": { 1671 "line": 25, 1672 "column": 42 1673 }, 1674 "end": { 1675 "line": 25, 1676 "column": 49 1677 } 1678 } 1679 } 1680 ], 1681 "loc": { 1682 "start": { 1683 "line": 25, 1684 "column": 33 1685 }, 1686 "end": { 1687 "line": 25, 1688 "column": 49 1689 } 1690 } 1691 }, 1692 "optional": true, 1693 "loc": { 1694 "start": { 1695 "line": 25, 1696 "column": 24 1697 }, 1698 "end": { 1699 "line": 25, 1700 "column": 30 1701 } 1702 } 1703 } 1704 ], 1705 "loc": { 1706 "start": { 1707 "line": 25, 1708 "column": 9 1709 }, 1710 "end": { 1711 "line": 26, 1712 "column": 8 1713 } 1714 } 1715 }, 1716 "loc": { 1717 "start": { 1718 "line": 25, 1719 "column": 9 1720 }, 1721 "end": { 1722 "line": 26, 1723 "column": 8 1724 } 1725 } 1726 }, 1727 { 1728 "type": "TSDeclareFunction", 1729 "function": { 1730 "type": "ScriptFunction", 1731 "id": { 1732 "type": "Identifier", 1733 "name": "func10", 1734 "decorators": [], 1735 "loc": { 1736 "start": { 1737 "line": 26, 1738 "column": 18 1739 }, 1740 "end": { 1741 "line": 26, 1742 "column": 24 1743 } 1744 } 1745 }, 1746 "generator": false, 1747 "async": false, 1748 "expression": false, 1749 "params": [ 1750 { 1751 "type": "ObjectPattern", 1752 "properties": [ 1753 { 1754 "type": "Property", 1755 "method": false, 1756 "shorthand": true, 1757 "computed": false, 1758 "key": { 1759 "type": "Identifier", 1760 "name": "a", 1761 "decorators": [], 1762 "loc": { 1763 "start": { 1764 "line": 26, 1765 "column": 27 1766 }, 1767 "end": { 1768 "line": 26, 1769 "column": 28 1770 } 1771 } 1772 }, 1773 "value": { 1774 "type": "Identifier", 1775 "name": "a", 1776 "decorators": [], 1777 "loc": { 1778 "start": { 1779 "line": 26, 1780 "column": 27 1781 }, 1782 "end": { 1783 "line": 26, 1784 "column": 28 1785 } 1786 } 1787 }, 1788 "kind": "init", 1789 "loc": { 1790 "start": { 1791 "line": 26, 1792 "column": 27 1793 }, 1794 "end": { 1795 "line": 26, 1796 "column": 28 1797 } 1798 } 1799 }, 1800 { 1801 "type": "Property", 1802 "method": false, 1803 "shorthand": true, 1804 "computed": false, 1805 "key": { 1806 "type": "Identifier", 1807 "name": "b", 1808 "decorators": [], 1809 "loc": { 1810 "start": { 1811 "line": 26, 1812 "column": 30 1813 }, 1814 "end": { 1815 "line": 26, 1816 "column": 31 1817 } 1818 } 1819 }, 1820 "value": { 1821 "type": "Identifier", 1822 "name": "b", 1823 "decorators": [], 1824 "loc": { 1825 "start": { 1826 "line": 26, 1827 "column": 30 1828 }, 1829 "end": { 1830 "line": 26, 1831 "column": 31 1832 } 1833 } 1834 }, 1835 "kind": "init", 1836 "loc": { 1837 "start": { 1838 "line": 26, 1839 "column": 30 1840 }, 1841 "end": { 1842 "line": 26, 1843 "column": 31 1844 } 1845 } 1846 } 1847 ], 1848 "typeAnnotation": { 1849 "type": "TSTypeLiteral", 1850 "members": [ 1851 { 1852 "type": "TSPropertySignature", 1853 "computed": false, 1854 "optional": false, 1855 "readonly": false, 1856 "key": { 1857 "type": "Identifier", 1858 "name": "a", 1859 "decorators": [], 1860 "loc": { 1861 "start": { 1862 "line": 26, 1863 "column": 38 1864 }, 1865 "end": { 1866 "line": 26, 1867 "column": 39 1868 } 1869 } 1870 }, 1871 "typeAnnotation": { 1872 "type": "TSNumberKeyword", 1873 "loc": { 1874 "start": { 1875 "line": 26, 1876 "column": 41 1877 }, 1878 "end": { 1879 "line": 26, 1880 "column": 47 1881 } 1882 } 1883 }, 1884 "loc": { 1885 "start": { 1886 "line": 26, 1887 "column": 38 1888 }, 1889 "end": { 1890 "line": 26, 1891 "column": 48 1892 } 1893 } 1894 }, 1895 { 1896 "type": "TSPropertySignature", 1897 "computed": false, 1898 "optional": false, 1899 "readonly": false, 1900 "key": { 1901 "type": "Identifier", 1902 "name": "b", 1903 "decorators": [], 1904 "loc": { 1905 "start": { 1906 "line": 26, 1907 "column": 49 1908 }, 1909 "end": { 1910 "line": 26, 1911 "column": 50 1912 } 1913 } 1914 }, 1915 "typeAnnotation": { 1916 "type": "TSNumberKeyword", 1917 "loc": { 1918 "start": { 1919 "line": 26, 1920 "column": 52 1921 }, 1922 "end": { 1923 "line": 26, 1924 "column": 58 1925 } 1926 } 1927 }, 1928 "loc": { 1929 "start": { 1930 "line": 26, 1931 "column": 49 1932 }, 1933 "end": { 1934 "line": 26, 1935 "column": 60 1936 } 1937 } 1938 } 1939 ], 1940 "loc": { 1941 "start": { 1942 "line": 26, 1943 "column": 36 1944 }, 1945 "end": { 1946 "line": 26, 1947 "column": 60 1948 } 1949 } 1950 }, 1951 "optional": true, 1952 "loc": { 1953 "start": { 1954 "line": 26, 1955 "column": 25 1956 }, 1957 "end": { 1958 "line": 26, 1959 "column": 33 1960 } 1961 } 1962 } 1963 ], 1964 "loc": { 1965 "start": { 1966 "line": 26, 1967 "column": 9 1968 }, 1969 "end": { 1970 "line": 28, 1971 "column": 10 1972 } 1973 } 1974 }, 1975 "loc": { 1976 "start": { 1977 "line": 26, 1978 "column": 9 1979 }, 1980 "end": { 1981 "line": 28, 1982 "column": 10 1983 } 1984 } 1985 }, 1986 { 1987 "type": "TSInterfaceDeclaration", 1988 "body": { 1989 "type": "TSInterfaceBody", 1990 "body": [ 1991 { 1992 "type": "TSCallSignatureDeclaration", 1993 "params": [ 1994 { 1995 "type": "Identifier", 1996 "name": "a", 1997 "typeAnnotation": { 1998 "type": "TSNumberKeyword", 1999 "loc": { 2000 "start": { 2001 "line": 29, 2002 "column": 9 2003 }, 2004 "end": { 2005 "line": 29, 2006 "column": 15 2007 } 2008 } 2009 }, 2010 "decorators": [], 2011 "loc": { 2012 "start": { 2013 "line": 29, 2014 "column": 6 2015 }, 2016 "end": { 2017 "line": 29, 2018 "column": 7 2019 } 2020 } 2021 }, 2022 { 2023 "type": "ObjectPattern", 2024 "properties": [ 2025 { 2026 "type": "Property", 2027 "method": false, 2028 "shorthand": true, 2029 "computed": false, 2030 "key": { 2031 "type": "Identifier", 2032 "name": "b", 2033 "decorators": [], 2034 "loc": { 2035 "start": { 2036 "line": 29, 2037 "column": 19 2038 }, 2039 "end": { 2040 "line": 29, 2041 "column": 20 2042 } 2043 } 2044 }, 2045 "value": { 2046 "type": "Identifier", 2047 "name": "b", 2048 "decorators": [], 2049 "loc": { 2050 "start": { 2051 "line": 29, 2052 "column": 19 2053 }, 2054 "end": { 2055 "line": 29, 2056 "column": 20 2057 } 2058 } 2059 }, 2060 "kind": "init", 2061 "loc": { 2062 "start": { 2063 "line": 29, 2064 "column": 19 2065 }, 2066 "end": { 2067 "line": 29, 2068 "column": 20 2069 } 2070 } 2071 }, 2072 { 2073 "type": "Property", 2074 "method": false, 2075 "shorthand": true, 2076 "computed": false, 2077 "key": { 2078 "type": "Identifier", 2079 "name": "c", 2080 "decorators": [], 2081 "loc": { 2082 "start": { 2083 "line": 29, 2084 "column": 22 2085 }, 2086 "end": { 2087 "line": 29, 2088 "column": 23 2089 } 2090 } 2091 }, 2092 "value": { 2093 "type": "Identifier", 2094 "name": "c", 2095 "decorators": [], 2096 "loc": { 2097 "start": { 2098 "line": 29, 2099 "column": 22 2100 }, 2101 "end": { 2102 "line": 29, 2103 "column": 23 2104 } 2105 } 2106 }, 2107 "kind": "init", 2108 "loc": { 2109 "start": { 2110 "line": 29, 2111 "column": 22 2112 }, 2113 "end": { 2114 "line": 29, 2115 "column": 23 2116 } 2117 } 2118 } 2119 ], 2120 "typeAnnotation": { 2121 "type": "TSTypeLiteral", 2122 "members": [ 2123 { 2124 "type": "TSPropertySignature", 2125 "computed": false, 2126 "optional": true, 2127 "readonly": false, 2128 "key": { 2129 "type": "Identifier", 2130 "name": "b", 2131 "decorators": [], 2132 "loc": { 2133 "start": { 2134 "line": 30, 2135 "column": 9 2136 }, 2137 "end": { 2138 "line": 30, 2139 "column": 10 2140 } 2141 } 2142 }, 2143 "typeAnnotation": { 2144 "type": "TSBooleanKeyword", 2145 "loc": { 2146 "start": { 2147 "line": 30, 2148 "column": 13 2149 }, 2150 "end": { 2151 "line": 30, 2152 "column": 20 2153 } 2154 } 2155 }, 2156 "loc": { 2157 "start": { 2158 "line": 30, 2159 "column": 9 2160 }, 2161 "end": { 2162 "line": 30, 2163 "column": 21 2164 } 2165 } 2166 }, 2167 { 2168 "type": "TSPropertySignature", 2169 "computed": false, 2170 "optional": true, 2171 "readonly": false, 2172 "key": { 2173 "type": "Identifier", 2174 "name": "c", 2175 "decorators": [], 2176 "loc": { 2177 "start": { 2178 "line": 31, 2179 "column": 9 2180 }, 2181 "end": { 2182 "line": 31, 2183 "column": 10 2184 } 2185 } 2186 }, 2187 "typeAnnotation": { 2188 "type": "TSAnyKeyword", 2189 "loc": { 2190 "start": { 2191 "line": 31, 2192 "column": 13 2193 }, 2194 "end": { 2195 "line": 31, 2196 "column": 16 2197 } 2198 } 2199 }, 2200 "loc": { 2201 "start": { 2202 "line": 31, 2203 "column": 9 2204 }, 2205 "end": { 2206 "line": 31, 2207 "column": 17 2208 } 2209 } 2210 } 2211 ], 2212 "loc": { 2213 "start": { 2214 "line": 29, 2215 "column": 28 2216 }, 2217 "end": { 2218 "line": 32, 2219 "column": 6 2220 } 2221 } 2222 }, 2223 "optional": true, 2224 "loc": { 2225 "start": { 2226 "line": 29, 2227 "column": 17 2228 }, 2229 "end": { 2230 "line": 29, 2231 "column": 25 2232 } 2233 } 2234 } 2235 ], 2236 "returnType": { 2237 "type": "TSStringKeyword", 2238 "loc": { 2239 "start": { 2240 "line": 32, 2241 "column": 9 2242 }, 2243 "end": { 2244 "line": 32, 2245 "column": 15 2246 } 2247 } 2248 }, 2249 "loc": { 2250 "start": { 2251 "line": 29, 2252 "column": 5 2253 }, 2254 "end": { 2255 "line": 32, 2256 "column": 16 2257 } 2258 } 2259 } 2260 ], 2261 "loc": { 2262 "start": { 2263 "line": 28, 2264 "column": 22 2265 }, 2266 "end": { 2267 "line": 33, 2268 "column": 2 2269 } 2270 } 2271 }, 2272 "id": { 2273 "type": "Identifier", 2274 "name": "Interface1", 2275 "decorators": [], 2276 "loc": { 2277 "start": { 2278 "line": 28, 2279 "column": 11 2280 }, 2281 "end": { 2282 "line": 28, 2283 "column": 21 2284 } 2285 } 2286 }, 2287 "extends": [], 2288 "loc": { 2289 "start": { 2290 "line": 28, 2291 "column": 1 2292 }, 2293 "end": { 2294 "line": 33, 2295 "column": 2 2296 } 2297 } 2298 } 2299 ], 2300 "loc": { 2301 "start": { 2302 "line": 1, 2303 "column": 1 2304 }, 2305 "end": { 2306 "line": 33, 2307 "column": 2 2308 } 2309 } 2310} 2311