1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "TSInterfaceDeclaration", 6 "body": { 7 "type": "TSInterfaceBody", 8 "body": [ 9 { 10 "type": "TSPropertySignature", 11 "computed": false, 12 "optional": false, 13 "readonly": false, 14 "key": { 15 "type": "Identifier", 16 "name": "a", 17 "decorators": [], 18 "loc": { 19 "start": { 20 "line": 18, 21 "column": 5 22 }, 23 "end": { 24 "line": 18, 25 "column": 6 26 } 27 } 28 }, 29 "typeAnnotation": { 30 "type": "TSTypeReference", 31 "typeName": { 32 "type": "Identifier", 33 "name": "B", 34 "decorators": [], 35 "loc": { 36 "start": { 37 "line": 18, 38 "column": 8 39 }, 40 "end": { 41 "line": 18, 42 "column": 9 43 } 44 } 45 }, 46 "loc": { 47 "start": { 48 "line": 18, 49 "column": 8 50 }, 51 "end": { 52 "line": 18, 53 "column": 9 54 } 55 } 56 }, 57 "loc": { 58 "start": { 59 "line": 18, 60 "column": 5 61 }, 62 "end": { 63 "line": 18, 64 "column": 10 65 } 66 } 67 }, 68 { 69 "type": "TSPropertySignature", 70 "computed": false, 71 "optional": false, 72 "readonly": false, 73 "key": { 74 "type": "Identifier", 75 "name": "b", 76 "decorators": [], 77 "loc": { 78 "start": { 79 "line": 19, 80 "column": 5 81 }, 82 "end": { 83 "line": 19, 84 "column": 6 85 } 86 } 87 }, 88 "typeAnnotation": { 89 "type": "TSTypeReference", 90 "typeName": { 91 "type": "Identifier", 92 "name": "A", 93 "decorators": [], 94 "loc": { 95 "start": { 96 "line": 19, 97 "column": 8 98 }, 99 "end": { 100 "line": 19, 101 "column": 9 102 } 103 } 104 }, 105 "loc": { 106 "start": { 107 "line": 19, 108 "column": 8 109 }, 110 "end": { 111 "line": 19, 112 "column": 9 113 } 114 } 115 }, 116 "loc": { 117 "start": { 118 "line": 19, 119 "column": 5 120 }, 121 "end": { 122 "line": 19, 123 "column": 10 124 } 125 } 126 } 127 ], 128 "loc": { 129 "start": { 130 "line": 17, 131 "column": 13 132 }, 133 "end": { 134 "line": 20, 135 "column": 2 136 } 137 } 138 }, 139 "id": { 140 "type": "Identifier", 141 "name": "A", 142 "decorators": [], 143 "loc": { 144 "start": { 145 "line": 17, 146 "column": 11 147 }, 148 "end": { 149 "line": 17, 150 "column": 12 151 } 152 } 153 }, 154 "extends": [], 155 "loc": { 156 "start": { 157 "line": 17, 158 "column": 1 159 }, 160 "end": { 161 "line": 20, 162 "column": 2 163 } 164 } 165 }, 166 { 167 "type": "TSInterfaceDeclaration", 168 "body": { 169 "type": "TSInterfaceBody", 170 "body": [ 171 { 172 "type": "TSPropertySignature", 173 "computed": false, 174 "optional": false, 175 "readonly": false, 176 "key": { 177 "type": "Identifier", 178 "name": "c", 179 "decorators": [], 180 "loc": { 181 "start": { 182 "line": 23, 183 "column": 5 184 }, 185 "end": { 186 "line": 23, 187 "column": 6 188 } 189 } 190 }, 191 "typeAnnotation": { 192 "type": "TSTypeReference", 193 "typeName": { 194 "type": "Identifier", 195 "name": "A", 196 "decorators": [], 197 "loc": { 198 "start": { 199 "line": 23, 200 "column": 8 201 }, 202 "end": { 203 "line": 23, 204 "column": 9 205 } 206 } 207 }, 208 "loc": { 209 "start": { 210 "line": 23, 211 "column": 8 212 }, 213 "end": { 214 "line": 23, 215 "column": 9 216 } 217 } 218 }, 219 "loc": { 220 "start": { 221 "line": 23, 222 "column": 5 223 }, 224 "end": { 225 "line": 23, 226 "column": 10 227 } 228 } 229 } 230 ], 231 "loc": { 232 "start": { 233 "line": 22, 234 "column": 23 235 }, 236 "end": { 237 "line": 24, 238 "column": 2 239 } 240 } 241 }, 242 "id": { 243 "type": "Identifier", 244 "name": "B", 245 "decorators": [], 246 "loc": { 247 "start": { 248 "line": 22, 249 "column": 11 250 }, 251 "end": { 252 "line": 22, 253 "column": 12 254 } 255 } 256 }, 257 "extends": [ 258 { 259 "type": "TSInterfaceHeritage", 260 "expression": { 261 "type": "TSTypeReference", 262 "typeName": { 263 "type": "Identifier", 264 "name": "A", 265 "decorators": [], 266 "loc": { 267 "start": { 268 "line": 22, 269 "column": 21 270 }, 271 "end": { 272 "line": 22, 273 "column": 22 274 } 275 } 276 }, 277 "loc": { 278 "start": { 279 "line": 22, 280 "column": 23 281 }, 282 "end": { 283 "line": 22, 284 "column": 22 285 } 286 } 287 }, 288 "loc": { 289 "start": { 290 "line": 22, 291 "column": 23 292 }, 293 "end": { 294 "line": 22, 295 "column": 22 296 } 297 } 298 } 299 ], 300 "loc": { 301 "start": { 302 "line": 22, 303 "column": 1 304 }, 305 "end": { 306 "line": 24, 307 "column": 2 308 } 309 } 310 }, 311 { 312 "type": "VariableDeclaration", 313 "declarations": [ 314 { 315 "type": "VariableDeclarator", 316 "id": { 317 "type": "Identifier", 318 "name": "foo", 319 "typeAnnotation": { 320 "type": "TSTypeReference", 321 "typeName": { 322 "type": "Identifier", 323 "name": "B", 324 "decorators": [], 325 "loc": { 326 "start": { 327 "line": 26, 328 "column": 10 329 }, 330 "end": { 331 "line": 26, 332 "column": 11 333 } 334 } 335 }, 336 "loc": { 337 "start": { 338 "line": 26, 339 "column": 10 340 }, 341 "end": { 342 "line": 26, 343 "column": 11 344 } 345 } 346 }, 347 "decorators": [], 348 "loc": { 349 "start": { 350 "line": 26, 351 "column": 5 352 }, 353 "end": { 354 "line": 26, 355 "column": 8 356 } 357 } 358 }, 359 "init": null, 360 "loc": { 361 "start": { 362 "line": 26, 363 "column": 5 364 }, 365 "end": { 366 "line": 26, 367 "column": 8 368 } 369 } 370 } 371 ], 372 "kind": "var", 373 "loc": { 374 "start": { 375 "line": 26, 376 "column": 1 377 }, 378 "end": { 379 "line": 26, 380 "column": 12 381 } 382 } 383 }, 384 { 385 "type": "ExpressionStatement", 386 "expression": { 387 "type": "MemberExpression", 388 "object": { 389 "type": "MemberExpression", 390 "object": { 391 "type": "MemberExpression", 392 "object": { 393 "type": "MemberExpression", 394 "object": { 395 "type": "MemberExpression", 396 "object": { 397 "type": "MemberExpression", 398 "object": { 399 "type": "Identifier", 400 "name": "foo", 401 "decorators": [], 402 "loc": { 403 "start": { 404 "line": 28, 405 "column": 1 406 }, 407 "end": { 408 "line": 28, 409 "column": 4 410 } 411 } 412 }, 413 "property": { 414 "type": "Identifier", 415 "name": "a", 416 "decorators": [], 417 "loc": { 418 "start": { 419 "line": 28, 420 "column": 5 421 }, 422 "end": { 423 "line": 28, 424 "column": 6 425 } 426 } 427 }, 428 "computed": false, 429 "optional": false, 430 "loc": { 431 "start": { 432 "line": 28, 433 "column": 1 434 }, 435 "end": { 436 "line": 28, 437 "column": 6 438 } 439 } 440 }, 441 "property": { 442 "type": "Identifier", 443 "name": "b", 444 "decorators": [], 445 "loc": { 446 "start": { 447 "line": 28, 448 "column": 7 449 }, 450 "end": { 451 "line": 28, 452 "column": 8 453 } 454 } 455 }, 456 "computed": false, 457 "optional": false, 458 "loc": { 459 "start": { 460 "line": 28, 461 "column": 1 462 }, 463 "end": { 464 "line": 28, 465 "column": 8 466 } 467 } 468 }, 469 "property": { 470 "type": "Identifier", 471 "name": "b", 472 "decorators": [], 473 "loc": { 474 "start": { 475 "line": 28, 476 "column": 9 477 }, 478 "end": { 479 "line": 28, 480 "column": 10 481 } 482 } 483 }, 484 "computed": false, 485 "optional": false, 486 "loc": { 487 "start": { 488 "line": 28, 489 "column": 1 490 }, 491 "end": { 492 "line": 28, 493 "column": 10 494 } 495 } 496 }, 497 "property": { 498 "type": "Identifier", 499 "name": "a", 500 "decorators": [], 501 "loc": { 502 "start": { 503 "line": 28, 504 "column": 11 505 }, 506 "end": { 507 "line": 28, 508 "column": 12 509 } 510 } 511 }, 512 "computed": false, 513 "optional": false, 514 "loc": { 515 "start": { 516 "line": 28, 517 "column": 1 518 }, 519 "end": { 520 "line": 28, 521 "column": 12 522 } 523 } 524 }, 525 "property": { 526 "type": "Identifier", 527 "name": "c", 528 "decorators": [], 529 "loc": { 530 "start": { 531 "line": 28, 532 "column": 13 533 }, 534 "end": { 535 "line": 28, 536 "column": 14 537 } 538 } 539 }, 540 "computed": false, 541 "optional": false, 542 "loc": { 543 "start": { 544 "line": 28, 545 "column": 1 546 }, 547 "end": { 548 "line": 28, 549 "column": 14 550 } 551 } 552 }, 553 "property": { 554 "type": "Identifier", 555 "name": "a", 556 "decorators": [], 557 "loc": { 558 "start": { 559 "line": 28, 560 "column": 15 561 }, 562 "end": { 563 "line": 28, 564 "column": 16 565 } 566 } 567 }, 568 "computed": false, 569 "optional": false, 570 "loc": { 571 "start": { 572 "line": 28, 573 "column": 1 574 }, 575 "end": { 576 "line": 28, 577 "column": 16 578 } 579 } 580 }, 581 "loc": { 582 "start": { 583 "line": 28, 584 "column": 1 585 }, 586 "end": { 587 "line": 28, 588 "column": 17 589 } 590 } 591 }, 592 { 593 "type": "ExpressionStatement", 594 "expression": { 595 "type": "MemberExpression", 596 "object": { 597 "type": "MemberExpression", 598 "object": { 599 "type": "MemberExpression", 600 "object": { 601 "type": "MemberExpression", 602 "object": { 603 "type": "MemberExpression", 604 "object": { 605 "type": "MemberExpression", 606 "object": { 607 "type": "MemberExpression", 608 "object": { 609 "type": "Identifier", 610 "name": "foo", 611 "decorators": [], 612 "loc": { 613 "start": { 614 "line": 29, 615 "column": 1 616 }, 617 "end": { 618 "line": 29, 619 "column": 4 620 } 621 } 622 }, 623 "property": { 624 "type": "Identifier", 625 "name": "b", 626 "decorators": [], 627 "loc": { 628 "start": { 629 "line": 29, 630 "column": 5 631 }, 632 "end": { 633 "line": 29, 634 "column": 6 635 } 636 } 637 }, 638 "computed": false, 639 "optional": false, 640 "loc": { 641 "start": { 642 "line": 29, 643 "column": 1 644 }, 645 "end": { 646 "line": 29, 647 "column": 6 648 } 649 } 650 }, 651 "property": { 652 "type": "Identifier", 653 "name": "b", 654 "decorators": [], 655 "loc": { 656 "start": { 657 "line": 29, 658 "column": 7 659 }, 660 "end": { 661 "line": 29, 662 "column": 8 663 } 664 } 665 }, 666 "computed": false, 667 "optional": false, 668 "loc": { 669 "start": { 670 "line": 29, 671 "column": 1 672 }, 673 "end": { 674 "line": 29, 675 "column": 8 676 } 677 } 678 }, 679 "property": { 680 "type": "Identifier", 681 "name": "b", 682 "decorators": [], 683 "loc": { 684 "start": { 685 "line": 29, 686 "column": 9 687 }, 688 "end": { 689 "line": 29, 690 "column": 10 691 } 692 } 693 }, 694 "computed": false, 695 "optional": false, 696 "loc": { 697 "start": { 698 "line": 29, 699 "column": 1 700 }, 701 "end": { 702 "line": 29, 703 "column": 10 704 } 705 } 706 }, 707 "property": { 708 "type": "Identifier", 709 "name": "b", 710 "decorators": [], 711 "loc": { 712 "start": { 713 "line": 29, 714 "column": 11 715 }, 716 "end": { 717 "line": 29, 718 "column": 12 719 } 720 } 721 }, 722 "computed": false, 723 "optional": false, 724 "loc": { 725 "start": { 726 "line": 29, 727 "column": 1 728 }, 729 "end": { 730 "line": 29, 731 "column": 12 732 } 733 } 734 }, 735 "property": { 736 "type": "Identifier", 737 "name": "b", 738 "decorators": [], 739 "loc": { 740 "start": { 741 "line": 29, 742 "column": 13 743 }, 744 "end": { 745 "line": 29, 746 "column": 14 747 } 748 } 749 }, 750 "computed": false, 751 "optional": false, 752 "loc": { 753 "start": { 754 "line": 29, 755 "column": 1 756 }, 757 "end": { 758 "line": 29, 759 "column": 14 760 } 761 } 762 }, 763 "property": { 764 "type": "Identifier", 765 "name": "b", 766 "decorators": [], 767 "loc": { 768 "start": { 769 "line": 29, 770 "column": 15 771 }, 772 "end": { 773 "line": 29, 774 "column": 16 775 } 776 } 777 }, 778 "computed": false, 779 "optional": false, 780 "loc": { 781 "start": { 782 "line": 29, 783 "column": 1 784 }, 785 "end": { 786 "line": 29, 787 "column": 16 788 } 789 } 790 }, 791 "property": { 792 "type": "Identifier", 793 "name": "a", 794 "decorators": [], 795 "loc": { 796 "start": { 797 "line": 29, 798 "column": 17 799 }, 800 "end": { 801 "line": 29, 802 "column": 18 803 } 804 } 805 }, 806 "computed": false, 807 "optional": false, 808 "loc": { 809 "start": { 810 "line": 29, 811 "column": 1 812 }, 813 "end": { 814 "line": 29, 815 "column": 18 816 } 817 } 818 }, 819 "loc": { 820 "start": { 821 "line": 29, 822 "column": 1 823 }, 824 "end": { 825 "line": 29, 826 "column": 19 827 } 828 } 829 }, 830 { 831 "type": "ExpressionStatement", 832 "expression": { 833 "type": "MemberExpression", 834 "object": { 835 "type": "MemberExpression", 836 "object": { 837 "type": "MemberExpression", 838 "object": { 839 "type": "MemberExpression", 840 "object": { 841 "type": "MemberExpression", 842 "object": { 843 "type": "MemberExpression", 844 "object": { 845 "type": "MemberExpression", 846 "object": { 847 "type": "Identifier", 848 "name": "foo", 849 "decorators": [], 850 "loc": { 851 "start": { 852 "line": 30, 853 "column": 1 854 }, 855 "end": { 856 "line": 30, 857 "column": 4 858 } 859 } 860 }, 861 "property": { 862 "type": "Identifier", 863 "name": "c", 864 "decorators": [], 865 "loc": { 866 "start": { 867 "line": 30, 868 "column": 5 869 }, 870 "end": { 871 "line": 30, 872 "column": 6 873 } 874 } 875 }, 876 "computed": false, 877 "optional": false, 878 "loc": { 879 "start": { 880 "line": 30, 881 "column": 1 882 }, 883 "end": { 884 "line": 30, 885 "column": 6 886 } 887 } 888 }, 889 "property": { 890 "type": "Identifier", 891 "name": "b", 892 "decorators": [], 893 "loc": { 894 "start": { 895 "line": 30, 896 "column": 7 897 }, 898 "end": { 899 "line": 30, 900 "column": 8 901 } 902 } 903 }, 904 "computed": false, 905 "optional": false, 906 "loc": { 907 "start": { 908 "line": 30, 909 "column": 1 910 }, 911 "end": { 912 "line": 30, 913 "column": 8 914 } 915 } 916 }, 917 "property": { 918 "type": "Identifier", 919 "name": "a", 920 "decorators": [], 921 "loc": { 922 "start": { 923 "line": 30, 924 "column": 9 925 }, 926 "end": { 927 "line": 30, 928 "column": 10 929 } 930 } 931 }, 932 "computed": false, 933 "optional": false, 934 "loc": { 935 "start": { 936 "line": 30, 937 "column": 1 938 }, 939 "end": { 940 "line": 30, 941 "column": 10 942 } 943 } 944 }, 945 "property": { 946 "type": "Identifier", 947 "name": "c", 948 "decorators": [], 949 "loc": { 950 "start": { 951 "line": 30, 952 "column": 11 953 }, 954 "end": { 955 "line": 30, 956 "column": 12 957 } 958 } 959 }, 960 "computed": false, 961 "optional": false, 962 "loc": { 963 "start": { 964 "line": 30, 965 "column": 1 966 }, 967 "end": { 968 "line": 30, 969 "column": 12 970 } 971 } 972 }, 973 "property": { 974 "type": "Identifier", 975 "name": "a", 976 "decorators": [], 977 "loc": { 978 "start": { 979 "line": 30, 980 "column": 13 981 }, 982 "end": { 983 "line": 30, 984 "column": 14 985 } 986 } 987 }, 988 "computed": false, 989 "optional": false, 990 "loc": { 991 "start": { 992 "line": 30, 993 "column": 1 994 }, 995 "end": { 996 "line": 30, 997 "column": 14 998 } 999 } 1000 }, 1001 "property": { 1002 "type": "Identifier", 1003 "name": "c", 1004 "decorators": [], 1005 "loc": { 1006 "start": { 1007 "line": 30, 1008 "column": 15 1009 }, 1010 "end": { 1011 "line": 30, 1012 "column": 16 1013 } 1014 } 1015 }, 1016 "computed": false, 1017 "optional": false, 1018 "loc": { 1019 "start": { 1020 "line": 30, 1021 "column": 1 1022 }, 1023 "end": { 1024 "line": 30, 1025 "column": 16 1026 } 1027 } 1028 }, 1029 "property": { 1030 "type": "Identifier", 1031 "name": "a", 1032 "decorators": [], 1033 "loc": { 1034 "start": { 1035 "line": 30, 1036 "column": 17 1037 }, 1038 "end": { 1039 "line": 30, 1040 "column": 18 1041 } 1042 } 1043 }, 1044 "computed": false, 1045 "optional": false, 1046 "loc": { 1047 "start": { 1048 "line": 30, 1049 "column": 1 1050 }, 1051 "end": { 1052 "line": 30, 1053 "column": 18 1054 } 1055 } 1056 }, 1057 "loc": { 1058 "start": { 1059 "line": 30, 1060 "column": 1 1061 }, 1062 "end": { 1063 "line": 30, 1064 "column": 19 1065 } 1066 } 1067 } 1068 ], 1069 "loc": { 1070 "start": { 1071 "line": 1, 1072 "column": 1 1073 }, 1074 "end": { 1075 "line": 31, 1076 "column": 1 1077 } 1078 } 1079} 1080