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