• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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                  "program": "interfaceAssignment.ts"
23                },
24                "end": {
25                  "line": 18,
26                  "column": 6,
27                  "program": "interfaceAssignment.ts"
28                }
29              }
30            },
31            "typeAnnotation": {
32              "type": "TSNumberKeyword",
33              "loc": {
34                "start": {
35                  "line": 18,
36                  "column": 8,
37                  "program": "interfaceAssignment.ts"
38                },
39                "end": {
40                  "line": 18,
41                  "column": 14,
42                  "program": "interfaceAssignment.ts"
43                }
44              }
45            },
46            "loc": {
47              "start": {
48                "line": 18,
49                "column": 5,
50                "program": "interfaceAssignment.ts"
51              },
52              "end": {
53                "line": 18,
54                "column": 15,
55                "program": "interfaceAssignment.ts"
56              }
57            }
58          },
59          {
60            "type": "TSPropertySignature",
61            "computed": false,
62            "optional": false,
63            "readonly": false,
64            "key": {
65              "type": "Identifier",
66              "name": "b",
67              "decorators": [],
68              "loc": {
69                "start": {
70                  "line": 19,
71                  "column": 5,
72                  "program": "interfaceAssignment.ts"
73                },
74                "end": {
75                  "line": 19,
76                  "column": 6,
77                  "program": "interfaceAssignment.ts"
78                }
79              }
80            },
81            "typeAnnotation": {
82              "type": "TSStringKeyword",
83              "loc": {
84                "start": {
85                  "line": 19,
86                  "column": 8,
87                  "program": "interfaceAssignment.ts"
88                },
89                "end": {
90                  "line": 19,
91                  "column": 14,
92                  "program": "interfaceAssignment.ts"
93                }
94              }
95            },
96            "loc": {
97              "start": {
98                "line": 19,
99                "column": 5,
100                "program": "interfaceAssignment.ts"
101              },
102              "end": {
103                "line": 19,
104                "column": 15,
105                "program": "interfaceAssignment.ts"
106              }
107            }
108          },
109          {
110            "type": "TSPropertySignature",
111            "computed": false,
112            "optional": false,
113            "readonly": false,
114            "key": {
115              "type": "Identifier",
116              "name": "c",
117              "decorators": [],
118              "loc": {
119                "start": {
120                  "line": 20,
121                  "column": 5,
122                  "program": "interfaceAssignment.ts"
123                },
124                "end": {
125                  "line": 20,
126                  "column": 6,
127                  "program": "interfaceAssignment.ts"
128                }
129              }
130            },
131            "typeAnnotation": {
132              "type": "TSBooleanKeyword",
133              "loc": {
134                "start": {
135                  "line": 20,
136                  "column": 8,
137                  "program": "interfaceAssignment.ts"
138                },
139                "end": {
140                  "line": 20,
141                  "column": 15,
142                  "program": "interfaceAssignment.ts"
143                }
144              }
145            },
146            "loc": {
147              "start": {
148                "line": 20,
149                "column": 5,
150                "program": "interfaceAssignment.ts"
151              },
152              "end": {
153                "line": 20,
154                "column": 16,
155                "program": "interfaceAssignment.ts"
156              }
157            }
158          }
159        ],
160        "loc": {
161          "start": {
162            "line": 17,
163            "column": 13,
164            "program": "interfaceAssignment.ts"
165          },
166          "end": {
167            "line": 21,
168            "column": 2,
169            "program": "interfaceAssignment.ts"
170          }
171        }
172      },
173      "id": {
174        "type": "Identifier",
175        "name": "A",
176        "decorators": [],
177        "loc": {
178          "start": {
179            "line": 17,
180            "column": 11,
181            "program": "interfaceAssignment.ts"
182          },
183          "end": {
184            "line": 17,
185            "column": 12,
186            "program": "interfaceAssignment.ts"
187          }
188        }
189      },
190      "extends": [],
191      "loc": {
192        "start": {
193          "line": 17,
194          "column": 1,
195          "program": "interfaceAssignment.ts"
196        },
197        "end": {
198          "line": 21,
199          "column": 2,
200          "program": "interfaceAssignment.ts"
201        }
202      }
203    },
204    {
205      "type": "VariableDeclaration",
206      "declarations": [
207        {
208          "type": "VariableDeclarator",
209          "id": {
210            "type": "Identifier",
211            "name": "a",
212            "typeAnnotation": {
213              "type": "TSTypeReference",
214              "typeName": {
215                "type": "Identifier",
216                "name": "A",
217                "decorators": [],
218                "loc": {
219                  "start": {
220                    "line": 23,
221                    "column": 8,
222                    "program": "interfaceAssignment.ts"
223                  },
224                  "end": {
225                    "line": 23,
226                    "column": 9,
227                    "program": "interfaceAssignment.ts"
228                  }
229                }
230              },
231              "loc": {
232                "start": {
233                  "line": 23,
234                  "column": 8,
235                  "program": "interfaceAssignment.ts"
236                },
237                "end": {
238                  "line": 23,
239                  "column": 9,
240                  "program": "interfaceAssignment.ts"
241                }
242              }
243            },
244            "decorators": [],
245            "loc": {
246              "start": {
247                "line": 23,
248                "column": 5,
249                "program": "interfaceAssignment.ts"
250              },
251              "end": {
252                "line": 23,
253                "column": 6,
254                "program": "interfaceAssignment.ts"
255              }
256            }
257          },
258          "init": {
259            "type": "ObjectExpression",
260            "properties": [
261              {
262                "type": "Property",
263                "method": false,
264                "shorthand": false,
265                "computed": false,
266                "key": {
267                  "type": "Identifier",
268                  "name": "a",
269                  "decorators": [],
270                  "loc": {
271                    "start": {
272                      "line": 23,
273                      "column": 14,
274                      "program": "interfaceAssignment.ts"
275                    },
276                    "end": {
277                      "line": 23,
278                      "column": 15,
279                      "program": "interfaceAssignment.ts"
280                    }
281                  }
282                },
283                "value": {
284                  "type": "NumberLiteral",
285                  "value": 1,
286                  "loc": {
287                    "start": {
288                      "line": 23,
289                      "column": 17,
290                      "program": "interfaceAssignment.ts"
291                    },
292                    "end": {
293                      "line": 23,
294                      "column": 18,
295                      "program": "interfaceAssignment.ts"
296                    }
297                  }
298                },
299                "kind": "init",
300                "loc": {
301                  "start": {
302                    "line": 23,
303                    "column": 14,
304                    "program": "interfaceAssignment.ts"
305                  },
306                  "end": {
307                    "line": 23,
308                    "column": 18,
309                    "program": "interfaceAssignment.ts"
310                  }
311                }
312              },
313              {
314                "type": "Property",
315                "method": false,
316                "shorthand": false,
317                "computed": false,
318                "key": {
319                  "type": "Identifier",
320                  "name": "b",
321                  "decorators": [],
322                  "loc": {
323                    "start": {
324                      "line": 23,
325                      "column": 20,
326                      "program": "interfaceAssignment.ts"
327                    },
328                    "end": {
329                      "line": 23,
330                      "column": 21,
331                      "program": "interfaceAssignment.ts"
332                    }
333                  }
334                },
335                "value": {
336                  "type": "StringLiteral",
337                  "value": "foo",
338                  "loc": {
339                    "start": {
340                      "line": 23,
341                      "column": 23,
342                      "program": "interfaceAssignment.ts"
343                    },
344                    "end": {
345                      "line": 23,
346                      "column": 28,
347                      "program": "interfaceAssignment.ts"
348                    }
349                  }
350                },
351                "kind": "init",
352                "loc": {
353                  "start": {
354                    "line": 23,
355                    "column": 20,
356                    "program": "interfaceAssignment.ts"
357                  },
358                  "end": {
359                    "line": 23,
360                    "column": 28,
361                    "program": "interfaceAssignment.ts"
362                  }
363                }
364              },
365              {
366                "type": "Property",
367                "method": false,
368                "shorthand": false,
369                "computed": false,
370                "key": {
371                  "type": "Identifier",
372                  "name": "c",
373                  "decorators": [],
374                  "loc": {
375                    "start": {
376                      "line": 23,
377                      "column": 30,
378                      "program": "interfaceAssignment.ts"
379                    },
380                    "end": {
381                      "line": 23,
382                      "column": 31,
383                      "program": "interfaceAssignment.ts"
384                    }
385                  }
386                },
387                "value": {
388                  "type": "BooleanLiteral",
389                  "value": true,
390                  "loc": {
391                    "start": {
392                      "line": 23,
393                      "column": 33,
394                      "program": "interfaceAssignment.ts"
395                    },
396                    "end": {
397                      "line": 23,
398                      "column": 37,
399                      "program": "interfaceAssignment.ts"
400                    }
401                  }
402                },
403                "kind": "init",
404                "loc": {
405                  "start": {
406                    "line": 23,
407                    "column": 30,
408                    "program": "interfaceAssignment.ts"
409                  },
410                  "end": {
411                    "line": 23,
412                    "column": 37,
413                    "program": "interfaceAssignment.ts"
414                  }
415                }
416              }
417            ],
418            "loc": {
419              "start": {
420                "line": 23,
421                "column": 12,
422                "program": "interfaceAssignment.ts"
423              },
424              "end": {
425                "line": 23,
426                "column": 39,
427                "program": "interfaceAssignment.ts"
428              }
429            }
430          },
431          "loc": {
432            "start": {
433              "line": 23,
434              "column": 5,
435              "program": "interfaceAssignment.ts"
436            },
437            "end": {
438              "line": 23,
439              "column": 39,
440              "program": "interfaceAssignment.ts"
441            }
442          }
443        }
444      ],
445      "kind": "var",
446      "loc": {
447        "start": {
448          "line": 23,
449          "column": 1,
450          "program": "interfaceAssignment.ts"
451        },
452        "end": {
453          "line": 23,
454          "column": 40,
455          "program": "interfaceAssignment.ts"
456        }
457      }
458    },
459    {
460      "type": "TSInterfaceDeclaration",
461      "body": {
462        "type": "TSInterfaceBody",
463        "body": [
464          {
465            "type": "TSMethodSignature",
466            "computed": false,
467            "optional": false,
468            "key": {
469              "type": "Identifier",
470              "name": "d",
471              "decorators": [],
472              "loc": {
473                "start": {
474                  "line": 26,
475                  "column": 5,
476                  "program": "interfaceAssignment.ts"
477                },
478                "end": {
479                  "line": 26,
480                  "column": 6,
481                  "program": "interfaceAssignment.ts"
482                }
483              }
484            },
485            "params": [
486              {
487                "type": "Identifier",
488                "name": "a",
489                "typeAnnotation": {
490                  "type": "TSNumberKeyword",
491                  "loc": {
492                    "start": {
493                      "line": 26,
494                      "column": 10,
495                      "program": "interfaceAssignment.ts"
496                    },
497                    "end": {
498                      "line": 26,
499                      "column": 16,
500                      "program": "interfaceAssignment.ts"
501                    }
502                  }
503                },
504                "decorators": [],
505                "loc": {
506                  "start": {
507                    "line": 26,
508                    "column": 7,
509                    "program": "interfaceAssignment.ts"
510                  },
511                  "end": {
512                    "line": 26,
513                    "column": 8,
514                    "program": "interfaceAssignment.ts"
515                  }
516                }
517              },
518              {
519                "type": "Identifier",
520                "name": "b",
521                "typeAnnotation": {
522                  "type": "TSStringKeyword",
523                  "loc": {
524                    "start": {
525                      "line": 26,
526                      "column": 21,
527                      "program": "interfaceAssignment.ts"
528                    },
529                    "end": {
530                      "line": 26,
531                      "column": 27,
532                      "program": "interfaceAssignment.ts"
533                    }
534                  }
535                },
536                "decorators": [],
537                "loc": {
538                  "start": {
539                    "line": 26,
540                    "column": 18,
541                    "program": "interfaceAssignment.ts"
542                  },
543                  "end": {
544                    "line": 26,
545                    "column": 19,
546                    "program": "interfaceAssignment.ts"
547                  }
548                }
549              }
550            ],
551            "typeAnnotation": {
552              "type": "TSArrayType",
553              "elementType": {
554                "type": "TSNumberKeyword",
555                "loc": {
556                  "start": {
557                    "line": 26,
558                    "column": 30,
559                    "program": "interfaceAssignment.ts"
560                  },
561                  "end": {
562                    "line": 26,
563                    "column": 36,
564                    "program": "interfaceAssignment.ts"
565                  }
566                }
567              },
568              "annotations": [],
569              "loc": {
570                "start": {
571                  "line": 26,
572                  "column": 30,
573                  "program": "interfaceAssignment.ts"
574                },
575                "end": {
576                  "line": 26,
577                  "column": 38,
578                  "program": "interfaceAssignment.ts"
579                }
580              }
581            },
582            "loc": {
583              "start": {
584                "line": 26,
585                "column": 5,
586                "program": "interfaceAssignment.ts"
587              },
588              "end": {
589                "line": 26,
590                "column": 39,
591                "program": "interfaceAssignment.ts"
592              }
593            }
594          }
595        ],
596        "loc": {
597          "start": {
598            "line": 25,
599            "column": 23,
600            "program": "interfaceAssignment.ts"
601          },
602          "end": {
603            "line": 27,
604            "column": 2,
605            "program": "interfaceAssignment.ts"
606          }
607        }
608      },
609      "id": {
610        "type": "Identifier",
611        "name": "B",
612        "decorators": [],
613        "loc": {
614          "start": {
615            "line": 25,
616            "column": 11,
617            "program": "interfaceAssignment.ts"
618          },
619          "end": {
620            "line": 25,
621            "column": 12,
622            "program": "interfaceAssignment.ts"
623          }
624        }
625      },
626      "extends": [
627        {
628          "type": "TSInterfaceHeritage",
629          "expression": {
630            "type": "TSTypeReference",
631            "typeName": {
632              "type": "Identifier",
633              "name": "A",
634              "decorators": [],
635              "loc": {
636                "start": {
637                  "line": 25,
638                  "column": 21,
639                  "program": "interfaceAssignment.ts"
640                },
641                "end": {
642                  "line": 25,
643                  "column": 22,
644                  "program": "interfaceAssignment.ts"
645                }
646              }
647            },
648            "loc": {
649              "start": {
650                "line": 25,
651                "column": 23,
652                "program": "interfaceAssignment.ts"
653              },
654              "end": {
655                "line": 25,
656                "column": 22,
657                "program": "interfaceAssignment.ts"
658              }
659            }
660          },
661          "loc": {
662            "start": {
663              "line": 25,
664              "column": 23,
665              "program": "interfaceAssignment.ts"
666            },
667            "end": {
668              "line": 25,
669              "column": 22,
670              "program": "interfaceAssignment.ts"
671            }
672          }
673        }
674      ],
675      "loc": {
676        "start": {
677          "line": 25,
678          "column": 1,
679          "program": "interfaceAssignment.ts"
680        },
681        "end": {
682          "line": 27,
683          "column": 2,
684          "program": "interfaceAssignment.ts"
685        }
686      }
687    },
688    {
689      "type": "VariableDeclaration",
690      "declarations": [
691        {
692          "type": "VariableDeclarator",
693          "id": {
694            "type": "Identifier",
695            "name": "b",
696            "typeAnnotation": {
697              "type": "TSTypeReference",
698              "typeName": {
699                "type": "Identifier",
700                "name": "B",
701                "decorators": [],
702                "loc": {
703                  "start": {
704                    "line": 29,
705                    "column": 8,
706                    "program": "interfaceAssignment.ts"
707                  },
708                  "end": {
709                    "line": 29,
710                    "column": 9,
711                    "program": "interfaceAssignment.ts"
712                  }
713                }
714              },
715              "loc": {
716                "start": {
717                  "line": 29,
718                  "column": 8,
719                  "program": "interfaceAssignment.ts"
720                },
721                "end": {
722                  "line": 29,
723                  "column": 9,
724                  "program": "interfaceAssignment.ts"
725                }
726              }
727            },
728            "decorators": [],
729            "loc": {
730              "start": {
731                "line": 29,
732                "column": 5,
733                "program": "interfaceAssignment.ts"
734              },
735              "end": {
736                "line": 29,
737                "column": 6,
738                "program": "interfaceAssignment.ts"
739              }
740            }
741          },
742          "init": {
743            "type": "ObjectExpression",
744            "properties": [
745              {
746                "type": "Property",
747                "method": false,
748                "shorthand": false,
749                "computed": false,
750                "key": {
751                  "type": "Identifier",
752                  "name": "a",
753                  "decorators": [],
754                  "loc": {
755                    "start": {
756                      "line": 30,
757                      "column": 5,
758                      "program": "interfaceAssignment.ts"
759                    },
760                    "end": {
761                      "line": 30,
762                      "column": 6,
763                      "program": "interfaceAssignment.ts"
764                    }
765                  }
766                },
767                "value": {
768                  "type": "NumberLiteral",
769                  "value": 2,
770                  "loc": {
771                    "start": {
772                      "line": 30,
773                      "column": 8,
774                      "program": "interfaceAssignment.ts"
775                    },
776                    "end": {
777                      "line": 30,
778                      "column": 9,
779                      "program": "interfaceAssignment.ts"
780                    }
781                  }
782                },
783                "kind": "init",
784                "loc": {
785                  "start": {
786                    "line": 30,
787                    "column": 5,
788                    "program": "interfaceAssignment.ts"
789                  },
790                  "end": {
791                    "line": 30,
792                    "column": 9,
793                    "program": "interfaceAssignment.ts"
794                  }
795                }
796              },
797              {
798                "type": "Property",
799                "method": false,
800                "shorthand": false,
801                "computed": false,
802                "key": {
803                  "type": "Identifier",
804                  "name": "b",
805                  "decorators": [],
806                  "loc": {
807                    "start": {
808                      "line": 30,
809                      "column": 11,
810                      "program": "interfaceAssignment.ts"
811                    },
812                    "end": {
813                      "line": 30,
814                      "column": 12,
815                      "program": "interfaceAssignment.ts"
816                    }
817                  }
818                },
819                "value": {
820                  "type": "StringLiteral",
821                  "value": "bar",
822                  "loc": {
823                    "start": {
824                      "line": 30,
825                      "column": 14,
826                      "program": "interfaceAssignment.ts"
827                    },
828                    "end": {
829                      "line": 30,
830                      "column": 19,
831                      "program": "interfaceAssignment.ts"
832                    }
833                  }
834                },
835                "kind": "init",
836                "loc": {
837                  "start": {
838                    "line": 30,
839                    "column": 11,
840                    "program": "interfaceAssignment.ts"
841                  },
842                  "end": {
843                    "line": 30,
844                    "column": 19,
845                    "program": "interfaceAssignment.ts"
846                  }
847                }
848              },
849              {
850                "type": "Property",
851                "method": false,
852                "shorthand": false,
853                "computed": false,
854                "key": {
855                  "type": "Identifier",
856                  "name": "c",
857                  "decorators": [],
858                  "loc": {
859                    "start": {
860                      "line": 30,
861                      "column": 21,
862                      "program": "interfaceAssignment.ts"
863                    },
864                    "end": {
865                      "line": 30,
866                      "column": 22,
867                      "program": "interfaceAssignment.ts"
868                    }
869                  }
870                },
871                "value": {
872                  "type": "BooleanLiteral",
873                  "value": false,
874                  "loc": {
875                    "start": {
876                      "line": 30,
877                      "column": 24,
878                      "program": "interfaceAssignment.ts"
879                    },
880                    "end": {
881                      "line": 30,
882                      "column": 29,
883                      "program": "interfaceAssignment.ts"
884                    }
885                  }
886                },
887                "kind": "init",
888                "loc": {
889                  "start": {
890                    "line": 30,
891                    "column": 21,
892                    "program": "interfaceAssignment.ts"
893                  },
894                  "end": {
895                    "line": 30,
896                    "column": 29,
897                    "program": "interfaceAssignment.ts"
898                  }
899                }
900              },
901              {
902                "type": "Property",
903                "method": false,
904                "shorthand": false,
905                "computed": false,
906                "key": {
907                  "type": "Identifier",
908                  "name": "d",
909                  "decorators": [],
910                  "loc": {
911                    "start": {
912                      "line": 30,
913                      "column": 31,
914                      "program": "interfaceAssignment.ts"
915                    },
916                    "end": {
917                      "line": 30,
918                      "column": 32,
919                      "program": "interfaceAssignment.ts"
920                    }
921                  }
922                },
923                "value": {
924                  "type": "FunctionExpression",
925                  "function": {
926                    "type": "ScriptFunction",
927                    "id": null,
928                    "generator": false,
929                    "async": false,
930                    "expression": false,
931                    "params": [
932                      {
933                        "type": "Identifier",
934                        "name": "a",
935                        "typeAnnotation": {
936                          "type": "TSNumberKeyword",
937                          "loc": {
938                            "start": {
939                              "line": 30,
940                              "column": 47,
941                              "program": "interfaceAssignment.ts"
942                            },
943                            "end": {
944                              "line": 30,
945                              "column": 53,
946                              "program": "interfaceAssignment.ts"
947                            }
948                          }
949                        },
950                        "decorators": [],
951                        "loc": {
952                          "start": {
953                            "line": 30,
954                            "column": 44,
955                            "program": "interfaceAssignment.ts"
956                          },
957                          "end": {
958                            "line": 30,
959                            "column": 45,
960                            "program": "interfaceAssignment.ts"
961                          }
962                        }
963                      },
964                      {
965                        "type": "Identifier",
966                        "name": "b",
967                        "typeAnnotation": {
968                          "type": "TSStringKeyword",
969                          "loc": {
970                            "start": {
971                              "line": 30,
972                              "column": 58,
973                              "program": "interfaceAssignment.ts"
974                            },
975                            "end": {
976                              "line": 30,
977                              "column": 64,
978                              "program": "interfaceAssignment.ts"
979                            }
980                          }
981                        },
982                        "decorators": [],
983                        "loc": {
984                          "start": {
985                            "line": 30,
986                            "column": 55,
987                            "program": "interfaceAssignment.ts"
988                          },
989                          "end": {
990                            "line": 30,
991                            "column": 56,
992                            "program": "interfaceAssignment.ts"
993                          }
994                        }
995                      }
996                    ],
997                    "body": {
998                      "type": "BlockStatement",
999                      "statements": [
1000                        {
1001                          "type": "ReturnStatement",
1002                          "argument": {
1003                            "type": "ArrayExpression",
1004                            "elements": [
1005                              {
1006                                "type": "NumberLiteral",
1007                                "value": 1,
1008                                "loc": {
1009                                  "start": {
1010                                    "line": 31,
1011                                    "column": 17,
1012                                    "program": "interfaceAssignment.ts"
1013                                  },
1014                                  "end": {
1015                                    "line": 31,
1016                                    "column": 18,
1017                                    "program": "interfaceAssignment.ts"
1018                                  }
1019                                }
1020                              },
1021                              {
1022                                "type": "NumberLiteral",
1023                                "value": 2,
1024                                "loc": {
1025                                  "start": {
1026                                    "line": 31,
1027                                    "column": 20,
1028                                    "program": "interfaceAssignment.ts"
1029                                  },
1030                                  "end": {
1031                                    "line": 31,
1032                                    "column": 21,
1033                                    "program": "interfaceAssignment.ts"
1034                                  }
1035                                }
1036                              }
1037                            ],
1038                            "loc": {
1039                              "start": {
1040                                "line": 31,
1041                                "column": 16,
1042                                "program": "interfaceAssignment.ts"
1043                              },
1044                              "end": {
1045                                "line": 31,
1046                                "column": 22,
1047                                "program": "interfaceAssignment.ts"
1048                              }
1049                            }
1050                          },
1051                          "loc": {
1052                            "start": {
1053                              "line": 31,
1054                              "column": 9,
1055                              "program": "interfaceAssignment.ts"
1056                            },
1057                            "end": {
1058                              "line": 31,
1059                              "column": 23,
1060                              "program": "interfaceAssignment.ts"
1061                            }
1062                          }
1063                        }
1064                      ],
1065                      "loc": {
1066                        "start": {
1067                          "line": 30,
1068                          "column": 66,
1069                          "program": "interfaceAssignment.ts"
1070                        },
1071                        "end": {
1072                          "line": 32,
1073                          "column": 6,
1074                          "program": "interfaceAssignment.ts"
1075                        }
1076                      }
1077                    },
1078                    "loc": {
1079                      "start": {
1080                        "line": 30,
1081                        "column": 34,
1082                        "program": "interfaceAssignment.ts"
1083                      },
1084                      "end": {
1085                        "line": 32,
1086                        "column": 6,
1087                        "program": "interfaceAssignment.ts"
1088                      }
1089                    }
1090                  },
1091                  "loc": {
1092                    "start": {
1093                      "line": 30,
1094                      "column": 34,
1095                      "program": "interfaceAssignment.ts"
1096                    },
1097                    "end": {
1098                      "line": 32,
1099                      "column": 6,
1100                      "program": "interfaceAssignment.ts"
1101                    }
1102                  }
1103                },
1104                "kind": "init",
1105                "loc": {
1106                  "start": {
1107                    "line": 30,
1108                    "column": 31,
1109                    "program": "interfaceAssignment.ts"
1110                  },
1111                  "end": {
1112                    "line": 32,
1113                    "column": 6,
1114                    "program": "interfaceAssignment.ts"
1115                  }
1116                }
1117              }
1118            ],
1119            "loc": {
1120              "start": {
1121                "line": 29,
1122                "column": 12,
1123                "program": "interfaceAssignment.ts"
1124              },
1125              "end": {
1126                "line": 33,
1127                "column": 2,
1128                "program": "interfaceAssignment.ts"
1129              }
1130            }
1131          },
1132          "loc": {
1133            "start": {
1134              "line": 29,
1135              "column": 5,
1136              "program": "interfaceAssignment.ts"
1137            },
1138            "end": {
1139              "line": 33,
1140              "column": 2,
1141              "program": "interfaceAssignment.ts"
1142            }
1143          }
1144        }
1145      ],
1146      "kind": "var",
1147      "loc": {
1148        "start": {
1149          "line": 29,
1150          "column": 1,
1151          "program": "interfaceAssignment.ts"
1152        },
1153        "end": {
1154          "line": 33,
1155          "column": 2,
1156          "program": "interfaceAssignment.ts"
1157        }
1158      }
1159    },
1160    {
1161      "type": "TSInterfaceDeclaration",
1162      "body": {
1163        "type": "TSInterfaceBody",
1164        "body": [
1165          {
1166            "type": "TSCallSignatureDeclaration",
1167            "params": [
1168              {
1169                "type": "Identifier",
1170                "name": "a",
1171                "typeAnnotation": {
1172                  "type": "TSNumberKeyword",
1173                  "loc": {
1174                    "start": {
1175                      "line": 37,
1176                      "column": 9,
1177                      "program": "interfaceAssignment.ts"
1178                    },
1179                    "end": {
1180                      "line": 37,
1181                      "column": 15,
1182                      "program": "interfaceAssignment.ts"
1183                    }
1184                  }
1185                },
1186                "decorators": [],
1187                "loc": {
1188                  "start": {
1189                    "line": 37,
1190                    "column": 6,
1191                    "program": "interfaceAssignment.ts"
1192                  },
1193                  "end": {
1194                    "line": 37,
1195                    "column": 7,
1196                    "program": "interfaceAssignment.ts"
1197                  }
1198                }
1199              },
1200              {
1201                "type": "Identifier",
1202                "name": "b",
1203                "typeAnnotation": {
1204                  "type": "TSNumberKeyword",
1205                  "loc": {
1206                    "start": {
1207                      "line": 37,
1208                      "column": 20,
1209                      "program": "interfaceAssignment.ts"
1210                    },
1211                    "end": {
1212                      "line": 37,
1213                      "column": 26,
1214                      "program": "interfaceAssignment.ts"
1215                    }
1216                  }
1217                },
1218                "decorators": [],
1219                "loc": {
1220                  "start": {
1221                    "line": 37,
1222                    "column": 17,
1223                    "program": "interfaceAssignment.ts"
1224                  },
1225                  "end": {
1226                    "line": 37,
1227                    "column": 18,
1228                    "program": "interfaceAssignment.ts"
1229                  }
1230                }
1231              }
1232            ],
1233            "returnType": {
1234              "type": "TSStringKeyword",
1235              "loc": {
1236                "start": {
1237                  "line": 37,
1238                  "column": 29,
1239                  "program": "interfaceAssignment.ts"
1240                },
1241                "end": {
1242                  "line": 37,
1243                  "column": 35,
1244                  "program": "interfaceAssignment.ts"
1245                }
1246              }
1247            },
1248            "loc": {
1249              "start": {
1250                "line": 37,
1251                "column": 5,
1252                "program": "interfaceAssignment.ts"
1253              },
1254              "end": {
1255                "line": 37,
1256                "column": 36,
1257                "program": "interfaceAssignment.ts"
1258              }
1259            }
1260          }
1261        ],
1262        "loc": {
1263          "start": {
1264            "line": 36,
1265            "column": 14,
1266            "program": "interfaceAssignment.ts"
1267          },
1268          "end": {
1269            "line": 38,
1270            "column": 2,
1271            "program": "interfaceAssignment.ts"
1272          }
1273        }
1274      },
1275      "id": {
1276        "type": "Identifier",
1277        "name": "C1",
1278        "decorators": [],
1279        "loc": {
1280          "start": {
1281            "line": 36,
1282            "column": 11,
1283            "program": "interfaceAssignment.ts"
1284          },
1285          "end": {
1286            "line": 36,
1287            "column": 13,
1288            "program": "interfaceAssignment.ts"
1289          }
1290        }
1291      },
1292      "extends": [],
1293      "loc": {
1294        "start": {
1295          "line": 36,
1296          "column": 1,
1297          "program": "interfaceAssignment.ts"
1298        },
1299        "end": {
1300          "line": 38,
1301          "column": 2,
1302          "program": "interfaceAssignment.ts"
1303        }
1304      }
1305    },
1306    {
1307      "type": "TSInterfaceDeclaration",
1308      "body": {
1309        "type": "TSInterfaceBody",
1310        "body": [
1311          {
1312            "type": "TSCallSignatureDeclaration",
1313            "params": [
1314              {
1315                "type": "Identifier",
1316                "name": "a",
1317                "typeAnnotation": {
1318                  "type": "TSNumberKeyword",
1319                  "loc": {
1320                    "start": {
1321                      "line": 41,
1322                      "column": 9,
1323                      "program": "interfaceAssignment.ts"
1324                    },
1325                    "end": {
1326                      "line": 41,
1327                      "column": 15,
1328                      "program": "interfaceAssignment.ts"
1329                    }
1330                  }
1331                },
1332                "decorators": [],
1333                "loc": {
1334                  "start": {
1335                    "line": 41,
1336                    "column": 6,
1337                    "program": "interfaceAssignment.ts"
1338                  },
1339                  "end": {
1340                    "line": 41,
1341                    "column": 7,
1342                    "program": "interfaceAssignment.ts"
1343                  }
1344                }
1345              },
1346              {
1347                "type": "Identifier",
1348                "name": "b",
1349                "typeAnnotation": {
1350                  "type": "TSNumberKeyword",
1351                  "loc": {
1352                    "start": {
1353                      "line": 41,
1354                      "column": 20,
1355                      "program": "interfaceAssignment.ts"
1356                    },
1357                    "end": {
1358                      "line": 41,
1359                      "column": 26,
1360                      "program": "interfaceAssignment.ts"
1361                    }
1362                  }
1363                },
1364                "decorators": [],
1365                "loc": {
1366                  "start": {
1367                    "line": 41,
1368                    "column": 17,
1369                    "program": "interfaceAssignment.ts"
1370                  },
1371                  "end": {
1372                    "line": 41,
1373                    "column": 18,
1374                    "program": "interfaceAssignment.ts"
1375                  }
1376                }
1377              }
1378            ],
1379            "returnType": {
1380              "type": "TSStringKeyword",
1381              "loc": {
1382                "start": {
1383                  "line": 41,
1384                  "column": 29,
1385                  "program": "interfaceAssignment.ts"
1386                },
1387                "end": {
1388                  "line": 41,
1389                  "column": 35,
1390                  "program": "interfaceAssignment.ts"
1391                }
1392              }
1393            },
1394            "loc": {
1395              "start": {
1396                "line": 41,
1397                "column": 5,
1398                "program": "interfaceAssignment.ts"
1399              },
1400              "end": {
1401                "line": 41,
1402                "column": 36,
1403                "program": "interfaceAssignment.ts"
1404              }
1405            }
1406          },
1407          {
1408            "type": "TSCallSignatureDeclaration",
1409            "params": [
1410              {
1411                "type": "Identifier",
1412                "name": "a",
1413                "typeAnnotation": {
1414                  "type": "TSNumberKeyword",
1415                  "loc": {
1416                    "start": {
1417                      "line": 42,
1418                      "column": 9,
1419                      "program": "interfaceAssignment.ts"
1420                    },
1421                    "end": {
1422                      "line": 42,
1423                      "column": 15,
1424                      "program": "interfaceAssignment.ts"
1425                    }
1426                  }
1427                },
1428                "decorators": [],
1429                "loc": {
1430                  "start": {
1431                    "line": 42,
1432                    "column": 6,
1433                    "program": "interfaceAssignment.ts"
1434                  },
1435                  "end": {
1436                    "line": 42,
1437                    "column": 7,
1438                    "program": "interfaceAssignment.ts"
1439                  }
1440                }
1441              },
1442              {
1443                "type": "Identifier",
1444                "name": "b",
1445                "typeAnnotation": {
1446                  "type": "TSNumberKeyword",
1447                  "loc": {
1448                    "start": {
1449                      "line": 42,
1450                      "column": 20,
1451                      "program": "interfaceAssignment.ts"
1452                    },
1453                    "end": {
1454                      "line": 42,
1455                      "column": 26,
1456                      "program": "interfaceAssignment.ts"
1457                    }
1458                  }
1459                },
1460                "decorators": [],
1461                "loc": {
1462                  "start": {
1463                    "line": 42,
1464                    "column": 17,
1465                    "program": "interfaceAssignment.ts"
1466                  },
1467                  "end": {
1468                    "line": 42,
1469                    "column": 18,
1470                    "program": "interfaceAssignment.ts"
1471                  }
1472                }
1473              }
1474            ],
1475            "returnType": {
1476              "type": "TSStringKeyword",
1477              "loc": {
1478                "start": {
1479                  "line": 42,
1480                  "column": 29,
1481                  "program": "interfaceAssignment.ts"
1482                },
1483                "end": {
1484                  "line": 42,
1485                  "column": 35,
1486                  "program": "interfaceAssignment.ts"
1487                }
1488              }
1489            },
1490            "loc": {
1491              "start": {
1492                "line": 42,
1493                "column": 5,
1494                "program": "interfaceAssignment.ts"
1495              },
1496              "end": {
1497                "line": 42,
1498                "column": 36,
1499                "program": "interfaceAssignment.ts"
1500              }
1501            }
1502          },
1503          {
1504            "type": "TSCallSignatureDeclaration",
1505            "params": [
1506              {
1507                "type": "Identifier",
1508                "name": "a",
1509                "typeAnnotation": {
1510                  "type": "TSNumberKeyword",
1511                  "loc": {
1512                    "start": {
1513                      "line": 43,
1514                      "column": 9,
1515                      "program": "interfaceAssignment.ts"
1516                    },
1517                    "end": {
1518                      "line": 43,
1519                      "column": 15,
1520                      "program": "interfaceAssignment.ts"
1521                    }
1522                  }
1523                },
1524                "decorators": [],
1525                "loc": {
1526                  "start": {
1527                    "line": 43,
1528                    "column": 6,
1529                    "program": "interfaceAssignment.ts"
1530                  },
1531                  "end": {
1532                    "line": 43,
1533                    "column": 7,
1534                    "program": "interfaceAssignment.ts"
1535                  }
1536                }
1537              },
1538              {
1539                "type": "Identifier",
1540                "name": "b",
1541                "typeAnnotation": {
1542                  "type": "TSNumberKeyword",
1543                  "loc": {
1544                    "start": {
1545                      "line": 43,
1546                      "column": 20,
1547                      "program": "interfaceAssignment.ts"
1548                    },
1549                    "end": {
1550                      "line": 43,
1551                      "column": 26,
1552                      "program": "interfaceAssignment.ts"
1553                    }
1554                  }
1555                },
1556                "decorators": [],
1557                "loc": {
1558                  "start": {
1559                    "line": 43,
1560                    "column": 17,
1561                    "program": "interfaceAssignment.ts"
1562                  },
1563                  "end": {
1564                    "line": 43,
1565                    "column": 18,
1566                    "program": "interfaceAssignment.ts"
1567                  }
1568                }
1569              }
1570            ],
1571            "returnType": {
1572              "type": "TSStringKeyword",
1573              "loc": {
1574                "start": {
1575                  "line": 43,
1576                  "column": 29,
1577                  "program": "interfaceAssignment.ts"
1578                },
1579                "end": {
1580                  "line": 43,
1581                  "column": 35,
1582                  "program": "interfaceAssignment.ts"
1583                }
1584              }
1585            },
1586            "loc": {
1587              "start": {
1588                "line": 43,
1589                "column": 5,
1590                "program": "interfaceAssignment.ts"
1591              },
1592              "end": {
1593                "line": 43,
1594                "column": 36,
1595                "program": "interfaceAssignment.ts"
1596              }
1597            }
1598          }
1599        ],
1600        "loc": {
1601          "start": {
1602            "line": 40,
1603            "column": 14,
1604            "program": "interfaceAssignment.ts"
1605          },
1606          "end": {
1607            "line": 44,
1608            "column": 2,
1609            "program": "interfaceAssignment.ts"
1610          }
1611        }
1612      },
1613      "id": {
1614        "type": "Identifier",
1615        "name": "C2",
1616        "decorators": [],
1617        "loc": {
1618          "start": {
1619            "line": 40,
1620            "column": 11,
1621            "program": "interfaceAssignment.ts"
1622          },
1623          "end": {
1624            "line": 40,
1625            "column": 13,
1626            "program": "interfaceAssignment.ts"
1627          }
1628        }
1629      },
1630      "extends": [],
1631      "loc": {
1632        "start": {
1633          "line": 40,
1634          "column": 1,
1635          "program": "interfaceAssignment.ts"
1636        },
1637        "end": {
1638          "line": 44,
1639          "column": 2,
1640          "program": "interfaceAssignment.ts"
1641        }
1642      }
1643    },
1644    {
1645      "type": "TSInterfaceDeclaration",
1646      "body": {
1647        "type": "TSInterfaceBody",
1648        "body": [
1649          {
1650            "type": "TSCallSignatureDeclaration",
1651            "params": [
1652              {
1653                "type": "Identifier",
1654                "name": "a",
1655                "typeAnnotation": {
1656                  "type": "TSNumberKeyword",
1657                  "loc": {
1658                    "start": {
1659                      "line": 47,
1660                      "column": 9,
1661                      "program": "interfaceAssignment.ts"
1662                    },
1663                    "end": {
1664                      "line": 47,
1665                      "column": 15,
1666                      "program": "interfaceAssignment.ts"
1667                    }
1668                  }
1669                },
1670                "decorators": [],
1671                "loc": {
1672                  "start": {
1673                    "line": 47,
1674                    "column": 6,
1675                    "program": "interfaceAssignment.ts"
1676                  },
1677                  "end": {
1678                    "line": 47,
1679                    "column": 7,
1680                    "program": "interfaceAssignment.ts"
1681                  }
1682                }
1683              },
1684              {
1685                "type": "Identifier",
1686                "name": "b",
1687                "typeAnnotation": {
1688                  "type": "TSNumberKeyword",
1689                  "loc": {
1690                    "start": {
1691                      "line": 47,
1692                      "column": 20,
1693                      "program": "interfaceAssignment.ts"
1694                    },
1695                    "end": {
1696                      "line": 47,
1697                      "column": 26,
1698                      "program": "interfaceAssignment.ts"
1699                    }
1700                  }
1701                },
1702                "decorators": [],
1703                "loc": {
1704                  "start": {
1705                    "line": 47,
1706                    "column": 17,
1707                    "program": "interfaceAssignment.ts"
1708                  },
1709                  "end": {
1710                    "line": 47,
1711                    "column": 18,
1712                    "program": "interfaceAssignment.ts"
1713                  }
1714                }
1715              }
1716            ],
1717            "returnType": {
1718              "type": "TSStringKeyword",
1719              "loc": {
1720                "start": {
1721                  "line": 47,
1722                  "column": 29,
1723                  "program": "interfaceAssignment.ts"
1724                },
1725                "end": {
1726                  "line": 47,
1727                  "column": 35,
1728                  "program": "interfaceAssignment.ts"
1729                }
1730              }
1731            },
1732            "loc": {
1733              "start": {
1734                "line": 47,
1735                "column": 5,
1736                "program": "interfaceAssignment.ts"
1737              },
1738              "end": {
1739                "line": 47,
1740                "column": 36,
1741                "program": "interfaceAssignment.ts"
1742              }
1743            }
1744          },
1745          {
1746            "type": "TSCallSignatureDeclaration",
1747            "params": [
1748              {
1749                "type": "Identifier",
1750                "name": "a",
1751                "typeAnnotation": {
1752                  "type": "TSNumberKeyword",
1753                  "loc": {
1754                    "start": {
1755                      "line": 48,
1756                      "column": 9,
1757                      "program": "interfaceAssignment.ts"
1758                    },
1759                    "end": {
1760                      "line": 48,
1761                      "column": 15,
1762                      "program": "interfaceAssignment.ts"
1763                    }
1764                  }
1765                },
1766                "decorators": [],
1767                "loc": {
1768                  "start": {
1769                    "line": 48,
1770                    "column": 6,
1771                    "program": "interfaceAssignment.ts"
1772                  },
1773                  "end": {
1774                    "line": 48,
1775                    "column": 7,
1776                    "program": "interfaceAssignment.ts"
1777                  }
1778                }
1779              },
1780              {
1781                "type": "Identifier",
1782                "name": "b",
1783                "typeAnnotation": {
1784                  "type": "TSNumberKeyword",
1785                  "loc": {
1786                    "start": {
1787                      "line": 48,
1788                      "column": 20,
1789                      "program": "interfaceAssignment.ts"
1790                    },
1791                    "end": {
1792                      "line": 48,
1793                      "column": 26,
1794                      "program": "interfaceAssignment.ts"
1795                    }
1796                  }
1797                },
1798                "decorators": [],
1799                "loc": {
1800                  "start": {
1801                    "line": 48,
1802                    "column": 17,
1803                    "program": "interfaceAssignment.ts"
1804                  },
1805                  "end": {
1806                    "line": 48,
1807                    "column": 18,
1808                    "program": "interfaceAssignment.ts"
1809                  }
1810                }
1811              }
1812            ],
1813            "returnType": {
1814              "type": "TSStringKeyword",
1815              "loc": {
1816                "start": {
1817                  "line": 48,
1818                  "column": 29,
1819                  "program": "interfaceAssignment.ts"
1820                },
1821                "end": {
1822                  "line": 48,
1823                  "column": 35,
1824                  "program": "interfaceAssignment.ts"
1825                }
1826              }
1827            },
1828            "loc": {
1829              "start": {
1830                "line": 48,
1831                "column": 5,
1832                "program": "interfaceAssignment.ts"
1833              },
1834              "end": {
1835                "line": 48,
1836                "column": 36,
1837                "program": "interfaceAssignment.ts"
1838              }
1839            }
1840          }
1841        ],
1842        "loc": {
1843          "start": {
1844            "line": 46,
1845            "column": 25,
1846            "program": "interfaceAssignment.ts"
1847          },
1848          "end": {
1849            "line": 49,
1850            "column": 2,
1851            "program": "interfaceAssignment.ts"
1852          }
1853        }
1854      },
1855      "id": {
1856        "type": "Identifier",
1857        "name": "C3",
1858        "decorators": [],
1859        "loc": {
1860          "start": {
1861            "line": 46,
1862            "column": 11,
1863            "program": "interfaceAssignment.ts"
1864          },
1865          "end": {
1866            "line": 46,
1867            "column": 13,
1868            "program": "interfaceAssignment.ts"
1869          }
1870        }
1871      },
1872      "extends": [
1873        {
1874          "type": "TSInterfaceHeritage",
1875          "expression": {
1876            "type": "TSTypeReference",
1877            "typeName": {
1878              "type": "Identifier",
1879              "name": "C1",
1880              "decorators": [],
1881              "loc": {
1882                "start": {
1883                  "line": 46,
1884                  "column": 22,
1885                  "program": "interfaceAssignment.ts"
1886                },
1887                "end": {
1888                  "line": 46,
1889                  "column": 24,
1890                  "program": "interfaceAssignment.ts"
1891                }
1892              }
1893            },
1894            "loc": {
1895              "start": {
1896                "line": 46,
1897                "column": 25,
1898                "program": "interfaceAssignment.ts"
1899              },
1900              "end": {
1901                "line": 46,
1902                "column": 24,
1903                "program": "interfaceAssignment.ts"
1904              }
1905            }
1906          },
1907          "loc": {
1908            "start": {
1909              "line": 46,
1910              "column": 25,
1911              "program": "interfaceAssignment.ts"
1912            },
1913            "end": {
1914              "line": 46,
1915              "column": 24,
1916              "program": "interfaceAssignment.ts"
1917            }
1918          }
1919        }
1920      ],
1921      "loc": {
1922        "start": {
1923          "line": 46,
1924          "column": 1,
1925          "program": "interfaceAssignment.ts"
1926        },
1927        "end": {
1928          "line": 49,
1929          "column": 2,
1930          "program": "interfaceAssignment.ts"
1931        }
1932      }
1933    },
1934    {
1935      "type": "VariableDeclaration",
1936      "declarations": [
1937        {
1938          "type": "VariableDeclarator",
1939          "id": {
1940            "type": "Identifier",
1941            "name": "c",
1942            "typeAnnotation": {
1943              "type": "TSTypeReference",
1944              "typeName": {
1945                "type": "Identifier",
1946                "name": "C2",
1947                "decorators": [],
1948                "loc": {
1949                  "start": {
1950                    "line": 51,
1951                    "column": 8,
1952                    "program": "interfaceAssignment.ts"
1953                  },
1954                  "end": {
1955                    "line": 51,
1956                    "column": 10,
1957                    "program": "interfaceAssignment.ts"
1958                  }
1959                }
1960              },
1961              "loc": {
1962                "start": {
1963                  "line": 51,
1964                  "column": 8,
1965                  "program": "interfaceAssignment.ts"
1966                },
1967                "end": {
1968                  "line": 51,
1969                  "column": 10,
1970                  "program": "interfaceAssignment.ts"
1971                }
1972              }
1973            },
1974            "decorators": [],
1975            "loc": {
1976              "start": {
1977                "line": 51,
1978                "column": 5,
1979                "program": "interfaceAssignment.ts"
1980              },
1981              "end": {
1982                "line": 51,
1983                "column": 6,
1984                "program": "interfaceAssignment.ts"
1985              }
1986            }
1987          },
1988          "init": null,
1989          "loc": {
1990            "start": {
1991              "line": 51,
1992              "column": 5,
1993              "program": "interfaceAssignment.ts"
1994            },
1995            "end": {
1996              "line": 51,
1997              "column": 6,
1998              "program": "interfaceAssignment.ts"
1999            }
2000          }
2001        }
2002      ],
2003      "kind": "var",
2004      "loc": {
2005        "start": {
2006          "line": 51,
2007          "column": 1,
2008          "program": "interfaceAssignment.ts"
2009        },
2010        "end": {
2011          "line": 51,
2012          "column": 11,
2013          "program": "interfaceAssignment.ts"
2014        }
2015      }
2016    },
2017    {
2018      "type": "VariableDeclaration",
2019      "declarations": [
2020        {
2021          "type": "VariableDeclarator",
2022          "id": {
2023            "type": "Identifier",
2024            "name": "c",
2025            "typeAnnotation": {
2026              "type": "TSTypeReference",
2027              "typeName": {
2028                "type": "Identifier",
2029                "name": "C3",
2030                "decorators": [],
2031                "loc": {
2032                  "start": {
2033                    "line": 52,
2034                    "column": 8,
2035                    "program": "interfaceAssignment.ts"
2036                  },
2037                  "end": {
2038                    "line": 52,
2039                    "column": 10,
2040                    "program": "interfaceAssignment.ts"
2041                  }
2042                }
2043              },
2044              "loc": {
2045                "start": {
2046                  "line": 52,
2047                  "column": 8,
2048                  "program": "interfaceAssignment.ts"
2049                },
2050                "end": {
2051                  "line": 52,
2052                  "column": 10,
2053                  "program": "interfaceAssignment.ts"
2054                }
2055              }
2056            },
2057            "decorators": [],
2058            "loc": {
2059              "start": {
2060                "line": 52,
2061                "column": 5,
2062                "program": "interfaceAssignment.ts"
2063              },
2064              "end": {
2065                "line": 52,
2066                "column": 6,
2067                "program": "interfaceAssignment.ts"
2068              }
2069            }
2070          },
2071          "init": null,
2072          "loc": {
2073            "start": {
2074              "line": 52,
2075              "column": 5,
2076              "program": "interfaceAssignment.ts"
2077            },
2078            "end": {
2079              "line": 52,
2080              "column": 6,
2081              "program": "interfaceAssignment.ts"
2082            }
2083          }
2084        }
2085      ],
2086      "kind": "var",
2087      "loc": {
2088        "start": {
2089          "line": 52,
2090          "column": 1,
2091          "program": "interfaceAssignment.ts"
2092        },
2093        "end": {
2094          "line": 52,
2095          "column": 11,
2096          "program": "interfaceAssignment.ts"
2097        }
2098      }
2099    },
2100    {
2101      "type": "TSInterfaceDeclaration",
2102      "body": {
2103        "type": "TSInterfaceBody",
2104        "body": [
2105          {
2106            "type": "TSPropertySignature",
2107            "computed": false,
2108            "optional": false,
2109            "readonly": false,
2110            "key": {
2111              "type": "Identifier",
2112              "name": "d",
2113              "decorators": [],
2114              "loc": {
2115                "start": {
2116                  "line": 55,
2117                  "column": 5,
2118                  "program": "interfaceAssignment.ts"
2119                },
2120                "end": {
2121                  "line": 55,
2122                  "column": 6,
2123                  "program": "interfaceAssignment.ts"
2124                }
2125              }
2126            },
2127            "typeAnnotation": {
2128              "type": "TSArrayType",
2129              "elementType": {
2130                "type": "TSStringKeyword",
2131                "loc": {
2132                  "start": {
2133                    "line": 55,
2134                    "column": 8,
2135                    "program": "interfaceAssignment.ts"
2136                  },
2137                  "end": {
2138                    "line": 55,
2139                    "column": 14,
2140                    "program": "interfaceAssignment.ts"
2141                  }
2142                }
2143              },
2144              "annotations": [],
2145              "loc": {
2146                "start": {
2147                  "line": 55,
2148                  "column": 8,
2149                  "program": "interfaceAssignment.ts"
2150                },
2151                "end": {
2152                  "line": 55,
2153                  "column": 16,
2154                  "program": "interfaceAssignment.ts"
2155                }
2156              }
2157            },
2158            "loc": {
2159              "start": {
2160                "line": 55,
2161                "column": 5,
2162                "program": "interfaceAssignment.ts"
2163              },
2164              "end": {
2165                "line": 56,
2166                "column": 2,
2167                "program": "interfaceAssignment.ts"
2168              }
2169            }
2170          }
2171        ],
2172        "loc": {
2173          "start": {
2174            "line": 54,
2175            "column": 29,
2176            "program": "interfaceAssignment.ts"
2177          },
2178          "end": {
2179            "line": 56,
2180            "column": 2,
2181            "program": "interfaceAssignment.ts"
2182          }
2183        }
2184      },
2185      "id": {
2186        "type": "Identifier",
2187        "name": "D4",
2188        "decorators": [],
2189        "loc": {
2190          "start": {
2191            "line": 54,
2192            "column": 11,
2193            "program": "interfaceAssignment.ts"
2194          },
2195          "end": {
2196            "line": 54,
2197            "column": 13,
2198            "program": "interfaceAssignment.ts"
2199          }
2200        }
2201      },
2202      "extends": [
2203        {
2204          "type": "TSInterfaceHeritage",
2205          "expression": {
2206            "type": "TSTypeReference",
2207            "typeName": {
2208              "type": "Identifier",
2209              "name": "D3",
2210              "decorators": [],
2211              "loc": {
2212                "start": {
2213                  "line": 54,
2214                  "column": 22,
2215                  "program": "interfaceAssignment.ts"
2216                },
2217                "end": {
2218                  "line": 54,
2219                  "column": 24,
2220                  "program": "interfaceAssignment.ts"
2221                }
2222              }
2223            },
2224            "loc": {
2225              "start": {
2226                "line": 54,
2227                "column": 24,
2228                "program": "interfaceAssignment.ts"
2229              },
2230              "end": {
2231                "line": 54,
2232                "column": 24,
2233                "program": "interfaceAssignment.ts"
2234              }
2235            }
2236          },
2237          "loc": {
2238            "start": {
2239              "line": 54,
2240              "column": 24,
2241              "program": "interfaceAssignment.ts"
2242            },
2243            "end": {
2244              "line": 54,
2245              "column": 24,
2246              "program": "interfaceAssignment.ts"
2247            }
2248          }
2249        },
2250        {
2251          "type": "TSInterfaceHeritage",
2252          "expression": {
2253            "type": "TSTypeReference",
2254            "typeName": {
2255              "type": "Identifier",
2256              "name": "D2",
2257              "decorators": [],
2258              "loc": {
2259                "start": {
2260                  "line": 54,
2261                  "column": 26,
2262                  "program": "interfaceAssignment.ts"
2263                },
2264                "end": {
2265                  "line": 54,
2266                  "column": 28,
2267                  "program": "interfaceAssignment.ts"
2268                }
2269              }
2270            },
2271            "loc": {
2272              "start": {
2273                "line": 54,
2274                "column": 29,
2275                "program": "interfaceAssignment.ts"
2276              },
2277              "end": {
2278                "line": 54,
2279                "column": 28,
2280                "program": "interfaceAssignment.ts"
2281              }
2282            }
2283          },
2284          "loc": {
2285            "start": {
2286              "line": 54,
2287              "column": 29,
2288              "program": "interfaceAssignment.ts"
2289            },
2290            "end": {
2291              "line": 54,
2292              "column": 28,
2293              "program": "interfaceAssignment.ts"
2294            }
2295          }
2296        }
2297      ],
2298      "loc": {
2299        "start": {
2300          "line": 54,
2301          "column": 1,
2302          "program": "interfaceAssignment.ts"
2303        },
2304        "end": {
2305          "line": 56,
2306          "column": 2,
2307          "program": "interfaceAssignment.ts"
2308        }
2309      }
2310    },
2311    {
2312      "type": "TSInterfaceDeclaration",
2313      "body": {
2314        "type": "TSInterfaceBody",
2315        "body": [
2316          {
2317            "type": "TSPropertySignature",
2318            "computed": false,
2319            "optional": false,
2320            "readonly": false,
2321            "key": {
2322              "type": "Identifier",
2323              "name": "a",
2324              "decorators": [],
2325              "loc": {
2326                "start": {
2327                  "line": 59,
2328                  "column": 5,
2329                  "program": "interfaceAssignment.ts"
2330                },
2331                "end": {
2332                  "line": 59,
2333                  "column": 6,
2334                  "program": "interfaceAssignment.ts"
2335                }
2336              }
2337            },
2338            "typeAnnotation": {
2339              "type": "TSNumberKeyword",
2340              "loc": {
2341                "start": {
2342                  "line": 59,
2343                  "column": 8,
2344                  "program": "interfaceAssignment.ts"
2345                },
2346                "end": {
2347                  "line": 59,
2348                  "column": 14,
2349                  "program": "interfaceAssignment.ts"
2350                }
2351              }
2352            },
2353            "loc": {
2354              "start": {
2355                "line": 59,
2356                "column": 5,
2357                "program": "interfaceAssignment.ts"
2358              },
2359              "end": {
2360                "line": 60,
2361                "column": 2,
2362                "program": "interfaceAssignment.ts"
2363              }
2364            }
2365          }
2366        ],
2367        "loc": {
2368          "start": {
2369            "line": 58,
2370            "column": 14,
2371            "program": "interfaceAssignment.ts"
2372          },
2373          "end": {
2374            "line": 60,
2375            "column": 2,
2376            "program": "interfaceAssignment.ts"
2377          }
2378        }
2379      },
2380      "id": {
2381        "type": "Identifier",
2382        "name": "D1",
2383        "decorators": [],
2384        "loc": {
2385          "start": {
2386            "line": 58,
2387            "column": 11,
2388            "program": "interfaceAssignment.ts"
2389          },
2390          "end": {
2391            "line": 58,
2392            "column": 13,
2393            "program": "interfaceAssignment.ts"
2394          }
2395        }
2396      },
2397      "extends": [],
2398      "loc": {
2399        "start": {
2400          "line": 58,
2401          "column": 1,
2402          "program": "interfaceAssignment.ts"
2403        },
2404        "end": {
2405          "line": 60,
2406          "column": 2,
2407          "program": "interfaceAssignment.ts"
2408        }
2409      }
2410    },
2411    {
2412      "type": "TSInterfaceDeclaration",
2413      "body": {
2414        "type": "TSInterfaceBody",
2415        "body": [
2416          {
2417            "type": "TSPropertySignature",
2418            "computed": false,
2419            "optional": false,
2420            "readonly": false,
2421            "key": {
2422              "type": "Identifier",
2423              "name": "c",
2424              "decorators": [],
2425              "loc": {
2426                "start": {
2427                  "line": 63,
2428                  "column": 5,
2429                  "program": "interfaceAssignment.ts"
2430                },
2431                "end": {
2432                  "line": 63,
2433                  "column": 6,
2434                  "program": "interfaceAssignment.ts"
2435                }
2436              }
2437            },
2438            "typeAnnotation": {
2439              "type": "TSStringKeyword",
2440              "loc": {
2441                "start": {
2442                  "line": 63,
2443                  "column": 8,
2444                  "program": "interfaceAssignment.ts"
2445                },
2446                "end": {
2447                  "line": 63,
2448                  "column": 14,
2449                  "program": "interfaceAssignment.ts"
2450                }
2451              }
2452            },
2453            "loc": {
2454              "start": {
2455                "line": 63,
2456                "column": 5,
2457                "program": "interfaceAssignment.ts"
2458              },
2459              "end": {
2460                "line": 63,
2461                "column": 15,
2462                "program": "interfaceAssignment.ts"
2463              }
2464            }
2465          }
2466        ],
2467        "loc": {
2468          "start": {
2469            "line": 62,
2470            "column": 14,
2471            "program": "interfaceAssignment.ts"
2472          },
2473          "end": {
2474            "line": 64,
2475            "column": 2,
2476            "program": "interfaceAssignment.ts"
2477          }
2478        }
2479      },
2480      "id": {
2481        "type": "Identifier",
2482        "name": "D3",
2483        "decorators": [],
2484        "loc": {
2485          "start": {
2486            "line": 62,
2487            "column": 11,
2488            "program": "interfaceAssignment.ts"
2489          },
2490          "end": {
2491            "line": 62,
2492            "column": 13,
2493            "program": "interfaceAssignment.ts"
2494          }
2495        }
2496      },
2497      "extends": [],
2498      "loc": {
2499        "start": {
2500          "line": 62,
2501          "column": 1,
2502          "program": "interfaceAssignment.ts"
2503        },
2504        "end": {
2505          "line": 64,
2506          "column": 2,
2507          "program": "interfaceAssignment.ts"
2508        }
2509      }
2510    },
2511    {
2512      "type": "TSInterfaceDeclaration",
2513      "body": {
2514        "type": "TSInterfaceBody",
2515        "body": [
2516          {
2517            "type": "TSPropertySignature",
2518            "computed": false,
2519            "optional": false,
2520            "readonly": false,
2521            "key": {
2522              "type": "Identifier",
2523              "name": "b",
2524              "decorators": [],
2525              "loc": {
2526                "start": {
2527                  "line": 67,
2528                  "column": 5,
2529                  "program": "interfaceAssignment.ts"
2530                },
2531                "end": {
2532                  "line": 67,
2533                  "column": 6,
2534                  "program": "interfaceAssignment.ts"
2535                }
2536              }
2537            },
2538            "typeAnnotation": {
2539              "type": "TSNumberKeyword",
2540              "loc": {
2541                "start": {
2542                  "line": 67,
2543                  "column": 8,
2544                  "program": "interfaceAssignment.ts"
2545                },
2546                "end": {
2547                  "line": 67,
2548                  "column": 14,
2549                  "program": "interfaceAssignment.ts"
2550                }
2551              }
2552            },
2553            "loc": {
2554              "start": {
2555                "line": 67,
2556                "column": 5,
2557                "program": "interfaceAssignment.ts"
2558              },
2559              "end": {
2560                "line": 67,
2561                "column": 15,
2562                "program": "interfaceAssignment.ts"
2563              }
2564            }
2565          }
2566        ],
2567        "loc": {
2568          "start": {
2569            "line": 66,
2570            "column": 25,
2571            "program": "interfaceAssignment.ts"
2572          },
2573          "end": {
2574            "line": 68,
2575            "column": 2,
2576            "program": "interfaceAssignment.ts"
2577          }
2578        }
2579      },
2580      "id": {
2581        "type": "Identifier",
2582        "name": "D2",
2583        "decorators": [],
2584        "loc": {
2585          "start": {
2586            "line": 66,
2587            "column": 11,
2588            "program": "interfaceAssignment.ts"
2589          },
2590          "end": {
2591            "line": 66,
2592            "column": 13,
2593            "program": "interfaceAssignment.ts"
2594          }
2595        }
2596      },
2597      "extends": [
2598        {
2599          "type": "TSInterfaceHeritage",
2600          "expression": {
2601            "type": "TSTypeReference",
2602            "typeName": {
2603              "type": "Identifier",
2604              "name": "D1",
2605              "decorators": [],
2606              "loc": {
2607                "start": {
2608                  "line": 66,
2609                  "column": 22,
2610                  "program": "interfaceAssignment.ts"
2611                },
2612                "end": {
2613                  "line": 66,
2614                  "column": 24,
2615                  "program": "interfaceAssignment.ts"
2616                }
2617              }
2618            },
2619            "loc": {
2620              "start": {
2621                "line": 66,
2622                "column": 25,
2623                "program": "interfaceAssignment.ts"
2624              },
2625              "end": {
2626                "line": 66,
2627                "column": 24,
2628                "program": "interfaceAssignment.ts"
2629              }
2630            }
2631          },
2632          "loc": {
2633            "start": {
2634              "line": 66,
2635              "column": 25,
2636              "program": "interfaceAssignment.ts"
2637            },
2638            "end": {
2639              "line": 66,
2640              "column": 24,
2641              "program": "interfaceAssignment.ts"
2642            }
2643          }
2644        }
2645      ],
2646      "loc": {
2647        "start": {
2648          "line": 66,
2649          "column": 1,
2650          "program": "interfaceAssignment.ts"
2651        },
2652        "end": {
2653          "line": 68,
2654          "column": 2,
2655          "program": "interfaceAssignment.ts"
2656        }
2657      }
2658    },
2659    {
2660      "type": "TSInterfaceDeclaration",
2661      "body": {
2662        "type": "TSInterfaceBody",
2663        "body": [
2664          {
2665            "type": "TSPropertySignature",
2666            "computed": false,
2667            "optional": false,
2668            "readonly": false,
2669            "key": {
2670              "type": "Identifier",
2671              "name": "e",
2672              "decorators": [],
2673              "loc": {
2674                "start": {
2675                  "line": 71,
2676                  "column": 5,
2677                  "program": "interfaceAssignment.ts"
2678                },
2679                "end": {
2680                  "line": 71,
2681                  "column": 6,
2682                  "program": "interfaceAssignment.ts"
2683                }
2684              }
2685            },
2686            "typeAnnotation": {
2687              "type": "TSTupleType",
2688              "elementTypes": [
2689                {
2690                  "type": "TSNumberKeyword",
2691                  "loc": {
2692                    "start": {
2693                      "line": 71,
2694                      "column": 9,
2695                      "program": "interfaceAssignment.ts"
2696                    },
2697                    "end": {
2698                      "line": 71,
2699                      "column": 16,
2700                      "program": "interfaceAssignment.ts"
2701                    }
2702                  }
2703                },
2704                {
2705                  "type": "TSStringKeyword",
2706                  "loc": {
2707                    "start": {
2708                      "line": 71,
2709                      "column": 17,
2710                      "program": "interfaceAssignment.ts"
2711                    },
2712                    "end": {
2713                      "line": 71,
2714                      "column": 24,
2715                      "program": "interfaceAssignment.ts"
2716                    }
2717                  }
2718                }
2719              ],
2720              "loc": {
2721                "start": {
2722                  "line": 71,
2723                  "column": 8,
2724                  "program": "interfaceAssignment.ts"
2725                },
2726                "end": {
2727                  "line": 71,
2728                  "column": 24,
2729                  "program": "interfaceAssignment.ts"
2730                }
2731              }
2732            },
2733            "loc": {
2734              "start": {
2735                "line": 71,
2736                "column": 5,
2737                "program": "interfaceAssignment.ts"
2738              },
2739              "end": {
2740                "line": 71,
2741                "column": 25,
2742                "program": "interfaceAssignment.ts"
2743              }
2744            }
2745          }
2746        ],
2747        "loc": {
2748          "start": {
2749            "line": 70,
2750            "column": 33,
2751            "program": "interfaceAssignment.ts"
2752          },
2753          "end": {
2754            "line": 72,
2755            "column": 2,
2756            "program": "interfaceAssignment.ts"
2757          }
2758        }
2759      },
2760      "id": {
2761        "type": "Identifier",
2762        "name": "D5",
2763        "decorators": [],
2764        "loc": {
2765          "start": {
2766            "line": 70,
2767            "column": 11,
2768            "program": "interfaceAssignment.ts"
2769          },
2770          "end": {
2771            "line": 70,
2772            "column": 13,
2773            "program": "interfaceAssignment.ts"
2774          }
2775        }
2776      },
2777      "extends": [
2778        {
2779          "type": "TSInterfaceHeritage",
2780          "expression": {
2781            "type": "TSTypeReference",
2782            "typeName": {
2783              "type": "Identifier",
2784              "name": "D4",
2785              "decorators": [],
2786              "loc": {
2787                "start": {
2788                  "line": 70,
2789                  "column": 22,
2790                  "program": "interfaceAssignment.ts"
2791                },
2792                "end": {
2793                  "line": 70,
2794                  "column": 24,
2795                  "program": "interfaceAssignment.ts"
2796                }
2797              }
2798            },
2799            "loc": {
2800              "start": {
2801                "line": 70,
2802                "column": 24,
2803                "program": "interfaceAssignment.ts"
2804              },
2805              "end": {
2806                "line": 70,
2807                "column": 24,
2808                "program": "interfaceAssignment.ts"
2809              }
2810            }
2811          },
2812          "loc": {
2813            "start": {
2814              "line": 70,
2815              "column": 24,
2816              "program": "interfaceAssignment.ts"
2817            },
2818            "end": {
2819              "line": 70,
2820              "column": 24,
2821              "program": "interfaceAssignment.ts"
2822            }
2823          }
2824        },
2825        {
2826          "type": "TSInterfaceHeritage",
2827          "expression": {
2828            "type": "TSTypeReference",
2829            "typeName": {
2830              "type": "Identifier",
2831              "name": "D1",
2832              "decorators": [],
2833              "loc": {
2834                "start": {
2835                  "line": 70,
2836                  "column": 26,
2837                  "program": "interfaceAssignment.ts"
2838                },
2839                "end": {
2840                  "line": 70,
2841                  "column": 28,
2842                  "program": "interfaceAssignment.ts"
2843                }
2844              }
2845            },
2846            "loc": {
2847              "start": {
2848                "line": 70,
2849                "column": 28,
2850                "program": "interfaceAssignment.ts"
2851              },
2852              "end": {
2853                "line": 70,
2854                "column": 28,
2855                "program": "interfaceAssignment.ts"
2856              }
2857            }
2858          },
2859          "loc": {
2860            "start": {
2861              "line": 70,
2862              "column": 28,
2863              "program": "interfaceAssignment.ts"
2864            },
2865            "end": {
2866              "line": 70,
2867              "column": 28,
2868              "program": "interfaceAssignment.ts"
2869            }
2870          }
2871        },
2872        {
2873          "type": "TSInterfaceHeritage",
2874          "expression": {
2875            "type": "TSTypeReference",
2876            "typeName": {
2877              "type": "Identifier",
2878              "name": "D3",
2879              "decorators": [],
2880              "loc": {
2881                "start": {
2882                  "line": 70,
2883                  "column": 30,
2884                  "program": "interfaceAssignment.ts"
2885                },
2886                "end": {
2887                  "line": 70,
2888                  "column": 32,
2889                  "program": "interfaceAssignment.ts"
2890                }
2891              }
2892            },
2893            "loc": {
2894              "start": {
2895                "line": 70,
2896                "column": 33,
2897                "program": "interfaceAssignment.ts"
2898              },
2899              "end": {
2900                "line": 70,
2901                "column": 32,
2902                "program": "interfaceAssignment.ts"
2903              }
2904            }
2905          },
2906          "loc": {
2907            "start": {
2908              "line": 70,
2909              "column": 33,
2910              "program": "interfaceAssignment.ts"
2911            },
2912            "end": {
2913              "line": 70,
2914              "column": 32,
2915              "program": "interfaceAssignment.ts"
2916            }
2917          }
2918        }
2919      ],
2920      "loc": {
2921        "start": {
2922          "line": 70,
2923          "column": 1,
2924          "program": "interfaceAssignment.ts"
2925        },
2926        "end": {
2927          "line": 72,
2928          "column": 2,
2929          "program": "interfaceAssignment.ts"
2930        }
2931      }
2932    },
2933    {
2934      "type": "VariableDeclaration",
2935      "declarations": [
2936        {
2937          "type": "VariableDeclarator",
2938          "id": {
2939            "type": "Identifier",
2940            "name": "d",
2941            "typeAnnotation": {
2942              "type": "TSTypeReference",
2943              "typeName": {
2944                "type": "Identifier",
2945                "name": "D5",
2946                "decorators": [],
2947                "loc": {
2948                  "start": {
2949                    "line": 74,
2950                    "column": 8,
2951                    "program": "interfaceAssignment.ts"
2952                  },
2953                  "end": {
2954                    "line": 74,
2955                    "column": 10,
2956                    "program": "interfaceAssignment.ts"
2957                  }
2958                }
2959              },
2960              "loc": {
2961                "start": {
2962                  "line": 74,
2963                  "column": 8,
2964                  "program": "interfaceAssignment.ts"
2965                },
2966                "end": {
2967                  "line": 74,
2968                  "column": 10,
2969                  "program": "interfaceAssignment.ts"
2970                }
2971              }
2972            },
2973            "decorators": [],
2974            "loc": {
2975              "start": {
2976                "line": 74,
2977                "column": 5,
2978                "program": "interfaceAssignment.ts"
2979              },
2980              "end": {
2981                "line": 74,
2982                "column": 6,
2983                "program": "interfaceAssignment.ts"
2984              }
2985            }
2986          },
2987          "init": {
2988            "type": "ObjectExpression",
2989            "properties": [
2990              {
2991                "type": "Property",
2992                "method": false,
2993                "shorthand": false,
2994                "computed": false,
2995                "key": {
2996                  "type": "Identifier",
2997                  "name": "a",
2998                  "decorators": [],
2999                  "loc": {
3000                    "start": {
3001                      "line": 74,
3002                      "column": 15,
3003                      "program": "interfaceAssignment.ts"
3004                    },
3005                    "end": {
3006                      "line": 74,
3007                      "column": 16,
3008                      "program": "interfaceAssignment.ts"
3009                    }
3010                  }
3011                },
3012                "value": {
3013                  "type": "NumberLiteral",
3014                  "value": 2,
3015                  "loc": {
3016                    "start": {
3017                      "line": 74,
3018                      "column": 18,
3019                      "program": "interfaceAssignment.ts"
3020                    },
3021                    "end": {
3022                      "line": 74,
3023                      "column": 19,
3024                      "program": "interfaceAssignment.ts"
3025                    }
3026                  }
3027                },
3028                "kind": "init",
3029                "loc": {
3030                  "start": {
3031                    "line": 74,
3032                    "column": 15,
3033                    "program": "interfaceAssignment.ts"
3034                  },
3035                  "end": {
3036                    "line": 74,
3037                    "column": 19,
3038                    "program": "interfaceAssignment.ts"
3039                  }
3040                }
3041              },
3042              {
3043                "type": "Property",
3044                "method": false,
3045                "shorthand": false,
3046                "computed": false,
3047                "key": {
3048                  "type": "Identifier",
3049                  "name": "b",
3050                  "decorators": [],
3051                  "loc": {
3052                    "start": {
3053                      "line": 74,
3054                      "column": 21,
3055                      "program": "interfaceAssignment.ts"
3056                    },
3057                    "end": {
3058                      "line": 74,
3059                      "column": 22,
3060                      "program": "interfaceAssignment.ts"
3061                    }
3062                  }
3063                },
3064                "value": {
3065                  "type": "NumberLiteral",
3066                  "value": 3,
3067                  "loc": {
3068                    "start": {
3069                      "line": 74,
3070                      "column": 24,
3071                      "program": "interfaceAssignment.ts"
3072                    },
3073                    "end": {
3074                      "line": 74,
3075                      "column": 25,
3076                      "program": "interfaceAssignment.ts"
3077                    }
3078                  }
3079                },
3080                "kind": "init",
3081                "loc": {
3082                  "start": {
3083                    "line": 74,
3084                    "column": 21,
3085                    "program": "interfaceAssignment.ts"
3086                  },
3087                  "end": {
3088                    "line": 74,
3089                    "column": 25,
3090                    "program": "interfaceAssignment.ts"
3091                  }
3092                }
3093              },
3094              {
3095                "type": "Property",
3096                "method": false,
3097                "shorthand": false,
3098                "computed": false,
3099                "key": {
3100                  "type": "Identifier",
3101                  "name": "c",
3102                  "decorators": [],
3103                  "loc": {
3104                    "start": {
3105                      "line": 74,
3106                      "column": 27,
3107                      "program": "interfaceAssignment.ts"
3108                    },
3109                    "end": {
3110                      "line": 74,
3111                      "column": 28,
3112                      "program": "interfaceAssignment.ts"
3113                    }
3114                  }
3115                },
3116                "value": {
3117                  "type": "StringLiteral",
3118                  "value": "bar",
3119                  "loc": {
3120                    "start": {
3121                      "line": 74,
3122                      "column": 30,
3123                      "program": "interfaceAssignment.ts"
3124                    },
3125                    "end": {
3126                      "line": 74,
3127                      "column": 35,
3128                      "program": "interfaceAssignment.ts"
3129                    }
3130                  }
3131                },
3132                "kind": "init",
3133                "loc": {
3134                  "start": {
3135                    "line": 74,
3136                    "column": 27,
3137                    "program": "interfaceAssignment.ts"
3138                  },
3139                  "end": {
3140                    "line": 74,
3141                    "column": 35,
3142                    "program": "interfaceAssignment.ts"
3143                  }
3144                }
3145              },
3146              {
3147                "type": "Property",
3148                "method": false,
3149                "shorthand": false,
3150                "computed": false,
3151                "key": {
3152                  "type": "Identifier",
3153                  "name": "d",
3154                  "decorators": [],
3155                  "loc": {
3156                    "start": {
3157                      "line": 74,
3158                      "column": 37,
3159                      "program": "interfaceAssignment.ts"
3160                    },
3161                    "end": {
3162                      "line": 74,
3163                      "column": 38,
3164                      "program": "interfaceAssignment.ts"
3165                    }
3166                  }
3167                },
3168                "value": {
3169                  "type": "ArrayExpression",
3170                  "elements": [
3171                    {
3172                      "type": "StringLiteral",
3173                      "value": "foo",
3174                      "loc": {
3175                        "start": {
3176                          "line": 74,
3177                          "column": 41,
3178                          "program": "interfaceAssignment.ts"
3179                        },
3180                        "end": {
3181                          "line": 74,
3182                          "column": 46,
3183                          "program": "interfaceAssignment.ts"
3184                        }
3185                      }
3186                    },
3187                    {
3188                      "type": "StringLiteral",
3189                      "value": "bar",
3190                      "loc": {
3191                        "start": {
3192                          "line": 74,
3193                          "column": 48,
3194                          "program": "interfaceAssignment.ts"
3195                        },
3196                        "end": {
3197                          "line": 74,
3198                          "column": 53,
3199                          "program": "interfaceAssignment.ts"
3200                        }
3201                      }
3202                    },
3203                    {
3204                      "type": "StringLiteral",
3205                      "value": "baz",
3206                      "loc": {
3207                        "start": {
3208                          "line": 74,
3209                          "column": 55,
3210                          "program": "interfaceAssignment.ts"
3211                        },
3212                        "end": {
3213                          "line": 74,
3214                          "column": 60,
3215                          "program": "interfaceAssignment.ts"
3216                        }
3217                      }
3218                    }
3219                  ],
3220                  "loc": {
3221                    "start": {
3222                      "line": 74,
3223                      "column": 40,
3224                      "program": "interfaceAssignment.ts"
3225                    },
3226                    "end": {
3227                      "line": 74,
3228                      "column": 61,
3229                      "program": "interfaceAssignment.ts"
3230                    }
3231                  }
3232                },
3233                "kind": "init",
3234                "loc": {
3235                  "start": {
3236                    "line": 74,
3237                    "column": 37,
3238                    "program": "interfaceAssignment.ts"
3239                  },
3240                  "end": {
3241                    "line": 74,
3242                    "column": 61,
3243                    "program": "interfaceAssignment.ts"
3244                  }
3245                }
3246              },
3247              {
3248                "type": "Property",
3249                "method": false,
3250                "shorthand": false,
3251                "computed": false,
3252                "key": {
3253                  "type": "Identifier",
3254                  "name": "e",
3255                  "decorators": [],
3256                  "loc": {
3257                    "start": {
3258                      "line": 74,
3259                      "column": 63,
3260                      "program": "interfaceAssignment.ts"
3261                    },
3262                    "end": {
3263                      "line": 74,
3264                      "column": 64,
3265                      "program": "interfaceAssignment.ts"
3266                    }
3267                  }
3268                },
3269                "value": {
3270                  "type": "ArrayExpression",
3271                  "elements": [
3272                    {
3273                      "type": "NumberLiteral",
3274                      "value": 1,
3275                      "loc": {
3276                        "start": {
3277                          "line": 74,
3278                          "column": 67,
3279                          "program": "interfaceAssignment.ts"
3280                        },
3281                        "end": {
3282                          "line": 74,
3283                          "column": 68,
3284                          "program": "interfaceAssignment.ts"
3285                        }
3286                      }
3287                    },
3288                    {
3289                      "type": "StringLiteral",
3290                      "value": "foo",
3291                      "loc": {
3292                        "start": {
3293                          "line": 74,
3294                          "column": 70,
3295                          "program": "interfaceAssignment.ts"
3296                        },
3297                        "end": {
3298                          "line": 74,
3299                          "column": 75,
3300                          "program": "interfaceAssignment.ts"
3301                        }
3302                      }
3303                    }
3304                  ],
3305                  "loc": {
3306                    "start": {
3307                      "line": 74,
3308                      "column": 66,
3309                      "program": "interfaceAssignment.ts"
3310                    },
3311                    "end": {
3312                      "line": 74,
3313                      "column": 76,
3314                      "program": "interfaceAssignment.ts"
3315                    }
3316                  }
3317                },
3318                "kind": "init",
3319                "loc": {
3320                  "start": {
3321                    "line": 74,
3322                    "column": 63,
3323                    "program": "interfaceAssignment.ts"
3324                  },
3325                  "end": {
3326                    "line": 74,
3327                    "column": 76,
3328                    "program": "interfaceAssignment.ts"
3329                  }
3330                }
3331              }
3332            ],
3333            "loc": {
3334              "start": {
3335                "line": 74,
3336                "column": 13,
3337                "program": "interfaceAssignment.ts"
3338              },
3339              "end": {
3340                "line": 74,
3341                "column": 78,
3342                "program": "interfaceAssignment.ts"
3343              }
3344            }
3345          },
3346          "loc": {
3347            "start": {
3348              "line": 74,
3349              "column": 5,
3350              "program": "interfaceAssignment.ts"
3351            },
3352            "end": {
3353              "line": 74,
3354              "column": 78,
3355              "program": "interfaceAssignment.ts"
3356            }
3357          }
3358        }
3359      ],
3360      "kind": "var",
3361      "loc": {
3362        "start": {
3363          "line": 74,
3364          "column": 1,
3365          "program": "interfaceAssignment.ts"
3366        },
3367        "end": {
3368          "line": 74,
3369          "column": 78,
3370          "program": "interfaceAssignment.ts"
3371        }
3372      }
3373    },
3374    {
3375      "type": "TSInterfaceDeclaration",
3376      "body": {
3377        "type": "TSInterfaceBody",
3378        "body": [
3379          {
3380            "type": "TSPropertySignature",
3381            "computed": false,
3382            "optional": false,
3383            "readonly": false,
3384            "key": {
3385              "type": "Identifier",
3386              "name": "a",
3387              "decorators": [],
3388              "loc": {
3389                "start": {
3390                  "line": 77,
3391                  "column": 5,
3392                  "program": "interfaceAssignment.ts"
3393                },
3394                "end": {
3395                  "line": 77,
3396                  "column": 6,
3397                  "program": "interfaceAssignment.ts"
3398                }
3399              }
3400            },
3401            "typeAnnotation": {
3402              "type": "TSNumberKeyword",
3403              "loc": {
3404                "start": {
3405                  "line": 77,
3406                  "column": 8,
3407                  "program": "interfaceAssignment.ts"
3408                },
3409                "end": {
3410                  "line": 77,
3411                  "column": 14,
3412                  "program": "interfaceAssignment.ts"
3413                }
3414              }
3415            },
3416            "loc": {
3417              "start": {
3418                "line": 77,
3419                "column": 5,
3420                "program": "interfaceAssignment.ts"
3421              },
3422              "end": {
3423                "line": 77,
3424                "column": 15,
3425                "program": "interfaceAssignment.ts"
3426              }
3427            }
3428          }
3429        ],
3430        "loc": {
3431          "start": {
3432            "line": 76,
3433            "column": 13,
3434            "program": "interfaceAssignment.ts"
3435          },
3436          "end": {
3437            "line": 78,
3438            "column": 2,
3439            "program": "interfaceAssignment.ts"
3440          }
3441        }
3442      },
3443      "id": {
3444        "type": "Identifier",
3445        "name": "E",
3446        "decorators": [],
3447        "loc": {
3448          "start": {
3449            "line": 76,
3450            "column": 11,
3451            "program": "interfaceAssignment.ts"
3452          },
3453          "end": {
3454            "line": 76,
3455            "column": 12,
3456            "program": "interfaceAssignment.ts"
3457          }
3458        }
3459      },
3460      "extends": [],
3461      "loc": {
3462        "start": {
3463          "line": 76,
3464          "column": 1,
3465          "program": "interfaceAssignment.ts"
3466        },
3467        "end": {
3468          "line": 78,
3469          "column": 2,
3470          "program": "interfaceAssignment.ts"
3471        }
3472      }
3473    },
3474    {
3475      "type": "TSInterfaceDeclaration",
3476      "body": {
3477        "type": "TSInterfaceBody",
3478        "body": [
3479          {
3480            "type": "TSPropertySignature",
3481            "computed": false,
3482            "optional": false,
3483            "readonly": false,
3484            "key": {
3485              "type": "Identifier",
3486              "name": "b",
3487              "decorators": [],
3488              "loc": {
3489                "start": {
3490                  "line": 81,
3491                  "column": 5,
3492                  "program": "interfaceAssignment.ts"
3493                },
3494                "end": {
3495                  "line": 81,
3496                  "column": 6,
3497                  "program": "interfaceAssignment.ts"
3498                }
3499              }
3500            },
3501            "typeAnnotation": {
3502              "type": "TSStringKeyword",
3503              "loc": {
3504                "start": {
3505                  "line": 81,
3506                  "column": 8,
3507                  "program": "interfaceAssignment.ts"
3508                },
3509                "end": {
3510                  "line": 81,
3511                  "column": 14,
3512                  "program": "interfaceAssignment.ts"
3513                }
3514              }
3515            },
3516            "loc": {
3517              "start": {
3518                "line": 81,
3519                "column": 5,
3520                "program": "interfaceAssignment.ts"
3521              },
3522              "end": {
3523                "line": 81,
3524                "column": 15,
3525                "program": "interfaceAssignment.ts"
3526              }
3527            }
3528          }
3529        ],
3530        "loc": {
3531          "start": {
3532            "line": 80,
3533            "column": 13,
3534            "program": "interfaceAssignment.ts"
3535          },
3536          "end": {
3537            "line": 82,
3538            "column": 2,
3539            "program": "interfaceAssignment.ts"
3540          }
3541        }
3542      },
3543      "id": {
3544        "type": "Identifier",
3545        "name": "E",
3546        "decorators": [],
3547        "loc": {
3548          "start": {
3549            "line": 80,
3550            "column": 11,
3551            "program": "interfaceAssignment.ts"
3552          },
3553          "end": {
3554            "line": 80,
3555            "column": 12,
3556            "program": "interfaceAssignment.ts"
3557          }
3558        }
3559      },
3560      "extends": [],
3561      "loc": {
3562        "start": {
3563          "line": 80,
3564          "column": 1,
3565          "program": "interfaceAssignment.ts"
3566        },
3567        "end": {
3568          "line": 82,
3569          "column": 2,
3570          "program": "interfaceAssignment.ts"
3571        }
3572      }
3573    },
3574    {
3575      "type": "TSInterfaceDeclaration",
3576      "body": {
3577        "type": "TSInterfaceBody",
3578        "body": [
3579          {
3580            "type": "TSPropertySignature",
3581            "computed": false,
3582            "optional": false,
3583            "readonly": false,
3584            "key": {
3585              "type": "Identifier",
3586              "name": "d",
3587              "decorators": [],
3588              "loc": {
3589                "start": {
3590                  "line": 85,
3591                  "column": 5,
3592                  "program": "interfaceAssignment.ts"
3593                },
3594                "end": {
3595                  "line": 85,
3596                  "column": 6,
3597                  "program": "interfaceAssignment.ts"
3598                }
3599              }
3600            },
3601            "typeAnnotation": {
3602              "type": "TSFunctionType",
3603              "params": [
3604                {
3605                  "type": "Identifier",
3606                  "name": "a",
3607                  "typeAnnotation": {
3608                    "type": "TSNumberKeyword",
3609                    "loc": {
3610                      "start": {
3611                        "line": 85,
3612                        "column": 12,
3613                        "program": "interfaceAssignment.ts"
3614                      },
3615                      "end": {
3616                        "line": 85,
3617                        "column": 18,
3618                        "program": "interfaceAssignment.ts"
3619                      }
3620                    }
3621                  },
3622                  "decorators": [],
3623                  "loc": {
3624                    "start": {
3625                      "line": 85,
3626                      "column": 9,
3627                      "program": "interfaceAssignment.ts"
3628                    },
3629                    "end": {
3630                      "line": 85,
3631                      "column": 10,
3632                      "program": "interfaceAssignment.ts"
3633                    }
3634                  }
3635                },
3636                {
3637                  "type": "Identifier",
3638                  "name": "b",
3639                  "typeAnnotation": {
3640                    "type": "TSStringKeyword",
3641                    "loc": {
3642                      "start": {
3643                        "line": 85,
3644                        "column": 23,
3645                        "program": "interfaceAssignment.ts"
3646                      },
3647                      "end": {
3648                        "line": 85,
3649                        "column": 29,
3650                        "program": "interfaceAssignment.ts"
3651                      }
3652                    }
3653                  },
3654                  "decorators": [],
3655                  "loc": {
3656                    "start": {
3657                      "line": 85,
3658                      "column": 20,
3659                      "program": "interfaceAssignment.ts"
3660                    },
3661                    "end": {
3662                      "line": 85,
3663                      "column": 21,
3664                      "program": "interfaceAssignment.ts"
3665                    }
3666                  }
3667                }
3668              ],
3669              "returnType": {
3670                "type": "TSTypeLiteral",
3671                "members": [],
3672                "loc": {
3673                  "start": {
3674                    "line": 85,
3675                    "column": 34,
3676                    "program": "interfaceAssignment.ts"
3677                  },
3678                  "end": {
3679                    "line": 85,
3680                    "column": 36,
3681                    "program": "interfaceAssignment.ts"
3682                  }
3683                }
3684              },
3685              "loc": {
3686                "start": {
3687                  "line": 85,
3688                  "column": 8,
3689                  "program": "interfaceAssignment.ts"
3690                },
3691                "end": {
3692                  "line": 85,
3693                  "column": 36,
3694                  "program": "interfaceAssignment.ts"
3695                }
3696              }
3697            },
3698            "loc": {
3699              "start": {
3700                "line": 85,
3701                "column": 5,
3702                "program": "interfaceAssignment.ts"
3703              },
3704              "end": {
3705                "line": 86,
3706                "column": 2,
3707                "program": "interfaceAssignment.ts"
3708              }
3709            }
3710          }
3711        ],
3712        "loc": {
3713          "start": {
3714            "line": 84,
3715            "column": 13,
3716            "program": "interfaceAssignment.ts"
3717          },
3718          "end": {
3719            "line": 86,
3720            "column": 2,
3721            "program": "interfaceAssignment.ts"
3722          }
3723        }
3724      },
3725      "id": {
3726        "type": "Identifier",
3727        "name": "E",
3728        "decorators": [],
3729        "loc": {
3730          "start": {
3731            "line": 84,
3732            "column": 11,
3733            "program": "interfaceAssignment.ts"
3734          },
3735          "end": {
3736            "line": 84,
3737            "column": 12,
3738            "program": "interfaceAssignment.ts"
3739          }
3740        }
3741      },
3742      "extends": [],
3743      "loc": {
3744        "start": {
3745          "line": 84,
3746          "column": 1,
3747          "program": "interfaceAssignment.ts"
3748        },
3749        "end": {
3750          "line": 86,
3751          "column": 2,
3752          "program": "interfaceAssignment.ts"
3753        }
3754      }
3755    },
3756    {
3757      "type": "VariableDeclaration",
3758      "declarations": [
3759        {
3760          "type": "VariableDeclarator",
3761          "id": {
3762            "type": "Identifier",
3763            "name": "e",
3764            "typeAnnotation": {
3765              "type": "TSTypeReference",
3766              "typeName": {
3767                "type": "Identifier",
3768                "name": "E",
3769                "decorators": [],
3770                "loc": {
3771                  "start": {
3772                    "line": 88,
3773                    "column": 8,
3774                    "program": "interfaceAssignment.ts"
3775                  },
3776                  "end": {
3777                    "line": 88,
3778                    "column": 9,
3779                    "program": "interfaceAssignment.ts"
3780                  }
3781                }
3782              },
3783              "loc": {
3784                "start": {
3785                  "line": 88,
3786                  "column": 8,
3787                  "program": "interfaceAssignment.ts"
3788                },
3789                "end": {
3790                  "line": 88,
3791                  "column": 9,
3792                  "program": "interfaceAssignment.ts"
3793                }
3794              }
3795            },
3796            "decorators": [],
3797            "loc": {
3798              "start": {
3799                "line": 88,
3800                "column": 5,
3801                "program": "interfaceAssignment.ts"
3802              },
3803              "end": {
3804                "line": 88,
3805                "column": 6,
3806                "program": "interfaceAssignment.ts"
3807              }
3808            }
3809          },
3810          "init": {
3811            "type": "ObjectExpression",
3812            "properties": [
3813              {
3814                "type": "Property",
3815                "method": false,
3816                "shorthand": false,
3817                "computed": false,
3818                "key": {
3819                  "type": "Identifier",
3820                  "name": "a",
3821                  "decorators": [],
3822                  "loc": {
3823                    "start": {
3824                      "line": 88,
3825                      "column": 14,
3826                      "program": "interfaceAssignment.ts"
3827                    },
3828                    "end": {
3829                      "line": 88,
3830                      "column": 15,
3831                      "program": "interfaceAssignment.ts"
3832                    }
3833                  }
3834                },
3835                "value": {
3836                  "type": "NumberLiteral",
3837                  "value": 1,
3838                  "loc": {
3839                    "start": {
3840                      "line": 88,
3841                      "column": 17,
3842                      "program": "interfaceAssignment.ts"
3843                    },
3844                    "end": {
3845                      "line": 88,
3846                      "column": 18,
3847                      "program": "interfaceAssignment.ts"
3848                    }
3849                  }
3850                },
3851                "kind": "init",
3852                "loc": {
3853                  "start": {
3854                    "line": 88,
3855                    "column": 14,
3856                    "program": "interfaceAssignment.ts"
3857                  },
3858                  "end": {
3859                    "line": 88,
3860                    "column": 18,
3861                    "program": "interfaceAssignment.ts"
3862                  }
3863                }
3864              },
3865              {
3866                "type": "Property",
3867                "method": false,
3868                "shorthand": false,
3869                "computed": false,
3870                "key": {
3871                  "type": "Identifier",
3872                  "name": "b",
3873                  "decorators": [],
3874                  "loc": {
3875                    "start": {
3876                      "line": 88,
3877                      "column": 20,
3878                      "program": "interfaceAssignment.ts"
3879                    },
3880                    "end": {
3881                      "line": 88,
3882                      "column": 21,
3883                      "program": "interfaceAssignment.ts"
3884                    }
3885                  }
3886                },
3887                "value": {
3888                  "type": "StringLiteral",
3889                  "value": "foo",
3890                  "loc": {
3891                    "start": {
3892                      "line": 88,
3893                      "column": 23,
3894                      "program": "interfaceAssignment.ts"
3895                    },
3896                    "end": {
3897                      "line": 88,
3898                      "column": 28,
3899                      "program": "interfaceAssignment.ts"
3900                    }
3901                  }
3902                },
3903                "kind": "init",
3904                "loc": {
3905                  "start": {
3906                    "line": 88,
3907                    "column": 20,
3908                    "program": "interfaceAssignment.ts"
3909                  },
3910                  "end": {
3911                    "line": 88,
3912                    "column": 28,
3913                    "program": "interfaceAssignment.ts"
3914                  }
3915                }
3916              },
3917              {
3918                "type": "Property",
3919                "method": false,
3920                "shorthand": false,
3921                "computed": false,
3922                "key": {
3923                  "type": "Identifier",
3924                  "name": "d",
3925                  "decorators": [],
3926                  "loc": {
3927                    "start": {
3928                      "line": 88,
3929                      "column": 30,
3930                      "program": "interfaceAssignment.ts"
3931                    },
3932                    "end": {
3933                      "line": 88,
3934                      "column": 31,
3935                      "program": "interfaceAssignment.ts"
3936                    }
3937                  }
3938                },
3939                "value": {
3940                  "type": "FunctionExpression",
3941                  "function": {
3942                    "type": "ScriptFunction",
3943                    "id": null,
3944                    "generator": false,
3945                    "async": false,
3946                    "expression": false,
3947                    "params": [
3948                      {
3949                        "type": "Identifier",
3950                        "name": "a",
3951                        "typeAnnotation": {
3952                          "type": "TSNumberKeyword",
3953                          "loc": {
3954                            "start": {
3955                              "line": 88,
3956                              "column": 46,
3957                              "program": "interfaceAssignment.ts"
3958                            },
3959                            "end": {
3960                              "line": 88,
3961                              "column": 52,
3962                              "program": "interfaceAssignment.ts"
3963                            }
3964                          }
3965                        },
3966                        "decorators": [],
3967                        "loc": {
3968                          "start": {
3969                            "line": 88,
3970                            "column": 43,
3971                            "program": "interfaceAssignment.ts"
3972                          },
3973                          "end": {
3974                            "line": 88,
3975                            "column": 44,
3976                            "program": "interfaceAssignment.ts"
3977                          }
3978                        }
3979                      },
3980                      {
3981                        "type": "Identifier",
3982                        "name": "b",
3983                        "typeAnnotation": {
3984                          "type": "TSStringKeyword",
3985                          "loc": {
3986                            "start": {
3987                              "line": 88,
3988                              "column": 57,
3989                              "program": "interfaceAssignment.ts"
3990                            },
3991                            "end": {
3992                              "line": 88,
3993                              "column": 63,
3994                              "program": "interfaceAssignment.ts"
3995                            }
3996                          }
3997                        },
3998                        "decorators": [],
3999                        "loc": {
4000                          "start": {
4001                            "line": 88,
4002                            "column": 54,
4003                            "program": "interfaceAssignment.ts"
4004                          },
4005                          "end": {
4006                            "line": 88,
4007                            "column": 55,
4008                            "program": "interfaceAssignment.ts"
4009                          }
4010                        }
4011                      }
4012                    ],
4013                    "body": {
4014                      "type": "BlockStatement",
4015                      "statements": [
4016                        {
4017                          "type": "ReturnStatement",
4018                          "argument": {
4019                            "type": "ObjectExpression",
4020                            "properties": [],
4021                            "loc": {
4022                              "start": {
4023                                "line": 88,
4024                                "column": 74,
4025                                "program": "interfaceAssignment.ts"
4026                              },
4027                              "end": {
4028                                "line": 88,
4029                                "column": 76,
4030                                "program": "interfaceAssignment.ts"
4031                              }
4032                            }
4033                          },
4034                          "loc": {
4035                            "start": {
4036                              "line": 88,
4037                              "column": 67,
4038                              "program": "interfaceAssignment.ts"
4039                            },
4040                            "end": {
4041                              "line": 88,
4042                              "column": 76,
4043                              "program": "interfaceAssignment.ts"
4044                            }
4045                          }
4046                        }
4047                      ],
4048                      "loc": {
4049                        "start": {
4050                          "line": 88,
4051                          "column": 65,
4052                          "program": "interfaceAssignment.ts"
4053                        },
4054                        "end": {
4055                          "line": 88,
4056                          "column": 78,
4057                          "program": "interfaceAssignment.ts"
4058                        }
4059                      }
4060                    },
4061                    "loc": {
4062                      "start": {
4063                        "line": 88,
4064                        "column": 33,
4065                        "program": "interfaceAssignment.ts"
4066                      },
4067                      "end": {
4068                        "line": 88,
4069                        "column": 78,
4070                        "program": "interfaceAssignment.ts"
4071                      }
4072                    }
4073                  },
4074                  "loc": {
4075                    "start": {
4076                      "line": 88,
4077                      "column": 33,
4078                      "program": "interfaceAssignment.ts"
4079                    },
4080                    "end": {
4081                      "line": 88,
4082                      "column": 78,
4083                      "program": "interfaceAssignment.ts"
4084                    }
4085                  }
4086                },
4087                "kind": "init",
4088                "loc": {
4089                  "start": {
4090                    "line": 88,
4091                    "column": 30,
4092                    "program": "interfaceAssignment.ts"
4093                  },
4094                  "end": {
4095                    "line": 88,
4096                    "column": 78,
4097                    "program": "interfaceAssignment.ts"
4098                  }
4099                }
4100              }
4101            ],
4102            "loc": {
4103              "start": {
4104                "line": 88,
4105                "column": 12,
4106                "program": "interfaceAssignment.ts"
4107              },
4108              "end": {
4109                "line": 88,
4110                "column": 80,
4111                "program": "interfaceAssignment.ts"
4112              }
4113            }
4114          },
4115          "loc": {
4116            "start": {
4117              "line": 88,
4118              "column": 5,
4119              "program": "interfaceAssignment.ts"
4120            },
4121            "end": {
4122              "line": 88,
4123              "column": 80,
4124              "program": "interfaceAssignment.ts"
4125            }
4126          }
4127        }
4128      ],
4129      "kind": "var",
4130      "loc": {
4131        "start": {
4132          "line": 88,
4133          "column": 1,
4134          "program": "interfaceAssignment.ts"
4135        },
4136        "end": {
4137          "line": 88,
4138          "column": 80,
4139          "program": "interfaceAssignment.ts"
4140        }
4141      }
4142    },
4143    {
4144      "type": "TSInterfaceDeclaration",
4145      "body": {
4146        "type": "TSInterfaceBody",
4147        "body": [
4148          {
4149            "type": "TSIndexSignature",
4150            "parameters": {
4151              "type": "Identifier",
4152              "name": "x",
4153              "typeAnnotation": {
4154                "type": "TSNumberKeyword",
4155                "loc": {
4156                  "start": {
4157                    "line": 91,
4158                    "column": 9,
4159                    "program": "interfaceAssignment.ts"
4160                  },
4161                  "end": {
4162                    "line": 91,
4163                    "column": 15,
4164                    "program": "interfaceAssignment.ts"
4165                  }
4166                }
4167              },
4168              "decorators": [],
4169              "loc": {
4170                "start": {
4171                  "line": 91,
4172                  "column": 6,
4173                  "program": "interfaceAssignment.ts"
4174                },
4175                "end": {
4176                  "line": 91,
4177                  "column": 7,
4178                  "program": "interfaceAssignment.ts"
4179                }
4180              }
4181            },
4182            "typeAnnotation": {
4183              "type": "TSStringKeyword",
4184              "loc": {
4185                "start": {
4186                  "line": 91,
4187                  "column": 18,
4188                  "program": "interfaceAssignment.ts"
4189                },
4190                "end": {
4191                  "line": 91,
4192                  "column": 24,
4193                  "program": "interfaceAssignment.ts"
4194                }
4195              }
4196            },
4197            "readonly": false,
4198            "loc": {
4199              "start": {
4200                "line": 91,
4201                "column": 5,
4202                "program": "interfaceAssignment.ts"
4203              },
4204              "end": {
4205                "line": 91,
4206                "column": 25,
4207                "program": "interfaceAssignment.ts"
4208              }
4209            }
4210          },
4211          {
4212            "type": "TSIndexSignature",
4213            "parameters": {
4214              "type": "Identifier",
4215              "name": "x",
4216              "typeAnnotation": {
4217                "type": "TSStringKeyword",
4218                "loc": {
4219                  "start": {
4220                    "line": 92,
4221                    "column": 9,
4222                    "program": "interfaceAssignment.ts"
4223                  },
4224                  "end": {
4225                    "line": 92,
4226                    "column": 15,
4227                    "program": "interfaceAssignment.ts"
4228                  }
4229                }
4230              },
4231              "decorators": [],
4232              "loc": {
4233                "start": {
4234                  "line": 92,
4235                  "column": 6,
4236                  "program": "interfaceAssignment.ts"
4237                },
4238                "end": {
4239                  "line": 92,
4240                  "column": 7,
4241                  "program": "interfaceAssignment.ts"
4242                }
4243              }
4244            },
4245            "typeAnnotation": {
4246              "type": "TSUnionType",
4247              "types": [
4248                {
4249                  "type": "TSNumberKeyword",
4250                  "loc": {
4251                    "start": {
4252                      "line": 92,
4253                      "column": 18,
4254                      "program": "interfaceAssignment.ts"
4255                    },
4256                    "end": {
4257                      "line": 92,
4258                      "column": 24,
4259                      "program": "interfaceAssignment.ts"
4260                    }
4261                  }
4262                },
4263                {
4264                  "type": "TSStringKeyword",
4265                  "loc": {
4266                    "start": {
4267                      "line": 92,
4268                      "column": 27,
4269                      "program": "interfaceAssignment.ts"
4270                    },
4271                    "end": {
4272                      "line": 92,
4273                      "column": 33,
4274                      "program": "interfaceAssignment.ts"
4275                    }
4276                  }
4277                }
4278              ],
4279              "loc": {
4280                "start": {
4281                  "line": 92,
4282                  "column": 18,
4283                  "program": "interfaceAssignment.ts"
4284                },
4285                "end": {
4286                  "line": 92,
4287                  "column": 33,
4288                  "program": "interfaceAssignment.ts"
4289                }
4290              }
4291            },
4292            "readonly": false,
4293            "loc": {
4294              "start": {
4295                "line": 92,
4296                "column": 5,
4297                "program": "interfaceAssignment.ts"
4298              },
4299              "end": {
4300                "line": 93,
4301                "column": 2,
4302                "program": "interfaceAssignment.ts"
4303              }
4304            }
4305          }
4306        ],
4307        "loc": {
4308          "start": {
4309            "line": 90,
4310            "column": 13,
4311            "program": "interfaceAssignment.ts"
4312          },
4313          "end": {
4314            "line": 93,
4315            "column": 2,
4316            "program": "interfaceAssignment.ts"
4317          }
4318        }
4319      },
4320      "id": {
4321        "type": "Identifier",
4322        "name": "F",
4323        "decorators": [],
4324        "loc": {
4325          "start": {
4326            "line": 90,
4327            "column": 11,
4328            "program": "interfaceAssignment.ts"
4329          },
4330          "end": {
4331            "line": 90,
4332            "column": 12,
4333            "program": "interfaceAssignment.ts"
4334          }
4335        }
4336      },
4337      "extends": [],
4338      "loc": {
4339        "start": {
4340          "line": 90,
4341          "column": 1,
4342          "program": "interfaceAssignment.ts"
4343        },
4344        "end": {
4345          "line": 93,
4346          "column": 2,
4347          "program": "interfaceAssignment.ts"
4348        }
4349      }
4350    },
4351    {
4352      "type": "VariableDeclaration",
4353      "declarations": [
4354        {
4355          "type": "VariableDeclarator",
4356          "id": {
4357            "type": "Identifier",
4358            "name": "f",
4359            "typeAnnotation": {
4360              "type": "TSTypeReference",
4361              "typeName": {
4362                "type": "Identifier",
4363                "name": "F",
4364                "decorators": [],
4365                "loc": {
4366                  "start": {
4367                    "line": 95,
4368                    "column": 8,
4369                    "program": "interfaceAssignment.ts"
4370                  },
4371                  "end": {
4372                    "line": 95,
4373                    "column": 9,
4374                    "program": "interfaceAssignment.ts"
4375                  }
4376                }
4377              },
4378              "loc": {
4379                "start": {
4380                  "line": 95,
4381                  "column": 8,
4382                  "program": "interfaceAssignment.ts"
4383                },
4384                "end": {
4385                  "line": 95,
4386                  "column": 9,
4387                  "program": "interfaceAssignment.ts"
4388                }
4389              }
4390            },
4391            "decorators": [],
4392            "loc": {
4393              "start": {
4394                "line": 95,
4395                "column": 5,
4396                "program": "interfaceAssignment.ts"
4397              },
4398              "end": {
4399                "line": 95,
4400                "column": 6,
4401                "program": "interfaceAssignment.ts"
4402              }
4403            }
4404          },
4405          "init": {
4406            "type": "ObjectExpression",
4407            "properties": [
4408              {
4409                "type": "Property",
4410                "method": false,
4411                "shorthand": false,
4412                "computed": false,
4413                "key": {
4414                  "type": "NumberLiteral",
4415                  "value": 5,
4416                  "loc": {
4417                    "start": {
4418                      "line": 95,
4419                      "column": 14,
4420                      "program": "interfaceAssignment.ts"
4421                    },
4422                    "end": {
4423                      "line": 95,
4424                      "column": 15,
4425                      "program": "interfaceAssignment.ts"
4426                    }
4427                  }
4428                },
4429                "value": {
4430                  "type": "StringLiteral",
4431                  "value": "foo",
4432                  "loc": {
4433                    "start": {
4434                      "line": 95,
4435                      "column": 17,
4436                      "program": "interfaceAssignment.ts"
4437                    },
4438                    "end": {
4439                      "line": 95,
4440                      "column": 22,
4441                      "program": "interfaceAssignment.ts"
4442                    }
4443                  }
4444                },
4445                "kind": "init",
4446                "loc": {
4447                  "start": {
4448                    "line": 95,
4449                    "column": 14,
4450                    "program": "interfaceAssignment.ts"
4451                  },
4452                  "end": {
4453                    "line": 95,
4454                    "column": 22,
4455                    "program": "interfaceAssignment.ts"
4456                  }
4457                }
4458              },
4459              {
4460                "type": "Property",
4461                "method": false,
4462                "shorthand": false,
4463                "computed": false,
4464                "key": {
4465                  "type": "NumberLiteral",
4466                  "value": 6,
4467                  "loc": {
4468                    "start": {
4469                      "line": 95,
4470                      "column": 24,
4471                      "program": "interfaceAssignment.ts"
4472                    },
4473                    "end": {
4474                      "line": 95,
4475                      "column": 25,
4476                      "program": "interfaceAssignment.ts"
4477                    }
4478                  }
4479                },
4480                "value": {
4481                  "type": "StringLiteral",
4482                  "value": "bar",
4483                  "loc": {
4484                    "start": {
4485                      "line": 95,
4486                      "column": 27,
4487                      "program": "interfaceAssignment.ts"
4488                    },
4489                    "end": {
4490                      "line": 95,
4491                      "column": 32,
4492                      "program": "interfaceAssignment.ts"
4493                    }
4494                  }
4495                },
4496                "kind": "init",
4497                "loc": {
4498                  "start": {
4499                    "line": 95,
4500                    "column": 24,
4501                    "program": "interfaceAssignment.ts"
4502                  },
4503                  "end": {
4504                    "line": 95,
4505                    "column": 32,
4506                    "program": "interfaceAssignment.ts"
4507                  }
4508                }
4509              },
4510              {
4511                "type": "Property",
4512                "method": false,
4513                "shorthand": false,
4514                "computed": false,
4515                "key": {
4516                  "type": "Identifier",
4517                  "name": "a",
4518                  "decorators": [],
4519                  "loc": {
4520                    "start": {
4521                      "line": 95,
4522                      "column": 34,
4523                      "program": "interfaceAssignment.ts"
4524                    },
4525                    "end": {
4526                      "line": 95,
4527                      "column": 35,
4528                      "program": "interfaceAssignment.ts"
4529                    }
4530                  }
4531                },
4532                "value": {
4533                  "type": "NumberLiteral",
4534                  "value": 1,
4535                  "loc": {
4536                    "start": {
4537                      "line": 95,
4538                      "column": 37,
4539                      "program": "interfaceAssignment.ts"
4540                    },
4541                    "end": {
4542                      "line": 95,
4543                      "column": 38,
4544                      "program": "interfaceAssignment.ts"
4545                    }
4546                  }
4547                },
4548                "kind": "init",
4549                "loc": {
4550                  "start": {
4551                    "line": 95,
4552                    "column": 34,
4553                    "program": "interfaceAssignment.ts"
4554                  },
4555                  "end": {
4556                    "line": 95,
4557                    "column": 38,
4558                    "program": "interfaceAssignment.ts"
4559                  }
4560                }
4561              },
4562              {
4563                "type": "Property",
4564                "method": false,
4565                "shorthand": false,
4566                "computed": false,
4567                "key": {
4568                  "type": "Identifier",
4569                  "name": "b",
4570                  "decorators": [],
4571                  "loc": {
4572                    "start": {
4573                      "line": 95,
4574                      "column": 40,
4575                      "program": "interfaceAssignment.ts"
4576                    },
4577                    "end": {
4578                      "line": 95,
4579                      "column": 41,
4580                      "program": "interfaceAssignment.ts"
4581                    }
4582                  }
4583                },
4584                "value": {
4585                  "type": "StringLiteral",
4586                  "value": "baz",
4587                  "loc": {
4588                    "start": {
4589                      "line": 95,
4590                      "column": 43,
4591                      "program": "interfaceAssignment.ts"
4592                    },
4593                    "end": {
4594                      "line": 95,
4595                      "column": 48,
4596                      "program": "interfaceAssignment.ts"
4597                    }
4598                  }
4599                },
4600                "kind": "init",
4601                "loc": {
4602                  "start": {
4603                    "line": 95,
4604                    "column": 40,
4605                    "program": "interfaceAssignment.ts"
4606                  },
4607                  "end": {
4608                    "line": 95,
4609                    "column": 48,
4610                    "program": "interfaceAssignment.ts"
4611                  }
4612                }
4613              }
4614            ],
4615            "loc": {
4616              "start": {
4617                "line": 95,
4618                "column": 12,
4619                "program": "interfaceAssignment.ts"
4620              },
4621              "end": {
4622                "line": 95,
4623                "column": 50,
4624                "program": "interfaceAssignment.ts"
4625              }
4626            }
4627          },
4628          "loc": {
4629            "start": {
4630              "line": 95,
4631              "column": 5,
4632              "program": "interfaceAssignment.ts"
4633            },
4634            "end": {
4635              "line": 95,
4636              "column": 50,
4637              "program": "interfaceAssignment.ts"
4638            }
4639          }
4640        }
4641      ],
4642      "kind": "var",
4643      "loc": {
4644        "start": {
4645          "line": 95,
4646          "column": 1,
4647          "program": "interfaceAssignment.ts"
4648        },
4649        "end": {
4650          "line": 95,
4651          "column": 51,
4652          "program": "interfaceAssignment.ts"
4653        }
4654      }
4655    }
4656  ],
4657  "loc": {
4658    "start": {
4659      "line": 1,
4660      "column": 1,
4661      "program": "interfaceAssignment.ts"
4662    },
4663    "end": {
4664      "line": 97,
4665      "column": 1,
4666      "program": "interfaceAssignment.ts"
4667    }
4668  }
4669}
4670