• 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": true,
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": "test-interface.ts"
23                },
24                "end": {
25                  "line": 18,
26                  "column": 6,
27                  "program": "test-interface.ts"
28                }
29              }
30            },
31            "typeAnnotation": {
32              "type": "TSNumberKeyword",
33              "loc": {
34                "start": {
35                  "line": 18,
36                  "column": 9,
37                  "program": "test-interface.ts"
38                },
39                "end": {
40                  "line": 18,
41                  "column": 15,
42                  "program": "test-interface.ts"
43                }
44              }
45            },
46            "loc": {
47              "start": {
48                "line": 18,
49                "column": 5,
50                "program": "test-interface.ts"
51              },
52              "end": {
53                "line": 18,
54                "column": 16,
55                "program": "test-interface.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": "test-interface.ts"
73                },
74                "end": {
75                  "line": 19,
76                  "column": 6,
77                  "program": "test-interface.ts"
78                }
79              }
80            },
81            "typeAnnotation": {
82              "type": "TSUnionType",
83              "types": [
84                {
85                  "type": "TSStringKeyword",
86                  "loc": {
87                    "start": {
88                      "line": 19,
89                      "column": 8,
90                      "program": "test-interface.ts"
91                    },
92                    "end": {
93                      "line": 19,
94                      "column": 14,
95                      "program": "test-interface.ts"
96                    }
97                  }
98                },
99                {
100                  "type": "TSBooleanKeyword",
101                  "loc": {
102                    "start": {
103                      "line": 19,
104                      "column": 17,
105                      "program": "test-interface.ts"
106                    },
107                    "end": {
108                      "line": 19,
109                      "column": 24,
110                      "program": "test-interface.ts"
111                    }
112                  }
113                }
114              ],
115              "loc": {
116                "start": {
117                  "line": 19,
118                  "column": 8,
119                  "program": "test-interface.ts"
120                },
121                "end": {
122                  "line": 19,
123                  "column": 24,
124                  "program": "test-interface.ts"
125                }
126              }
127            },
128            "loc": {
129              "start": {
130                "line": 19,
131                "column": 5,
132                "program": "test-interface.ts"
133              },
134              "end": {
135                "line": 19,
136                "column": 25,
137                "program": "test-interface.ts"
138              }
139            }
140          },
141          {
142            "type": "TSMethodSignature",
143            "computed": false,
144            "optional": false,
145            "key": {
146              "type": "Identifier",
147              "name": "c",
148              "decorators": [],
149              "loc": {
150                "start": {
151                  "line": 20,
152                  "column": 5,
153                  "program": "test-interface.ts"
154                },
155                "end": {
156                  "line": 20,
157                  "column": 6,
158                  "program": "test-interface.ts"
159                }
160              }
161            },
162            "params": [
163              {
164                "type": "Identifier",
165                "name": "a",
166                "typeAnnotation": {
167                  "type": "TSFunctionType",
168                  "params": [
169                    {
170                      "type": "Identifier",
171                      "name": "a",
172                      "typeAnnotation": {
173                        "type": "TSNumberKeyword",
174                        "loc": {
175                          "start": {
176                            "line": 20,
177                            "column": 14,
178                            "program": "test-interface.ts"
179                          },
180                          "end": {
181                            "line": 20,
182                            "column": 20,
183                            "program": "test-interface.ts"
184                          }
185                        }
186                      },
187                      "decorators": [],
188                      "loc": {
189                        "start": {
190                          "line": 20,
191                          "column": 11,
192                          "program": "test-interface.ts"
193                        },
194                        "end": {
195                          "line": 20,
196                          "column": 12,
197                          "program": "test-interface.ts"
198                        }
199                      }
200                    },
201                    {
202                      "type": "Identifier",
203                      "name": "b",
204                      "typeAnnotation": {
205                        "type": "TSVoidKeyword",
206                        "loc": {
207                          "start": {
208                            "line": 20,
209                            "column": 25,
210                            "program": "test-interface.ts"
211                          },
212                          "end": {
213                            "line": 20,
214                            "column": 29,
215                            "program": "test-interface.ts"
216                          }
217                        }
218                      },
219                      "decorators": [],
220                      "loc": {
221                        "start": {
222                          "line": 20,
223                          "column": 22,
224                          "program": "test-interface.ts"
225                        },
226                        "end": {
227                          "line": 20,
228                          "column": 23,
229                          "program": "test-interface.ts"
230                        }
231                      }
232                    }
233                  ],
234                  "returnType": {
235                    "type": "TSStringKeyword",
236                    "loc": {
237                      "start": {
238                        "line": 20,
239                        "column": 34,
240                        "program": "test-interface.ts"
241                      },
242                      "end": {
243                        "line": 20,
244                        "column": 40,
245                        "program": "test-interface.ts"
246                      }
247                    }
248                  },
249                  "loc": {
250                    "start": {
251                      "line": 20,
252                      "column": 10,
253                      "program": "test-interface.ts"
254                    },
255                    "end": {
256                      "line": 20,
257                      "column": 40,
258                      "program": "test-interface.ts"
259                    }
260                  }
261                },
262                "decorators": [],
263                "loc": {
264                  "start": {
265                    "line": 20,
266                    "column": 7,
267                    "program": "test-interface.ts"
268                  },
269                  "end": {
270                    "line": 20,
271                    "column": 8,
272                    "program": "test-interface.ts"
273                  }
274                }
275              },
276              {
277                "type": "Identifier",
278                "name": "b",
279                "typeAnnotation": {
280                  "type": "TSArrayType",
281                  "elementType": {
282                    "type": "TSNumberKeyword",
283                    "loc": {
284                      "start": {
285                        "line": 20,
286                        "column": 46,
287                        "program": "test-interface.ts"
288                      },
289                      "end": {
290                        "line": 20,
291                        "column": 52,
292                        "program": "test-interface.ts"
293                      }
294                    }
295                  },
296                  "annotations": [],
297                  "loc": {
298                    "start": {
299                      "line": 20,
300                      "column": 46,
301                      "program": "test-interface.ts"
302                    },
303                    "end": {
304                      "line": 20,
305                      "column": 54,
306                      "program": "test-interface.ts"
307                    }
308                  }
309                },
310                "optional": true,
311                "decorators": [],
312                "loc": {
313                  "start": {
314                    "line": 20,
315                    "column": 42,
316                    "program": "test-interface.ts"
317                  },
318                  "end": {
319                    "line": 20,
320                    "column": 43,
321                    "program": "test-interface.ts"
322                  }
323                }
324              }
325            ],
326            "typeAnnotation": {
327              "type": "TSUndefinedKeyword",
328              "loc": {
329                "start": {
330                  "line": 20,
331                  "column": 57,
332                  "program": "test-interface.ts"
333                },
334                "end": {
335                  "line": 20,
336                  "column": 66,
337                  "program": "test-interface.ts"
338                }
339              }
340            },
341            "loc": {
342              "start": {
343                "line": 20,
344                "column": 5,
345                "program": "test-interface.ts"
346              },
347              "end": {
348                "line": 20,
349                "column": 67,
350                "program": "test-interface.ts"
351              }
352            }
353          },
354          {
355            "type": "TSCallSignatureDeclaration",
356            "params": [
357              {
358                "type": "Identifier",
359                "name": "a",
360                "typeAnnotation": {
361                  "type": "TSStringKeyword",
362                  "loc": {
363                    "start": {
364                      "line": 21,
365                      "column": 9,
366                      "program": "test-interface.ts"
367                    },
368                    "end": {
369                      "line": 21,
370                      "column": 15,
371                      "program": "test-interface.ts"
372                    }
373                  }
374                },
375                "decorators": [],
376                "loc": {
377                  "start": {
378                    "line": 21,
379                    "column": 6,
380                    "program": "test-interface.ts"
381                  },
382                  "end": {
383                    "line": 21,
384                    "column": 7,
385                    "program": "test-interface.ts"
386                  }
387                }
388              }
389            ],
390            "returnType": {
391              "type": "TSStringKeyword",
392              "loc": {
393                "start": {
394                  "line": 21,
395                  "column": 18,
396                  "program": "test-interface.ts"
397                },
398                "end": {
399                  "line": 21,
400                  "column": 24,
401                  "program": "test-interface.ts"
402                }
403              }
404            },
405            "loc": {
406              "start": {
407                "line": 21,
408                "column": 5,
409                "program": "test-interface.ts"
410              },
411              "end": {
412                "line": 21,
413                "column": 25,
414                "program": "test-interface.ts"
415              }
416            }
417          },
418          {
419            "type": "TSCallSignatureDeclaration",
420            "params": [
421              {
422                "type": "Identifier",
423                "name": "a",
424                "typeAnnotation": {
425                  "type": "TSNumberKeyword",
426                  "loc": {
427                    "start": {
428                      "line": 22,
429                      "column": 9,
430                      "program": "test-interface.ts"
431                    },
432                    "end": {
433                      "line": 22,
434                      "column": 15,
435                      "program": "test-interface.ts"
436                    }
437                  }
438                },
439                "decorators": [],
440                "loc": {
441                  "start": {
442                    "line": 22,
443                    "column": 6,
444                    "program": "test-interface.ts"
445                  },
446                  "end": {
447                    "line": 22,
448                    "column": 7,
449                    "program": "test-interface.ts"
450                  }
451                }
452              }
453            ],
454            "returnType": {
455              "type": "TSNumberKeyword",
456              "loc": {
457                "start": {
458                  "line": 22,
459                  "column": 18,
460                  "program": "test-interface.ts"
461                },
462                "end": {
463                  "line": 22,
464                  "column": 24,
465                  "program": "test-interface.ts"
466                }
467              }
468            },
469            "loc": {
470              "start": {
471                "line": 22,
472                "column": 5,
473                "program": "test-interface.ts"
474              },
475              "end": {
476                "line": 22,
477                "column": 25,
478                "program": "test-interface.ts"
479              }
480            }
481          },
482          {
483            "type": "TSMethodSignature",
484            "computed": false,
485            "optional": false,
486            "key": {
487              "type": "Identifier",
488              "name": "readonly",
489              "decorators": [],
490              "loc": {
491                "start": {
492                  "line": 23,
493                  "column": 5,
494                  "program": "test-interface.ts"
495                },
496                "end": {
497                  "line": 23,
498                  "column": 13,
499                  "program": "test-interface.ts"
500                }
501              }
502            },
503            "params": [
504              {
505                "type": "Identifier",
506                "name": "a",
507                "typeAnnotation": {
508                  "type": "TSNumberKeyword",
509                  "loc": {
510                    "start": {
511                      "line": 23,
512                      "column": 18,
513                      "program": "test-interface.ts"
514                    },
515                    "end": {
516                      "line": 23,
517                      "column": 24,
518                      "program": "test-interface.ts"
519                    }
520                  }
521                },
522                "decorators": [],
523                "loc": {
524                  "start": {
525                    "line": 23,
526                    "column": 15,
527                    "program": "test-interface.ts"
528                  },
529                  "end": {
530                    "line": 23,
531                    "column": 16,
532                    "program": "test-interface.ts"
533                  }
534                }
535              }
536            ],
537            "typeAnnotation": {
538              "type": "TSNumberKeyword",
539              "loc": {
540                "start": {
541                  "line": 23,
542                  "column": 27,
543                  "program": "test-interface.ts"
544                },
545                "end": {
546                  "line": 23,
547                  "column": 33,
548                  "program": "test-interface.ts"
549                }
550              }
551            },
552            "loc": {
553              "start": {
554                "line": 23,
555                "column": 5,
556                "program": "test-interface.ts"
557              },
558              "end": {
559                "line": 23,
560                "column": 34,
561                "program": "test-interface.ts"
562              }
563            }
564          },
565          {
566            "type": "TSIndexSignature",
567            "parameters": {
568              "type": "Identifier",
569              "name": "a",
570              "typeAnnotation": {
571                "type": "TSNumberKeyword",
572                "loc": {
573                  "start": {
574                    "line": 24,
575                    "column": 8,
576                    "program": "test-interface.ts"
577                  },
578                  "end": {
579                    "line": 24,
580                    "column": 14,
581                    "program": "test-interface.ts"
582                  }
583                }
584              },
585              "decorators": [],
586              "loc": {
587                "start": {
588                  "line": 24,
589                  "column": 6,
590                  "program": "test-interface.ts"
591                },
592                "end": {
593                  "line": 24,
594                  "column": 7,
595                  "program": "test-interface.ts"
596                }
597              }
598            },
599            "typeAnnotation": {
600              "type": "TSNumberKeyword",
601              "loc": {
602                "start": {
603                  "line": 24,
604                  "column": 16,
605                  "program": "test-interface.ts"
606                },
607                "end": {
608                  "line": 24,
609                  "column": 22,
610                  "program": "test-interface.ts"
611                }
612              }
613            },
614            "readonly": false,
615            "loc": {
616              "start": {
617                "line": 24,
618                "column": 5,
619                "program": "test-interface.ts"
620              },
621              "end": {
622                "line": 24,
623                "column": 23,
624                "program": "test-interface.ts"
625              }
626            }
627          },
628          {
629            "type": "TSConstructSignatureDeclaration",
630            "params": [
631              {
632                "type": "Identifier",
633                "name": "a",
634                "typeAnnotation": {
635                  "type": "TSNullKeyword",
636                  "loc": {
637                    "start": {
638                      "line": 25,
639                      "column": 12,
640                      "program": "test-interface.ts"
641                    },
642                    "end": {
643                      "line": 25,
644                      "column": 16,
645                      "program": "test-interface.ts"
646                    }
647                  }
648                },
649                "decorators": [],
650                "loc": {
651                  "start": {
652                    "line": 25,
653                    "column": 9,
654                    "program": "test-interface.ts"
655                  },
656                  "end": {
657                    "line": 25,
658                    "column": 10,
659                    "program": "test-interface.ts"
660                  }
661                }
662              },
663              {
664                "type": "Identifier",
665                "name": "b",
666                "typeAnnotation": {
667                  "type": "TSStringKeyword",
668                  "loc": {
669                    "start": {
670                      "line": 25,
671                      "column": 22,
672                      "program": "test-interface.ts"
673                    },
674                    "end": {
675                      "line": 25,
676                      "column": 28,
677                      "program": "test-interface.ts"
678                    }
679                  }
680                },
681                "optional": true,
682                "decorators": [],
683                "loc": {
684                  "start": {
685                    "line": 25,
686                    "column": 18,
687                    "program": "test-interface.ts"
688                  },
689                  "end": {
690                    "line": 25,
691                    "column": 19,
692                    "program": "test-interface.ts"
693                  }
694                }
695              }
696            ],
697            "returnType": {
698              "type": "TSTypeLiteral",
699              "members": [
700                {
701                  "type": "TSPropertySignature",
702                  "computed": false,
703                  "optional": false,
704                  "readonly": false,
705                  "key": {
706                    "type": "Identifier",
707                    "name": "a",
708                    "decorators": [],
709                    "loc": {
710                      "start": {
711                        "line": 25,
712                        "column": 33,
713                        "program": "test-interface.ts"
714                      },
715                      "end": {
716                        "line": 25,
717                        "column": 34,
718                        "program": "test-interface.ts"
719                      }
720                    }
721                  },
722                  "typeAnnotation": {
723                    "type": "TSNumberKeyword",
724                    "loc": {
725                      "start": {
726                        "line": 25,
727                        "column": 36,
728                        "program": "test-interface.ts"
729                      },
730                      "end": {
731                        "line": 25,
732                        "column": 42,
733                        "program": "test-interface.ts"
734                      }
735                    }
736                  },
737                  "loc": {
738                    "start": {
739                      "line": 25,
740                      "column": 33,
741                      "program": "test-interface.ts"
742                    },
743                    "end": {
744                      "line": 25,
745                      "column": 43,
746                      "program": "test-interface.ts"
747                    }
748                  }
749                },
750                {
751                  "type": "TSPropertySignature",
752                  "computed": false,
753                  "optional": false,
754                  "readonly": false,
755                  "key": {
756                    "type": "Identifier",
757                    "name": "b",
758                    "decorators": [],
759                    "loc": {
760                      "start": {
761                        "line": 25,
762                        "column": 44,
763                        "program": "test-interface.ts"
764                      },
765                      "end": {
766                        "line": 25,
767                        "column": 45,
768                        "program": "test-interface.ts"
769                      }
770                    }
771                  },
772                  "typeAnnotation": {
773                    "type": "TSStringKeyword",
774                    "loc": {
775                      "start": {
776                        "line": 25,
777                        "column": 47,
778                        "program": "test-interface.ts"
779                      },
780                      "end": {
781                        "line": 25,
782                        "column": 53,
783                        "program": "test-interface.ts"
784                      }
785                    }
786                  },
787                  "loc": {
788                    "start": {
789                      "line": 25,
790                      "column": 44,
791                      "program": "test-interface.ts"
792                    },
793                    "end": {
794                      "line": 25,
795                      "column": 54,
796                      "program": "test-interface.ts"
797                    }
798                  }
799                },
800                {
801                  "type": "TSMethodSignature",
802                  "computed": false,
803                  "optional": true,
804                  "key": {
805                    "type": "Identifier",
806                    "name": "c",
807                    "decorators": [],
808                    "loc": {
809                      "start": {
810                        "line": 25,
811                        "column": 55,
812                        "program": "test-interface.ts"
813                      },
814                      "end": {
815                        "line": 25,
816                        "column": 56,
817                        "program": "test-interface.ts"
818                      }
819                    }
820                  },
821                  "params": [
822                    {
823                      "type": "ArrayPattern",
824                      "elements": [
825                        {
826                          "type": "Identifier",
827                          "name": "a",
828                          "decorators": [],
829                          "loc": {
830                            "start": {
831                              "line": 25,
832                              "column": 59,
833                              "program": "test-interface.ts"
834                            },
835                            "end": {
836                              "line": 25,
837                              "column": 60,
838                              "program": "test-interface.ts"
839                            }
840                          }
841                        },
842                        {
843                          "type": "Identifier",
844                          "name": "b",
845                          "decorators": [],
846                          "loc": {
847                            "start": {
848                              "line": 25,
849                              "column": 62,
850                              "program": "test-interface.ts"
851                            },
852                            "end": {
853                              "line": 25,
854                              "column": 63,
855                              "program": "test-interface.ts"
856                            }
857                          }
858                        }
859                      ],
860                      "loc": {
861                        "start": {
862                          "line": 25,
863                          "column": 58,
864                          "program": "test-interface.ts"
865                        },
866                        "end": {
867                          "line": 25,
868                          "column": 64,
869                          "program": "test-interface.ts"
870                        }
871                      }
872                    }
873                  ],
874                  "typeAnnotation": {
875                    "type": "TSStringKeyword",
876                    "loc": {
877                      "start": {
878                        "line": 25,
879                        "column": 67,
880                        "program": "test-interface.ts"
881                      },
882                      "end": {
883                        "line": 25,
884                        "column": 73,
885                        "program": "test-interface.ts"
886                      }
887                    }
888                  },
889                  "loc": {
890                    "start": {
891                      "line": 25,
892                      "column": 55,
893                      "program": "test-interface.ts"
894                    },
895                    "end": {
896                      "line": 25,
897                      "column": 75,
898                      "program": "test-interface.ts"
899                    }
900                  }
901                }
902              ],
903              "loc": {
904                "start": {
905                  "line": 25,
906                  "column": 31,
907                  "program": "test-interface.ts"
908                },
909                "end": {
910                  "line": 25,
911                  "column": 75,
912                  "program": "test-interface.ts"
913                }
914              }
915            },
916            "loc": {
917              "start": {
918                "line": 25,
919                "column": 5,
920                "program": "test-interface.ts"
921              },
922              "end": {
923                "line": 26,
924                "column": 2,
925                "program": "test-interface.ts"
926              }
927            }
928          }
929        ],
930        "loc": {
931          "start": {
932            "line": 17,
933            "column": 15,
934            "program": "test-interface.ts"
935          },
936          "end": {
937            "line": 26,
938            "column": 2,
939            "program": "test-interface.ts"
940          }
941        }
942      },
943      "id": {
944        "type": "Identifier",
945        "name": "foo",
946        "decorators": [],
947        "loc": {
948          "start": {
949            "line": 17,
950            "column": 11,
951            "program": "test-interface.ts"
952          },
953          "end": {
954            "line": 17,
955            "column": 14,
956            "program": "test-interface.ts"
957          }
958        }
959      },
960      "extends": [],
961      "loc": {
962        "start": {
963          "line": 17,
964          "column": 1,
965          "program": "test-interface.ts"
966        },
967        "end": {
968          "line": 26,
969          "column": 2,
970          "program": "test-interface.ts"
971        }
972      }
973    },
974    {
975      "type": "TSInterfaceDeclaration",
976      "body": {
977        "type": "TSInterfaceBody",
978        "body": [
979          {
980            "type": "TSPropertySignature",
981            "computed": false,
982            "optional": true,
983            "readonly": true,
984            "key": {
985              "type": "Identifier",
986              "name": "a",
987              "decorators": [],
988              "loc": {
989                "start": {
990                  "line": 29,
991                  "column": 14,
992                  "program": "test-interface.ts"
993                },
994                "end": {
995                  "line": 29,
996                  "column": 15,
997                  "program": "test-interface.ts"
998                }
999              }
1000            },
1001            "typeAnnotation": {
1002              "type": "TSNumberKeyword",
1003              "loc": {
1004                "start": {
1005                  "line": 29,
1006                  "column": 18,
1007                  "program": "test-interface.ts"
1008                },
1009                "end": {
1010                  "line": 29,
1011                  "column": 24,
1012                  "program": "test-interface.ts"
1013                }
1014              }
1015            },
1016            "loc": {
1017              "start": {
1018                "line": 29,
1019                "column": 5,
1020                "program": "test-interface.ts"
1021              },
1022              "end": {
1023                "line": 29,
1024                "column": 25,
1025                "program": "test-interface.ts"
1026              }
1027            }
1028          },
1029          {
1030            "type": "TSPropertySignature",
1031            "computed": false,
1032            "optional": false,
1033            "readonly": true,
1034            "key": {
1035              "type": "Identifier",
1036              "name": "b",
1037              "decorators": [],
1038              "loc": {
1039                "start": {
1040                  "line": 30,
1041                  "column": 14,
1042                  "program": "test-interface.ts"
1043                },
1044                "end": {
1045                  "line": 30,
1046                  "column": 15,
1047                  "program": "test-interface.ts"
1048                }
1049              }
1050            },
1051            "typeAnnotation": {
1052              "type": "TSUnionType",
1053              "types": [
1054                {
1055                  "type": "TSStringKeyword",
1056                  "loc": {
1057                    "start": {
1058                      "line": 30,
1059                      "column": 17,
1060                      "program": "test-interface.ts"
1061                    },
1062                    "end": {
1063                      "line": 30,
1064                      "column": 23,
1065                      "program": "test-interface.ts"
1066                    }
1067                  }
1068                },
1069                {
1070                  "type": "TSBooleanKeyword",
1071                  "loc": {
1072                    "start": {
1073                      "line": 30,
1074                      "column": 26,
1075                      "program": "test-interface.ts"
1076                    },
1077                    "end": {
1078                      "line": 30,
1079                      "column": 33,
1080                      "program": "test-interface.ts"
1081                    }
1082                  }
1083                }
1084              ],
1085              "loc": {
1086                "start": {
1087                  "line": 30,
1088                  "column": 17,
1089                  "program": "test-interface.ts"
1090                },
1091                "end": {
1092                  "line": 30,
1093                  "column": 33,
1094                  "program": "test-interface.ts"
1095                }
1096              }
1097            },
1098            "loc": {
1099              "start": {
1100                "line": 30,
1101                "column": 5,
1102                "program": "test-interface.ts"
1103              },
1104              "end": {
1105                "line": 30,
1106                "column": 34,
1107                "program": "test-interface.ts"
1108              }
1109            }
1110          },
1111          {
1112            "type": "TSIndexSignature",
1113            "parameters": {
1114              "type": "Identifier",
1115              "name": "a",
1116              "typeAnnotation": {
1117                "type": "TSNumberKeyword",
1118                "loc": {
1119                  "start": {
1120                    "line": 31,
1121                    "column": 17,
1122                    "program": "test-interface.ts"
1123                  },
1124                  "end": {
1125                    "line": 31,
1126                    "column": 23,
1127                    "program": "test-interface.ts"
1128                  }
1129                }
1130              },
1131              "decorators": [],
1132              "loc": {
1133                "start": {
1134                  "line": 31,
1135                  "column": 15,
1136                  "program": "test-interface.ts"
1137                },
1138                "end": {
1139                  "line": 31,
1140                  "column": 16,
1141                  "program": "test-interface.ts"
1142                }
1143              }
1144            },
1145            "typeAnnotation": {
1146              "type": "TSNumberKeyword",
1147              "loc": {
1148                "start": {
1149                  "line": 31,
1150                  "column": 25,
1151                  "program": "test-interface.ts"
1152                },
1153                "end": {
1154                  "line": 31,
1155                  "column": 31,
1156                  "program": "test-interface.ts"
1157                }
1158              }
1159            },
1160            "readonly": true,
1161            "loc": {
1162              "start": {
1163                "line": 31,
1164                "column": 5,
1165                "program": "test-interface.ts"
1166              },
1167              "end": {
1168                "line": 32,
1169                "column": 2,
1170                "program": "test-interface.ts"
1171              }
1172            }
1173          }
1174        ],
1175        "loc": {
1176          "start": {
1177            "line": 28,
1178            "column": 15,
1179            "program": "test-interface.ts"
1180          },
1181          "end": {
1182            "line": 32,
1183            "column": 2,
1184            "program": "test-interface.ts"
1185          }
1186        }
1187      },
1188      "id": {
1189        "type": "Identifier",
1190        "name": "bar",
1191        "decorators": [],
1192        "loc": {
1193          "start": {
1194            "line": 28,
1195            "column": 11,
1196            "program": "test-interface.ts"
1197          },
1198          "end": {
1199            "line": 28,
1200            "column": 14,
1201            "program": "test-interface.ts"
1202          }
1203        }
1204      },
1205      "extends": [],
1206      "loc": {
1207        "start": {
1208          "line": 28,
1209          "column": 1,
1210          "program": "test-interface.ts"
1211        },
1212        "end": {
1213          "line": 32,
1214          "column": 2,
1215          "program": "test-interface.ts"
1216        }
1217      }
1218    }
1219  ],
1220  "loc": {
1221    "start": {
1222      "line": 1,
1223      "column": 1,
1224      "program": "test-interface.ts"
1225    },
1226    "end": {
1227      "line": 32,
1228      "column": 2,
1229      "program": "test-interface.ts"
1230    }
1231  }
1232}
1233