1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "VariableDeclaration",
6      "declarations": [
7        {
8          "type": "VariableDeclarator",
9          "id": {
10            "type": "Identifier",
11            "name": "a",
12            "typeAnnotation": {
13              "type": "TSLiteralType",
14              "literal": {
15                "type": "StringLiteral",
16                "value": "baz",
17                "loc": {
18                  "start": {
19                    "line": 17,
20                    "column": 10
21                  },
22                  "end": {
23                    "line": 17,
24                    "column": 15
25                  }
26                }
27              },
28              "loc": {
29                "start": {
30                  "line": 17,
31                  "column": 10
32                },
33                "end": {
34                  "line": 17,
35                  "column": 15
36                }
37              }
38            },
39            "loc": {
40              "start": {
41                "line": 17,
42                "column": 7
43              },
44              "end": {
45                "line": 17,
46                "column": 8
47              }
48            }
49          },
50          "init": {
51            "type": "TSSatisfiesExpression",
52            "expression": {
53              "type": "StringLiteral",
54              "value": "foo",
55              "loc": {
56                "start": {
57                  "line": 17,
58                  "column": 18
59                },
60                "end": {
61                  "line": 17,
62                  "column": 23
63                }
64              }
65            },
66            "typeAnnotation": {
67              "type": "TSUnionType",
68              "types": [
69                {
70                  "type": "TSLiteralType",
71                  "literal": {
72                    "type": "StringLiteral",
73                    "value": "foo",
74                    "loc": {
75                      "start": {
76                        "line": 17,
77                        "column": 34
78                      },
79                      "end": {
80                        "line": 17,
81                        "column": 39
82                      }
83                    }
84                  },
85                  "loc": {
86                    "start": {
87                      "line": 17,
88                      "column": 34
89                    },
90                    "end": {
91                      "line": 17,
92                      "column": 39
93                    }
94                  }
95                },
96                {
97                  "type": "TSLiteralType",
98                  "literal": {
99                    "type": "StringLiteral",
100                    "value": "bar",
101                    "loc": {
102                      "start": {
103                        "line": 17,
104                        "column": 42
105                      },
106                      "end": {
107                        "line": 17,
108                        "column": 47
109                      }
110                    }
111                  },
112                  "loc": {
113                    "start": {
114                      "line": 17,
115                      "column": 42
116                    },
117                    "end": {
118                      "line": 17,
119                      "column": 47
120                    }
121                  }
122                }
123              ],
124              "loc": {
125                "start": {
126                  "line": 17,
127                  "column": 34
128                },
129                "end": {
130                  "line": 17,
131                  "column": 47
132                }
133              }
134            },
135            "loc": {
136              "start": {
137                "line": 17,
138                "column": 18
139              },
140              "end": {
141                "line": 17,
142                "column": 48
143              }
144            }
145          },
146          "loc": {
147            "start": {
148              "line": 17,
149              "column": 7
150            },
151            "end": {
152              "line": 17,
153              "column": 48
154            }
155          }
156        }
157      ],
158      "kind": "const",
159      "loc": {
160        "start": {
161          "line": 17,
162          "column": 1
163        },
164        "end": {
165          "line": 17,
166          "column": 48
167        }
168      }
169    },
170    {
171      "type": "VariableDeclaration",
172      "declarations": [
173        {
174          "type": "VariableDeclarator",
175          "id": {
176            "type": "Identifier",
177            "name": "b",
178            "typeAnnotation": {
179              "type": "TSTypeLiteral",
180              "members": [
181                {
182                  "type": "TSPropertySignature",
183                  "computed": false,
184                  "optional": false,
185                  "readonly": false,
186                  "key": {
187                    "type": "Identifier",
188                    "name": "xyz",
189                    "loc": {
190                      "start": {
191                        "line": 18,
192                        "column": 12
193                      },
194                      "end": {
195                        "line": 18,
196                        "column": 15
197                      }
198                    }
199                  },
200                  "typeAnnotation": {
201                    "type": "TSLiteralType",
202                    "literal": {
203                      "type": "StringLiteral",
204                      "value": "baz",
205                      "loc": {
206                        "start": {
207                          "line": 18,
208                          "column": 17
209                        },
210                        "end": {
211                          "line": 18,
212                          "column": 22
213                        }
214                      }
215                    },
216                    "loc": {
217                      "start": {
218                        "line": 18,
219                        "column": 17
220                      },
221                      "end": {
222                        "line": 18,
223                        "column": 22
224                      }
225                    }
226                  },
227                  "loc": {
228                    "start": {
229                      "line": 18,
230                      "column": 12
231                    },
232                    "end": {
233                      "line": 18,
234                      "column": 24
235                    }
236                  }
237                }
238              ],
239              "loc": {
240                "start": {
241                  "line": 18,
242                  "column": 10
243                },
244                "end": {
245                  "line": 18,
246                  "column": 24
247                }
248              }
249            },
250            "loc": {
251              "start": {
252                "line": 18,
253                "column": 7
254              },
255              "end": {
256                "line": 18,
257                "column": 8
258              }
259            }
260          },
261          "init": {
262            "type": "TSSatisfiesExpression",
263            "expression": {
264              "type": "ObjectExpression",
265              "properties": [
266                {
267                  "type": "Property",
268                  "method": false,
269                  "shorthand": false,
270                  "computed": false,
271                  "key": {
272                    "type": "Identifier",
273                    "name": "xyz",
274                    "loc": {
275                      "start": {
276                        "line": 18,
277                        "column": 29
278                      },
279                      "end": {
280                        "line": 18,
281                        "column": 32
282                      }
283                    }
284                  },
285                  "value": {
286                    "type": "StringLiteral",
287                    "value": "foo",
288                    "loc": {
289                      "start": {
290                        "line": 18,
291                        "column": 34
292                      },
293                      "end": {
294                        "line": 18,
295                        "column": 39
296                      }
297                    }
298                  },
299                  "kind": "init",
300                  "loc": {
301                    "start": {
302                      "line": 18,
303                      "column": 29
304                    },
305                    "end": {
306                      "line": 18,
307                      "column": 39
308                    }
309                  }
310                }
311              ],
312              "loc": {
313                "start": {
314                  "line": 18,
315                  "column": 27
316                },
317                "end": {
318                  "line": 18,
319                  "column": 41
320                }
321              }
322            },
323            "typeAnnotation": {
324              "type": "TSTypeLiteral",
325              "members": [
326                {
327                  "type": "TSPropertySignature",
328                  "computed": false,
329                  "optional": false,
330                  "readonly": false,
331                  "key": {
332                    "type": "Identifier",
333                    "name": "xyz",
334                    "loc": {
335                      "start": {
336                        "line": 18,
337                        "column": 54
338                      },
339                      "end": {
340                        "line": 18,
341                        "column": 57
342                      }
343                    }
344                  },
345                  "typeAnnotation": {
346                    "type": "TSUnionType",
347                    "types": [
348                      {
349                        "type": "TSLiteralType",
350                        "literal": {
351                          "type": "StringLiteral",
352                          "value": "foo",
353                          "loc": {
354                            "start": {
355                              "line": 18,
356                              "column": 59
357                            },
358                            "end": {
359                              "line": 18,
360                              "column": 64
361                            }
362                          }
363                        },
364                        "loc": {
365                          "start": {
366                            "line": 18,
367                            "column": 59
368                          },
369                          "end": {
370                            "line": 18,
371                            "column": 64
372                          }
373                        }
374                      },
375                      {
376                        "type": "TSLiteralType",
377                        "literal": {
378                          "type": "StringLiteral",
379                          "value": "bar",
380                          "loc": {
381                            "start": {
382                              "line": 18,
383                              "column": 67
384                            },
385                            "end": {
386                              "line": 18,
387                              "column": 72
388                            }
389                          }
390                        },
391                        "loc": {
392                          "start": {
393                            "line": 18,
394                            "column": 67
395                          },
396                          "end": {
397                            "line": 18,
398                            "column": 72
399                          }
400                        }
401                      }
402                    ],
403                    "loc": {
404                      "start": {
405                        "line": 18,
406                        "column": 59
407                      },
408                      "end": {
409                        "line": 18,
410                        "column": 72
411                      }
412                    }
413                  },
414                  "loc": {
415                    "start": {
416                      "line": 18,
417                      "column": 54
418                    },
419                    "end": {
420                      "line": 18,
421                      "column": 74
422                    }
423                  }
424                }
425              ],
426              "loc": {
427                "start": {
428                  "line": 18,
429                  "column": 52
430                },
431                "end": {
432                  "line": 18,
433                  "column": 74
434                }
435              }
436            },
437            "loc": {
438              "start": {
439                "line": 18,
440                "column": 27
441              },
442              "end": {
443                "line": 18,
444                "column": 75
445              }
446            }
447          },
448          "loc": {
449            "start": {
450              "line": 18,
451              "column": 7
452            },
453            "end": {
454              "line": 18,
455              "column": 75
456            }
457          }
458        }
459      ],
460      "kind": "const",
461      "loc": {
462        "start": {
463          "line": 18,
464          "column": 1
465        },
466        "end": {
467          "line": 18,
468          "column": 75
469        }
470      }
471    }
472  ],
473  "loc": {
474    "start": {
475      "line": 1,
476      "column": 1
477    },
478    "end": {
479      "line": 18,
480      "column": 75
481    }
482  }
483}
484