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