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