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 "declare": true, 1315 "loc": { 1316 "start": { 1317 "line": 23, 1318 "column": 9 1319 }, 1320 "end": { 1321 "line": 24, 1322 "column": 8 1323 } 1324 } 1325 }, 1326 "loc": { 1327 "start": { 1328 "line": 23, 1329 "column": 9 1330 }, 1331 "end": { 1332 "line": 24, 1333 "column": 8 1334 } 1335 } 1336 }, 1337 { 1338 "type": "TSDeclareFunction", 1339 "function": { 1340 "type": "ScriptFunction", 1341 "id": { 1342 "type": "Identifier", 1343 "name": "func8", 1344 "decorators": [], 1345 "loc": { 1346 "start": { 1347 "line": 24, 1348 "column": 18 1349 }, 1350 "end": { 1351 "line": 24, 1352 "column": 23 1353 } 1354 } 1355 }, 1356 "generator": false, 1357 "async": false, 1358 "expression": false, 1359 "params": [ 1360 { 1361 "type": "ObjectPattern", 1362 "properties": [ 1363 { 1364 "type": "Property", 1365 "method": false, 1366 "shorthand": true, 1367 "computed": false, 1368 "key": { 1369 "type": "Identifier", 1370 "name": "a", 1371 "decorators": [], 1372 "loc": { 1373 "start": { 1374 "line": 24, 1375 "column": 26 1376 }, 1377 "end": { 1378 "line": 24, 1379 "column": 27 1380 } 1381 } 1382 }, 1383 "value": { 1384 "type": "Identifier", 1385 "name": "a", 1386 "decorators": [], 1387 "loc": { 1388 "start": { 1389 "line": 24, 1390 "column": 26 1391 }, 1392 "end": { 1393 "line": 24, 1394 "column": 27 1395 } 1396 } 1397 }, 1398 "kind": "init", 1399 "loc": { 1400 "start": { 1401 "line": 24, 1402 "column": 26 1403 }, 1404 "end": { 1405 "line": 24, 1406 "column": 27 1407 } 1408 } 1409 }, 1410 { 1411 "type": "Property", 1412 "method": false, 1413 "shorthand": true, 1414 "computed": false, 1415 "key": { 1416 "type": "Identifier", 1417 "name": "b", 1418 "decorators": [], 1419 "loc": { 1420 "start": { 1421 "line": 24, 1422 "column": 29 1423 }, 1424 "end": { 1425 "line": 24, 1426 "column": 30 1427 } 1428 } 1429 }, 1430 "value": { 1431 "type": "Identifier", 1432 "name": "b", 1433 "decorators": [], 1434 "loc": { 1435 "start": { 1436 "line": 24, 1437 "column": 29 1438 }, 1439 "end": { 1440 "line": 24, 1441 "column": 30 1442 } 1443 } 1444 }, 1445 "kind": "init", 1446 "loc": { 1447 "start": { 1448 "line": 24, 1449 "column": 29 1450 }, 1451 "end": { 1452 "line": 24, 1453 "column": 30 1454 } 1455 } 1456 } 1457 ], 1458 "typeAnnotation": { 1459 "type": "TSTypeLiteral", 1460 "members": [ 1461 { 1462 "type": "TSPropertySignature", 1463 "computed": false, 1464 "optional": false, 1465 "readonly": false, 1466 "key": { 1467 "type": "Identifier", 1468 "name": "a", 1469 "decorators": [], 1470 "loc": { 1471 "start": { 1472 "line": 24, 1473 "column": 36 1474 }, 1475 "end": { 1476 "line": 24, 1477 "column": 37 1478 } 1479 } 1480 }, 1481 "typeAnnotation": { 1482 "type": "TSNumberKeyword", 1483 "loc": { 1484 "start": { 1485 "line": 24, 1486 "column": 39 1487 }, 1488 "end": { 1489 "line": 24, 1490 "column": 45 1491 } 1492 } 1493 }, 1494 "loc": { 1495 "start": { 1496 "line": 24, 1497 "column": 36 1498 }, 1499 "end": { 1500 "line": 24, 1501 "column": 46 1502 } 1503 } 1504 }, 1505 { 1506 "type": "TSPropertySignature", 1507 "computed": false, 1508 "optional": false, 1509 "readonly": false, 1510 "key": { 1511 "type": "Identifier", 1512 "name": "b", 1513 "decorators": [], 1514 "loc": { 1515 "start": { 1516 "line": 24, 1517 "column": 47 1518 }, 1519 "end": { 1520 "line": 24, 1521 "column": 48 1522 } 1523 } 1524 }, 1525 "typeAnnotation": { 1526 "type": "TSNumberKeyword", 1527 "loc": { 1528 "start": { 1529 "line": 24, 1530 "column": 50 1531 }, 1532 "end": { 1533 "line": 24, 1534 "column": 56 1535 } 1536 } 1537 }, 1538 "loc": { 1539 "start": { 1540 "line": 24, 1541 "column": 47 1542 }, 1543 "end": { 1544 "line": 24, 1545 "column": 58 1546 } 1547 } 1548 } 1549 ], 1550 "loc": { 1551 "start": { 1552 "line": 24, 1553 "column": 34 1554 }, 1555 "end": { 1556 "line": 24, 1557 "column": 58 1558 } 1559 } 1560 }, 1561 "loc": { 1562 "start": { 1563 "line": 24, 1564 "column": 24 1565 }, 1566 "end": { 1567 "line": 24, 1568 "column": 32 1569 } 1570 } 1571 } 1572 ], 1573 "declare": true, 1574 "loc": { 1575 "start": { 1576 "line": 24, 1577 "column": 9 1578 }, 1579 "end": { 1580 "line": 25, 1581 "column": 8 1582 } 1583 } 1584 }, 1585 "loc": { 1586 "start": { 1587 "line": 24, 1588 "column": 9 1589 }, 1590 "end": { 1591 "line": 25, 1592 "column": 8 1593 } 1594 } 1595 }, 1596 { 1597 "type": "TSDeclareFunction", 1598 "function": { 1599 "type": "ScriptFunction", 1600 "id": { 1601 "type": "Identifier", 1602 "name": "func9", 1603 "decorators": [], 1604 "loc": { 1605 "start": { 1606 "line": 25, 1607 "column": 18 1608 }, 1609 "end": { 1610 "line": 25, 1611 "column": 23 1612 } 1613 } 1614 }, 1615 "generator": false, 1616 "async": false, 1617 "expression": false, 1618 "params": [ 1619 { 1620 "type": "ArrayPattern", 1621 "elements": [ 1622 { 1623 "type": "Identifier", 1624 "name": "a", 1625 "decorators": [], 1626 "loc": { 1627 "start": { 1628 "line": 25, 1629 "column": 25 1630 }, 1631 "end": { 1632 "line": 25, 1633 "column": 26 1634 } 1635 } 1636 }, 1637 { 1638 "type": "Identifier", 1639 "name": "b", 1640 "decorators": [], 1641 "loc": { 1642 "start": { 1643 "line": 25, 1644 "column": 28 1645 }, 1646 "end": { 1647 "line": 25, 1648 "column": 29 1649 } 1650 } 1651 } 1652 ], 1653 "typeAnnotation": { 1654 "type": "TSTupleType", 1655 "elementTypes": [ 1656 { 1657 "type": "TSNumberKeyword", 1658 "loc": { 1659 "start": { 1660 "line": 25, 1661 "column": 34 1662 }, 1663 "end": { 1664 "line": 25, 1665 "column": 41 1666 } 1667 } 1668 }, 1669 { 1670 "type": "TSStringKeyword", 1671 "loc": { 1672 "start": { 1673 "line": 25, 1674 "column": 42 1675 }, 1676 "end": { 1677 "line": 25, 1678 "column": 49 1679 } 1680 } 1681 } 1682 ], 1683 "loc": { 1684 "start": { 1685 "line": 25, 1686 "column": 33 1687 }, 1688 "end": { 1689 "line": 25, 1690 "column": 49 1691 } 1692 } 1693 }, 1694 "optional": true, 1695 "loc": { 1696 "start": { 1697 "line": 25, 1698 "column": 24 1699 }, 1700 "end": { 1701 "line": 25, 1702 "column": 30 1703 } 1704 } 1705 } 1706 ], 1707 "declare": true, 1708 "loc": { 1709 "start": { 1710 "line": 25, 1711 "column": 9 1712 }, 1713 "end": { 1714 "line": 26, 1715 "column": 8 1716 } 1717 } 1718 }, 1719 "loc": { 1720 "start": { 1721 "line": 25, 1722 "column": 9 1723 }, 1724 "end": { 1725 "line": 26, 1726 "column": 8 1727 } 1728 } 1729 }, 1730 { 1731 "type": "TSDeclareFunction", 1732 "function": { 1733 "type": "ScriptFunction", 1734 "id": { 1735 "type": "Identifier", 1736 "name": "func10", 1737 "decorators": [], 1738 "loc": { 1739 "start": { 1740 "line": 26, 1741 "column": 18 1742 }, 1743 "end": { 1744 "line": 26, 1745 "column": 24 1746 } 1747 } 1748 }, 1749 "generator": false, 1750 "async": false, 1751 "expression": false, 1752 "params": [ 1753 { 1754 "type": "ObjectPattern", 1755 "properties": [ 1756 { 1757 "type": "Property", 1758 "method": false, 1759 "shorthand": true, 1760 "computed": false, 1761 "key": { 1762 "type": "Identifier", 1763 "name": "a", 1764 "decorators": [], 1765 "loc": { 1766 "start": { 1767 "line": 26, 1768 "column": 27 1769 }, 1770 "end": { 1771 "line": 26, 1772 "column": 28 1773 } 1774 } 1775 }, 1776 "value": { 1777 "type": "Identifier", 1778 "name": "a", 1779 "decorators": [], 1780 "loc": { 1781 "start": { 1782 "line": 26, 1783 "column": 27 1784 }, 1785 "end": { 1786 "line": 26, 1787 "column": 28 1788 } 1789 } 1790 }, 1791 "kind": "init", 1792 "loc": { 1793 "start": { 1794 "line": 26, 1795 "column": 27 1796 }, 1797 "end": { 1798 "line": 26, 1799 "column": 28 1800 } 1801 } 1802 }, 1803 { 1804 "type": "Property", 1805 "method": false, 1806 "shorthand": true, 1807 "computed": false, 1808 "key": { 1809 "type": "Identifier", 1810 "name": "b", 1811 "decorators": [], 1812 "loc": { 1813 "start": { 1814 "line": 26, 1815 "column": 30 1816 }, 1817 "end": { 1818 "line": 26, 1819 "column": 31 1820 } 1821 } 1822 }, 1823 "value": { 1824 "type": "Identifier", 1825 "name": "b", 1826 "decorators": [], 1827 "loc": { 1828 "start": { 1829 "line": 26, 1830 "column": 30 1831 }, 1832 "end": { 1833 "line": 26, 1834 "column": 31 1835 } 1836 } 1837 }, 1838 "kind": "init", 1839 "loc": { 1840 "start": { 1841 "line": 26, 1842 "column": 30 1843 }, 1844 "end": { 1845 "line": 26, 1846 "column": 31 1847 } 1848 } 1849 } 1850 ], 1851 "typeAnnotation": { 1852 "type": "TSTypeLiteral", 1853 "members": [ 1854 { 1855 "type": "TSPropertySignature", 1856 "computed": false, 1857 "optional": false, 1858 "readonly": false, 1859 "key": { 1860 "type": "Identifier", 1861 "name": "a", 1862 "decorators": [], 1863 "loc": { 1864 "start": { 1865 "line": 26, 1866 "column": 38 1867 }, 1868 "end": { 1869 "line": 26, 1870 "column": 39 1871 } 1872 } 1873 }, 1874 "typeAnnotation": { 1875 "type": "TSNumberKeyword", 1876 "loc": { 1877 "start": { 1878 "line": 26, 1879 "column": 41 1880 }, 1881 "end": { 1882 "line": 26, 1883 "column": 47 1884 } 1885 } 1886 }, 1887 "loc": { 1888 "start": { 1889 "line": 26, 1890 "column": 38 1891 }, 1892 "end": { 1893 "line": 26, 1894 "column": 48 1895 } 1896 } 1897 }, 1898 { 1899 "type": "TSPropertySignature", 1900 "computed": false, 1901 "optional": false, 1902 "readonly": false, 1903 "key": { 1904 "type": "Identifier", 1905 "name": "b", 1906 "decorators": [], 1907 "loc": { 1908 "start": { 1909 "line": 26, 1910 "column": 49 1911 }, 1912 "end": { 1913 "line": 26, 1914 "column": 50 1915 } 1916 } 1917 }, 1918 "typeAnnotation": { 1919 "type": "TSNumberKeyword", 1920 "loc": { 1921 "start": { 1922 "line": 26, 1923 "column": 52 1924 }, 1925 "end": { 1926 "line": 26, 1927 "column": 58 1928 } 1929 } 1930 }, 1931 "loc": { 1932 "start": { 1933 "line": 26, 1934 "column": 49 1935 }, 1936 "end": { 1937 "line": 26, 1938 "column": 60 1939 } 1940 } 1941 } 1942 ], 1943 "loc": { 1944 "start": { 1945 "line": 26, 1946 "column": 36 1947 }, 1948 "end": { 1949 "line": 26, 1950 "column": 60 1951 } 1952 } 1953 }, 1954 "optional": true, 1955 "loc": { 1956 "start": { 1957 "line": 26, 1958 "column": 25 1959 }, 1960 "end": { 1961 "line": 26, 1962 "column": 33 1963 } 1964 } 1965 } 1966 ], 1967 "declare": true, 1968 "loc": { 1969 "start": { 1970 "line": 26, 1971 "column": 9 1972 }, 1973 "end": { 1974 "line": 28, 1975 "column": 10 1976 } 1977 } 1978 }, 1979 "loc": { 1980 "start": { 1981 "line": 26, 1982 "column": 9 1983 }, 1984 "end": { 1985 "line": 28, 1986 "column": 10 1987 } 1988 } 1989 }, 1990 { 1991 "type": "TSInterfaceDeclaration", 1992 "body": { 1993 "type": "TSInterfaceBody", 1994 "body": [ 1995 { 1996 "type": "TSCallSignatureDeclaration", 1997 "params": [ 1998 { 1999 "type": "Identifier", 2000 "name": "a", 2001 "typeAnnotation": { 2002 "type": "TSNumberKeyword", 2003 "loc": { 2004 "start": { 2005 "line": 29, 2006 "column": 9 2007 }, 2008 "end": { 2009 "line": 29, 2010 "column": 15 2011 } 2012 } 2013 }, 2014 "decorators": [], 2015 "loc": { 2016 "start": { 2017 "line": 29, 2018 "column": 6 2019 }, 2020 "end": { 2021 "line": 29, 2022 "column": 7 2023 } 2024 } 2025 }, 2026 { 2027 "type": "ObjectPattern", 2028 "properties": [ 2029 { 2030 "type": "Property", 2031 "method": false, 2032 "shorthand": true, 2033 "computed": false, 2034 "key": { 2035 "type": "Identifier", 2036 "name": "b", 2037 "decorators": [], 2038 "loc": { 2039 "start": { 2040 "line": 29, 2041 "column": 19 2042 }, 2043 "end": { 2044 "line": 29, 2045 "column": 20 2046 } 2047 } 2048 }, 2049 "value": { 2050 "type": "Identifier", 2051 "name": "b", 2052 "decorators": [], 2053 "loc": { 2054 "start": { 2055 "line": 29, 2056 "column": 19 2057 }, 2058 "end": { 2059 "line": 29, 2060 "column": 20 2061 } 2062 } 2063 }, 2064 "kind": "init", 2065 "loc": { 2066 "start": { 2067 "line": 29, 2068 "column": 19 2069 }, 2070 "end": { 2071 "line": 29, 2072 "column": 20 2073 } 2074 } 2075 }, 2076 { 2077 "type": "Property", 2078 "method": false, 2079 "shorthand": true, 2080 "computed": false, 2081 "key": { 2082 "type": "Identifier", 2083 "name": "c", 2084 "decorators": [], 2085 "loc": { 2086 "start": { 2087 "line": 29, 2088 "column": 22 2089 }, 2090 "end": { 2091 "line": 29, 2092 "column": 23 2093 } 2094 } 2095 }, 2096 "value": { 2097 "type": "Identifier", 2098 "name": "c", 2099 "decorators": [], 2100 "loc": { 2101 "start": { 2102 "line": 29, 2103 "column": 22 2104 }, 2105 "end": { 2106 "line": 29, 2107 "column": 23 2108 } 2109 } 2110 }, 2111 "kind": "init", 2112 "loc": { 2113 "start": { 2114 "line": 29, 2115 "column": 22 2116 }, 2117 "end": { 2118 "line": 29, 2119 "column": 23 2120 } 2121 } 2122 } 2123 ], 2124 "typeAnnotation": { 2125 "type": "TSTypeLiteral", 2126 "members": [ 2127 { 2128 "type": "TSPropertySignature", 2129 "computed": false, 2130 "optional": true, 2131 "readonly": false, 2132 "key": { 2133 "type": "Identifier", 2134 "name": "b", 2135 "decorators": [], 2136 "loc": { 2137 "start": { 2138 "line": 30, 2139 "column": 9 2140 }, 2141 "end": { 2142 "line": 30, 2143 "column": 10 2144 } 2145 } 2146 }, 2147 "typeAnnotation": { 2148 "type": "TSBooleanKeyword", 2149 "loc": { 2150 "start": { 2151 "line": 30, 2152 "column": 13 2153 }, 2154 "end": { 2155 "line": 30, 2156 "column": 20 2157 } 2158 } 2159 }, 2160 "loc": { 2161 "start": { 2162 "line": 30, 2163 "column": 9 2164 }, 2165 "end": { 2166 "line": 30, 2167 "column": 21 2168 } 2169 } 2170 }, 2171 { 2172 "type": "TSPropertySignature", 2173 "computed": false, 2174 "optional": true, 2175 "readonly": false, 2176 "key": { 2177 "type": "Identifier", 2178 "name": "c", 2179 "decorators": [], 2180 "loc": { 2181 "start": { 2182 "line": 31, 2183 "column": 9 2184 }, 2185 "end": { 2186 "line": 31, 2187 "column": 10 2188 } 2189 } 2190 }, 2191 "typeAnnotation": { 2192 "type": "TSAnyKeyword", 2193 "loc": { 2194 "start": { 2195 "line": 31, 2196 "column": 13 2197 }, 2198 "end": { 2199 "line": 31, 2200 "column": 16 2201 } 2202 } 2203 }, 2204 "loc": { 2205 "start": { 2206 "line": 31, 2207 "column": 9 2208 }, 2209 "end": { 2210 "line": 31, 2211 "column": 17 2212 } 2213 } 2214 } 2215 ], 2216 "loc": { 2217 "start": { 2218 "line": 29, 2219 "column": 28 2220 }, 2221 "end": { 2222 "line": 32, 2223 "column": 6 2224 } 2225 } 2226 }, 2227 "optional": true, 2228 "loc": { 2229 "start": { 2230 "line": 29, 2231 "column": 17 2232 }, 2233 "end": { 2234 "line": 29, 2235 "column": 25 2236 } 2237 } 2238 } 2239 ], 2240 "returnType": { 2241 "type": "TSStringKeyword", 2242 "loc": { 2243 "start": { 2244 "line": 32, 2245 "column": 9 2246 }, 2247 "end": { 2248 "line": 32, 2249 "column": 15 2250 } 2251 } 2252 }, 2253 "loc": { 2254 "start": { 2255 "line": 29, 2256 "column": 5 2257 }, 2258 "end": { 2259 "line": 32, 2260 "column": 16 2261 } 2262 } 2263 } 2264 ], 2265 "loc": { 2266 "start": { 2267 "line": 28, 2268 "column": 22 2269 }, 2270 "end": { 2271 "line": 33, 2272 "column": 2 2273 } 2274 } 2275 }, 2276 "id": { 2277 "type": "Identifier", 2278 "name": "Interface1", 2279 "decorators": [], 2280 "loc": { 2281 "start": { 2282 "line": 28, 2283 "column": 11 2284 }, 2285 "end": { 2286 "line": 28, 2287 "column": 21 2288 } 2289 } 2290 }, 2291 "extends": [], 2292 "loc": { 2293 "start": { 2294 "line": 28, 2295 "column": 1 2296 }, 2297 "end": { 2298 "line": 33, 2299 "column": 2 2300 } 2301 } 2302 } 2303 ], 2304 "loc": { 2305 "start": { 2306 "line": 1, 2307 "column": 1 2308 }, 2309 "end": { 2310 "line": 33, 2311 "column": 2 2312 } 2313 } 2314} 2315