• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "FunctionDeclaration",
6      "function": {
7        "type": "ScriptFunction",
8        "id": {
9          "type": "Identifier",
10          "name": "func1",
11          "loc": {
12            "start": {
13              "line": 17,
14              "column": 10
15            },
16            "end": {
17              "line": 17,
18              "column": 15
19            }
20          }
21        },
22        "generator": false,
23        "async": false,
24        "expression": false,
25        "params": [
26          {
27            "type": "Identifier",
28            "name": "a",
29            "typeAnnotation": {
30              "type": "TSNumberKeyword",
31              "loc": {
32                "start": {
33                  "line": 17,
34                  "column": 19
35                },
36                "end": {
37                  "line": 17,
38                  "column": 25
39                }
40              }
41            },
42            "loc": {
43              "start": {
44                "line": 17,
45                "column": 16
46              },
47              "end": {
48                "line": 17,
49                "column": 17
50              }
51            }
52          },
53          {
54            "type": "Identifier",
55            "name": "b",
56            "typeAnnotation": {
57              "type": "TSStringKeyword",
58              "loc": {
59                "start": {
60                  "line": 17,
61                  "column": 30
62                },
63                "end": {
64                  "line": 17,
65                  "column": 36
66                }
67              }
68            },
69            "loc": {
70              "start": {
71                "line": 17,
72                "column": 27
73              },
74              "end": {
75                "line": 17,
76                "column": 28
77              }
78            }
79          }
80        ],
81        "body": {
82          "type": "BlockStatement",
83          "statements": [],
84          "loc": {
85            "start": {
86              "line": 17,
87              "column": 38
88            },
89            "end": {
90              "line": 17,
91              "column": 41
92            }
93          }
94        },
95        "loc": {
96          "start": {
97            "line": 17,
98            "column": 1
99          },
100          "end": {
101            "line": 17,
102            "column": 41
103          }
104        }
105      },
106      "loc": {
107        "start": {
108          "line": 17,
109          "column": 1
110        },
111        "end": {
112          "line": 17,
113          "column": 41
114        }
115      }
116    },
117    {
118      "type": "FunctionDeclaration",
119      "function": {
120        "type": "ScriptFunction",
121        "id": {
122          "type": "Identifier",
123          "name": "func2",
124          "loc": {
125            "start": {
126              "line": 18,
127              "column": 10
128            },
129            "end": {
130              "line": 18,
131              "column": 15
132            }
133          }
134        },
135        "generator": false,
136        "async": false,
137        "expression": false,
138        "params": [
139          {
140            "type": "AssignmentPattern",
141            "left": {
142              "type": "Identifier",
143              "name": "a",
144              "typeAnnotation": {
145                "type": "TSBooleanKeyword",
146                "loc": {
147                  "start": {
148                    "line": 18,
149                    "column": 19
150                  },
151                  "end": {
152                    "line": 18,
153                    "column": 26
154                  }
155                }
156              },
157              "loc": {
158                "start": {
159                  "line": 18,
160                  "column": 16
161                },
162                "end": {
163                  "line": 18,
164                  "column": 17
165                }
166              }
167            },
168            "right": {
169              "type": "BooleanLiteral",
170              "value": true,
171              "loc": {
172                "start": {
173                  "line": 18,
174                  "column": 29
175                },
176                "end": {
177                  "line": 18,
178                  "column": 33
179                }
180              }
181            },
182            "loc": {
183              "start": {
184                "line": 18,
185                "column": 16
186              },
187              "end": {
188                "line": 18,
189                "column": 33
190              }
191            }
192          },
193          {
194            "type": "RestElement",
195            "argument": {
196              "type": "Identifier",
197              "name": "b",
198              "typeAnnotation": {
199                "type": "TSArrayType",
200                "elementType": {
201                  "type": "TSNumberKeyword",
202                  "loc": {
203                    "start": {
204                      "line": 18,
205                      "column": 41
206                    },
207                    "end": {
208                      "line": 18,
209                      "column": 47
210                    }
211                  }
212                },
213                "loc": {
214                  "start": {
215                    "line": 18,
216                    "column": 41
217                  },
218                  "end": {
219                    "line": 18,
220                    "column": 49
221                  }
222                }
223              },
224              "loc": {
225                "start": {
226                  "line": 18,
227                  "column": 38
228                },
229                "end": {
230                  "line": 18,
231                  "column": 39
232                }
233              }
234            },
235            "loc": {
236              "start": {
237                "line": 18,
238                "column": 35
239              },
240              "end": {
241                "line": 18,
242                "column": 39
243              }
244            }
245          }
246        ],
247        "body": {
248          "type": "BlockStatement",
249          "statements": [],
250          "loc": {
251            "start": {
252              "line": 18,
253              "column": 51
254            },
255            "end": {
256              "line": 18,
257              "column": 54
258            }
259          }
260        },
261        "loc": {
262          "start": {
263            "line": 18,
264            "column": 1
265          },
266          "end": {
267            "line": 18,
268            "column": 54
269          }
270        }
271      },
272      "loc": {
273        "start": {
274          "line": 18,
275          "column": 1
276        },
277        "end": {
278          "line": 18,
279          "column": 54
280        }
281      }
282    },
283    {
284      "type": "FunctionDeclaration",
285      "function": {
286        "type": "ScriptFunction",
287        "id": {
288          "type": "Identifier",
289          "name": "func3",
290          "loc": {
291            "start": {
292              "line": 19,
293              "column": 10
294            },
295            "end": {
296              "line": 19,
297              "column": 15
298            }
299          }
300        },
301        "generator": false,
302        "async": false,
303        "expression": false,
304        "params": [
305          {
306            "type": "AssignmentPattern",
307            "left": {
308              "type": "Identifier",
309              "name": "a",
310              "loc": {
311                "start": {
312                  "line": 19,
313                  "column": 16
314                },
315                "end": {
316                  "line": 19,
317                  "column": 17
318                }
319              }
320            },
321            "right": {
322              "type": "NumberLiteral",
323              "value": 6,
324              "loc": {
325                "start": {
326                  "line": 19,
327                  "column": 20
328                },
329                "end": {
330                  "line": 19,
331                  "column": 21
332                }
333              }
334            },
335            "loc": {
336              "start": {
337                "line": 19,
338                "column": 16
339              },
340              "end": {
341                "line": 19,
342                "column": 21
343              }
344            }
345          },
346          {
347            "type": "ArrayPattern",
348            "elements": [
349              {
350                "type": "Identifier",
351                "name": "c",
352                "loc": {
353                  "start": {
354                    "line": 19,
355                    "column": 24
356                  },
357                  "end": {
358                    "line": 19,
359                    "column": 25
360                  }
361                }
362              },
363              {
364                "type": "Identifier",
365                "name": "d",
366                "loc": {
367                  "start": {
368                    "line": 19,
369                    "column": 27
370                  },
371                  "end": {
372                    "line": 19,
373                    "column": 28
374                  }
375                }
376              }
377            ],
378            "loc": {
379              "start": {
380                "line": 19,
381                "column": 23
382              },
383              "end": {
384                "line": 19,
385                "column": 29
386              }
387            }
388          },
389          {
390            "type": "Identifier",
391            "name": "b",
392            "optional": true,
393            "loc": {
394              "start": {
395                "line": 19,
396                "column": 31
397              },
398              "end": {
399                "line": 19,
400                "column": 32
401              }
402            }
403          }
404        ],
405        "body": {
406          "type": "BlockStatement",
407          "statements": [],
408          "loc": {
409            "start": {
410              "line": 19,
411              "column": 35
412            },
413            "end": {
414              "line": 19,
415              "column": 38
416            }
417          }
418        },
419        "loc": {
420          "start": {
421            "line": 19,
422            "column": 1
423          },
424          "end": {
425            "line": 19,
426            "column": 38
427          }
428        }
429      },
430      "loc": {
431        "start": {
432          "line": 19,
433          "column": 1
434        },
435        "end": {
436          "line": 19,
437          "column": 38
438        }
439      }
440    },
441    {
442      "type": "FunctionDeclaration",
443      "function": {
444        "type": "ScriptFunction",
445        "id": {
446          "type": "Identifier",
447          "name": "func4",
448          "loc": {
449            "start": {
450              "line": 20,
451              "column": 10
452            },
453            "end": {
454              "line": 20,
455              "column": 15
456            }
457          }
458        },
459        "generator": false,
460        "async": false,
461        "expression": false,
462        "params": [
463          {
464            "type": "ObjectPattern",
465            "properties": [],
466            "typeAnnotation": {
467              "type": "TSNumberKeyword",
468              "loc": {
469                "start": {
470                  "line": 20,
471                  "column": 21
472                },
473                "end": {
474                  "line": 20,
475                  "column": 27
476                }
477              }
478            },
479            "loc": {
480              "start": {
481                "line": 20,
482                "column": 16
483              },
484              "end": {
485                "line": 20,
486                "column": 19
487              }
488            }
489          },
490          {
491            "type": "ArrayPattern",
492            "elements": [
493              {
494                "type": "Identifier",
495                "name": "a",
496                "loc": {
497                  "start": {
498                    "line": 20,
499                    "column": 30
500                  },
501                  "end": {
502                    "line": 20,
503                    "column": 31
504                  }
505                }
506              },
507              {
508                "type": "Identifier",
509                "name": "b",
510                "loc": {
511                  "start": {
512                    "line": 20,
513                    "column": 33
514                  },
515                  "end": {
516                    "line": 20,
517                    "column": 34
518                  }
519                }
520              }
521            ],
522            "typeAnnotation": {
523              "type": "TSArrayType",
524              "elementType": {
525                "type": "TSStringKeyword",
526                "loc": {
527                  "start": {
528                    "line": 20,
529                    "column": 37
530                  },
531                  "end": {
532                    "line": 20,
533                    "column": 43
534                  }
535                }
536              },
537              "loc": {
538                "start": {
539                  "line": 20,
540                  "column": 37
541                },
542                "end": {
543                  "line": 20,
544                  "column": 45
545                }
546              }
547            },
548            "loc": {
549              "start": {
550                "line": 20,
551                "column": 29
552              },
553              "end": {
554                "line": 20,
555                "column": 35
556              }
557            }
558          }
559        ],
560        "body": {
561          "type": "BlockStatement",
562          "statements": [],
563          "loc": {
564            "start": {
565              "line": 20,
566              "column": 47
567            },
568            "end": {
569              "line": 20,
570              "column": 50
571            }
572          }
573        },
574        "loc": {
575          "start": {
576            "line": 20,
577            "column": 1
578          },
579          "end": {
580            "line": 20,
581            "column": 50
582          }
583        }
584      },
585      "loc": {
586        "start": {
587          "line": 20,
588          "column": 1
589        },
590        "end": {
591          "line": 20,
592          "column": 50
593        }
594      }
595    },
596    {
597      "type": "FunctionDeclaration",
598      "function": {
599        "type": "ScriptFunction",
600        "id": {
601          "type": "Identifier",
602          "name": "func5",
603          "loc": {
604            "start": {
605              "line": 21,
606              "column": 10
607            },
608            "end": {
609              "line": 21,
610              "column": 15
611            }
612          }
613        },
614        "generator": false,
615        "async": false,
616        "expression": false,
617        "params": [
618          {
619            "type": "AssignmentPattern",
620            "left": {
621              "type": "ArrayPattern",
622              "elements": [
623                {
624                  "type": "Identifier",
625                  "name": "a",
626                  "loc": {
627                    "start": {
628                      "line": 21,
629                      "column": 17
630                    },
631                    "end": {
632                      "line": 21,
633                      "column": 18
634                    }
635                  }
636                },
637                {
638                  "type": "Identifier",
639                  "name": "b",
640                  "loc": {
641                    "start": {
642                      "line": 21,
643                      "column": 20
644                    },
645                    "end": {
646                      "line": 21,
647                      "column": 21
648                    }
649                  }
650                }
651              ],
652              "typeAnnotation": {
653                "type": "TSTupleType",
654                "elementTypes": [
655                  {
656                    "type": "TSNumberKeyword",
657                    "loc": {
658                      "start": {
659                        "line": 21,
660                        "column": 25
661                      },
662                      "end": {
663                        "line": 21,
664                        "column": 31
665                      }
666                    }
667                  },
668                  {
669                    "type": "TSStringKeyword",
670                    "loc": {
671                      "start": {
672                        "line": 21,
673                        "column": 33
674                      },
675                      "end": {
676                        "line": 21,
677                        "column": 39
678                      }
679                    }
680                  }
681                ],
682                "loc": {
683                  "start": {
684                    "line": 21,
685                    "column": 24
686                  },
687                  "end": {
688                    "line": 21,
689                    "column": 40
690                  }
691                }
692              },
693              "loc": {
694                "start": {
695                  "line": 21,
696                  "column": 16
697                },
698                "end": {
699                  "line": 21,
700                  "column": 22
701                }
702              }
703            },
704            "right": {
705              "type": "ArrayExpression",
706              "elements": [
707                {
708                  "type": "NumberLiteral",
709                  "value": 1,
710                  "loc": {
711                    "start": {
712                      "line": 21,
713                      "column": 44
714                    },
715                    "end": {
716                      "line": 21,
717                      "column": 45
718                    }
719                  }
720                },
721                {
722                  "type": "StringLiteral",
723                  "value": "foo",
724                  "loc": {
725                    "start": {
726                      "line": 21,
727                      "column": 47
728                    },
729                    "end": {
730                      "line": 21,
731                      "column": 52
732                    }
733                  }
734                }
735              ],
736              "loc": {
737                "start": {
738                  "line": 21,
739                  "column": 43
740                },
741                "end": {
742                  "line": 21,
743                  "column": 53
744                }
745              }
746            },
747            "loc": {
748              "start": {
749                "line": 21,
750                "column": 16
751              },
752              "end": {
753                "line": 21,
754                "column": 53
755              }
756            }
757          }
758        ],
759        "body": {
760          "type": "BlockStatement",
761          "statements": [],
762          "loc": {
763            "start": {
764              "line": 21,
765              "column": 55
766            },
767            "end": {
768              "line": 21,
769              "column": 58
770            }
771          }
772        },
773        "loc": {
774          "start": {
775            "line": 21,
776            "column": 1
777          },
778          "end": {
779            "line": 21,
780            "column": 58
781          }
782        }
783      },
784      "loc": {
785        "start": {
786          "line": 21,
787          "column": 1
788        },
789        "end": {
790          "line": 21,
791          "column": 58
792        }
793      }
794    },
795    {
796      "type": "FunctionDeclaration",
797      "function": {
798        "type": "ScriptFunction",
799        "id": {
800          "type": "Identifier",
801          "name": "func6",
802          "loc": {
803            "start": {
804              "line": 22,
805              "column": 10
806            },
807            "end": {
808              "line": 22,
809              "column": 15
810            }
811          }
812        },
813        "generator": false,
814        "async": false,
815        "expression": false,
816        "params": [
817          {
818            "type": "AssignmentPattern",
819            "left": {
820              "type": "ObjectPattern",
821              "properties": [
822                {
823                  "type": "Property",
824                  "method": false,
825                  "shorthand": true,
826                  "computed": false,
827                  "key": {
828                    "type": "Identifier",
829                    "name": "a",
830                    "loc": {
831                      "start": {
832                        "line": 22,
833                        "column": 18
834                      },
835                      "end": {
836                        "line": 22,
837                        "column": 19
838                      }
839                    }
840                  },
841                  "value": {
842                    "type": "Identifier",
843                    "name": "a",
844                    "loc": {
845                      "start": {
846                        "line": 22,
847                        "column": 18
848                      },
849                      "end": {
850                        "line": 22,
851                        "column": 19
852                      }
853                    }
854                  },
855                  "kind": "init",
856                  "loc": {
857                    "start": {
858                      "line": 22,
859                      "column": 18
860                    },
861                    "end": {
862                      "line": 22,
863                      "column": 19
864                    }
865                  }
866                },
867                {
868                  "type": "Property",
869                  "method": false,
870                  "shorthand": true,
871                  "computed": false,
872                  "key": {
873                    "type": "Identifier",
874                    "name": "b",
875                    "loc": {
876                      "start": {
877                        "line": 22,
878                        "column": 21
879                      },
880                      "end": {
881                        "line": 22,
882                        "column": 22
883                      }
884                    }
885                  },
886                  "value": {
887                    "type": "Identifier",
888                    "name": "b",
889                    "loc": {
890                      "start": {
891                        "line": 22,
892                        "column": 21
893                      },
894                      "end": {
895                        "line": 22,
896                        "column": 22
897                      }
898                    }
899                  },
900                  "kind": "init",
901                  "loc": {
902                    "start": {
903                      "line": 22,
904                      "column": 21
905                    },
906                    "end": {
907                      "line": 22,
908                      "column": 22
909                    }
910                  }
911                }
912              ],
913              "typeAnnotation": {
914                "type": "TSTypeLiteral",
915                "members": [
916                  {
917                    "type": "TSPropertySignature",
918                    "computed": false,
919                    "optional": false,
920                    "readonly": false,
921                    "key": {
922                      "type": "Identifier",
923                      "name": "a",
924                      "loc": {
925                        "start": {
926                          "line": 22,
927                          "column": 28
928                        },
929                        "end": {
930                          "line": 22,
931                          "column": 29
932                        }
933                      }
934                    },
935                    "typeAnnotation": {
936                      "type": "TSNumberKeyword",
937                      "loc": {
938                        "start": {
939                          "line": 22,
940                          "column": 31
941                        },
942                        "end": {
943                          "line": 22,
944                          "column": 37
945                        }
946                      }
947                    },
948                    "loc": {
949                      "start": {
950                        "line": 22,
951                        "column": 28
952                      },
953                      "end": {
954                        "line": 22,
955                        "column": 38
956                      }
957                    }
958                  },
959                  {
960                    "type": "TSPropertySignature",
961                    "computed": false,
962                    "optional": false,
963                    "readonly": false,
964                    "key": {
965                      "type": "Identifier",
966                      "name": "b",
967                      "loc": {
968                        "start": {
969                          "line": 22,
970                          "column": 39
971                        },
972                        "end": {
973                          "line": 22,
974                          "column": 40
975                        }
976                      }
977                    },
978                    "typeAnnotation": {
979                      "type": "TSNumberKeyword",
980                      "loc": {
981                        "start": {
982                          "line": 22,
983                          "column": 42
984                        },
985                        "end": {
986                          "line": 22,
987                          "column": 48
988                        }
989                      }
990                    },
991                    "loc": {
992                      "start": {
993                        "line": 22,
994                        "column": 39
995                      },
996                      "end": {
997                        "line": 22,
998                        "column": 50
999                      }
1000                    }
1001                  }
1002                ],
1003                "loc": {
1004                  "start": {
1005                    "line": 22,
1006                    "column": 26
1007                  },
1008                  "end": {
1009                    "line": 22,
1010                    "column": 50
1011                  }
1012                }
1013              },
1014              "loc": {
1015                "start": {
1016                  "line": 22,
1017                  "column": 16
1018                },
1019                "end": {
1020                  "line": 22,
1021                  "column": 24
1022                }
1023              }
1024            },
1025            "right": {
1026              "type": "ObjectExpression",
1027              "properties": [
1028                {
1029                  "type": "Property",
1030                  "method": false,
1031                  "shorthand": false,
1032                  "computed": false,
1033                  "key": {
1034                    "type": "Identifier",
1035                    "name": "a",
1036                    "loc": {
1037                      "start": {
1038                        "line": 22,
1039                        "column": 55
1040                      },
1041                      "end": {
1042                        "line": 22,
1043                        "column": 56
1044                      }
1045                    }
1046                  },
1047                  "value": {
1048                    "type": "NumberLiteral",
1049                    "value": 0,
1050                    "loc": {
1051                      "start": {
1052                        "line": 22,
1053                        "column": 58
1054                      },
1055                      "end": {
1056                        "line": 22,
1057                        "column": 59
1058                      }
1059                    }
1060                  },
1061                  "kind": "init",
1062                  "loc": {
1063                    "start": {
1064                      "line": 22,
1065                      "column": 55
1066                    },
1067                    "end": {
1068                      "line": 22,
1069                      "column": 59
1070                    }
1071                  }
1072                },
1073                {
1074                  "type": "Property",
1075                  "method": false,
1076                  "shorthand": false,
1077                  "computed": false,
1078                  "key": {
1079                    "type": "Identifier",
1080                    "name": "b",
1081                    "loc": {
1082                      "start": {
1083                        "line": 22,
1084                        "column": 61
1085                      },
1086                      "end": {
1087                        "line": 22,
1088                        "column": 62
1089                      }
1090                    }
1091                  },
1092                  "value": {
1093                    "type": "NumberLiteral",
1094                    "value": 0,
1095                    "loc": {
1096                      "start": {
1097                        "line": 22,
1098                        "column": 64
1099                      },
1100                      "end": {
1101                        "line": 22,
1102                        "column": 65
1103                      }
1104                    }
1105                  },
1106                  "kind": "init",
1107                  "loc": {
1108                    "start": {
1109                      "line": 22,
1110                      "column": 61
1111                    },
1112                    "end": {
1113                      "line": 22,
1114                      "column": 65
1115                    }
1116                  }
1117                }
1118              ],
1119              "loc": {
1120                "start": {
1121                  "line": 22,
1122                  "column": 53
1123                },
1124                "end": {
1125                  "line": 22,
1126                  "column": 67
1127                }
1128              }
1129            },
1130            "loc": {
1131              "start": {
1132                "line": 22,
1133                "column": 16
1134              },
1135              "end": {
1136                "line": 22,
1137                "column": 67
1138              }
1139            }
1140          }
1141        ],
1142        "body": {
1143          "type": "BlockStatement",
1144          "statements": [],
1145          "loc": {
1146            "start": {
1147              "line": 22,
1148              "column": 69
1149            },
1150            "end": {
1151              "line": 22,
1152              "column": 72
1153            }
1154          }
1155        },
1156        "loc": {
1157          "start": {
1158            "line": 22,
1159            "column": 1
1160          },
1161          "end": {
1162            "line": 22,
1163            "column": 72
1164          }
1165        }
1166      },
1167      "loc": {
1168        "start": {
1169          "line": 22,
1170          "column": 1
1171        },
1172        "end": {
1173          "line": 22,
1174          "column": 72
1175        }
1176      }
1177    },
1178    {
1179      "type": "TSDeclareFunction",
1180      "function": {
1181        "type": "ScriptFunction",
1182        "id": {
1183          "type": "Identifier",
1184          "name": "func7",
1185          "loc": {
1186            "start": {
1187              "line": 23,
1188              "column": 18
1189            },
1190            "end": {
1191              "line": 23,
1192              "column": 23
1193            }
1194          }
1195        },
1196        "generator": false,
1197        "async": false,
1198        "expression": false,
1199        "params": [
1200          {
1201            "type": "ArrayPattern",
1202            "elements": [
1203              {
1204                "type": "Identifier",
1205                "name": "a",
1206                "loc": {
1207                  "start": {
1208                    "line": 23,
1209                    "column": 25
1210                  },
1211                  "end": {
1212                    "line": 23,
1213                    "column": 26
1214                  }
1215                }
1216              },
1217              {
1218                "type": "Identifier",
1219                "name": "b",
1220                "loc": {
1221                  "start": {
1222                    "line": 23,
1223                    "column": 28
1224                  },
1225                  "end": {
1226                    "line": 23,
1227                    "column": 29
1228                  }
1229                }
1230              }
1231            ],
1232            "typeAnnotation": {
1233              "type": "TSTupleType",
1234              "elementTypes": [
1235                {
1236                  "type": "TSNumberKeyword",
1237                  "loc": {
1238                    "start": {
1239                      "line": 23,
1240                      "column": 33
1241                    },
1242                    "end": {
1243                      "line": 23,
1244                      "column": 39
1245                    }
1246                  }
1247                },
1248                {
1249                  "type": "TSStringKeyword",
1250                  "loc": {
1251                    "start": {
1252                      "line": 23,
1253                      "column": 41
1254                    },
1255                    "end": {
1256                      "line": 23,
1257                      "column": 47
1258                    }
1259                  }
1260                }
1261              ],
1262              "loc": {
1263                "start": {
1264                  "line": 23,
1265                  "column": 32
1266                },
1267                "end": {
1268                  "line": 23,
1269                  "column": 48
1270                }
1271              }
1272            },
1273            "loc": {
1274              "start": {
1275                "line": 23,
1276                "column": 24
1277              },
1278              "end": {
1279                "line": 23,
1280                "column": 30
1281              }
1282            }
1283          }
1284        ],
1285        "declare": true,
1286        "loc": {
1287          "start": {
1288            "line": 23,
1289            "column": 9
1290          },
1291          "end": {
1292            "line": 24,
1293            "column": 8
1294          }
1295        }
1296      },
1297      "loc": {
1298        "start": {
1299          "line": 23,
1300          "column": 9
1301        },
1302        "end": {
1303          "line": 24,
1304          "column": 8
1305        }
1306      }
1307    },
1308    {
1309      "type": "TSDeclareFunction",
1310      "function": {
1311        "type": "ScriptFunction",
1312        "id": {
1313          "type": "Identifier",
1314          "name": "func8",
1315          "loc": {
1316            "start": {
1317              "line": 24,
1318              "column": 18
1319            },
1320            "end": {
1321              "line": 24,
1322              "column": 23
1323            }
1324          }
1325        },
1326        "generator": false,
1327        "async": false,
1328        "expression": false,
1329        "params": [
1330          {
1331            "type": "ObjectPattern",
1332            "properties": [
1333              {
1334                "type": "Property",
1335                "method": false,
1336                "shorthand": true,
1337                "computed": false,
1338                "key": {
1339                  "type": "Identifier",
1340                  "name": "a",
1341                  "loc": {
1342                    "start": {
1343                      "line": 24,
1344                      "column": 26
1345                    },
1346                    "end": {
1347                      "line": 24,
1348                      "column": 27
1349                    }
1350                  }
1351                },
1352                "value": {
1353                  "type": "Identifier",
1354                  "name": "a",
1355                  "loc": {
1356                    "start": {
1357                      "line": 24,
1358                      "column": 26
1359                    },
1360                    "end": {
1361                      "line": 24,
1362                      "column": 27
1363                    }
1364                  }
1365                },
1366                "kind": "init",
1367                "loc": {
1368                  "start": {
1369                    "line": 24,
1370                    "column": 26
1371                  },
1372                  "end": {
1373                    "line": 24,
1374                    "column": 27
1375                  }
1376                }
1377              },
1378              {
1379                "type": "Property",
1380                "method": false,
1381                "shorthand": true,
1382                "computed": false,
1383                "key": {
1384                  "type": "Identifier",
1385                  "name": "b",
1386                  "loc": {
1387                    "start": {
1388                      "line": 24,
1389                      "column": 29
1390                    },
1391                    "end": {
1392                      "line": 24,
1393                      "column": 30
1394                    }
1395                  }
1396                },
1397                "value": {
1398                  "type": "Identifier",
1399                  "name": "b",
1400                  "loc": {
1401                    "start": {
1402                      "line": 24,
1403                      "column": 29
1404                    },
1405                    "end": {
1406                      "line": 24,
1407                      "column": 30
1408                    }
1409                  }
1410                },
1411                "kind": "init",
1412                "loc": {
1413                  "start": {
1414                    "line": 24,
1415                    "column": 29
1416                  },
1417                  "end": {
1418                    "line": 24,
1419                    "column": 30
1420                  }
1421                }
1422              }
1423            ],
1424            "typeAnnotation": {
1425              "type": "TSTypeLiteral",
1426              "members": [
1427                {
1428                  "type": "TSPropertySignature",
1429                  "computed": false,
1430                  "optional": false,
1431                  "readonly": false,
1432                  "key": {
1433                    "type": "Identifier",
1434                    "name": "a",
1435                    "loc": {
1436                      "start": {
1437                        "line": 24,
1438                        "column": 36
1439                      },
1440                      "end": {
1441                        "line": 24,
1442                        "column": 37
1443                      }
1444                    }
1445                  },
1446                  "typeAnnotation": {
1447                    "type": "TSNumberKeyword",
1448                    "loc": {
1449                      "start": {
1450                        "line": 24,
1451                        "column": 39
1452                      },
1453                      "end": {
1454                        "line": 24,
1455                        "column": 45
1456                      }
1457                    }
1458                  },
1459                  "loc": {
1460                    "start": {
1461                      "line": 24,
1462                      "column": 36
1463                    },
1464                    "end": {
1465                      "line": 24,
1466                      "column": 46
1467                    }
1468                  }
1469                },
1470                {
1471                  "type": "TSPropertySignature",
1472                  "computed": false,
1473                  "optional": false,
1474                  "readonly": false,
1475                  "key": {
1476                    "type": "Identifier",
1477                    "name": "b",
1478                    "loc": {
1479                      "start": {
1480                        "line": 24,
1481                        "column": 47
1482                      },
1483                      "end": {
1484                        "line": 24,
1485                        "column": 48
1486                      }
1487                    }
1488                  },
1489                  "typeAnnotation": {
1490                    "type": "TSNumberKeyword",
1491                    "loc": {
1492                      "start": {
1493                        "line": 24,
1494                        "column": 50
1495                      },
1496                      "end": {
1497                        "line": 24,
1498                        "column": 56
1499                      }
1500                    }
1501                  },
1502                  "loc": {
1503                    "start": {
1504                      "line": 24,
1505                      "column": 47
1506                    },
1507                    "end": {
1508                      "line": 24,
1509                      "column": 58
1510                    }
1511                  }
1512                }
1513              ],
1514              "loc": {
1515                "start": {
1516                  "line": 24,
1517                  "column": 34
1518                },
1519                "end": {
1520                  "line": 24,
1521                  "column": 58
1522                }
1523              }
1524            },
1525            "loc": {
1526              "start": {
1527                "line": 24,
1528                "column": 24
1529              },
1530              "end": {
1531                "line": 24,
1532                "column": 32
1533              }
1534            }
1535          }
1536        ],
1537        "declare": true,
1538        "loc": {
1539          "start": {
1540            "line": 24,
1541            "column": 9
1542          },
1543          "end": {
1544            "line": 25,
1545            "column": 8
1546          }
1547        }
1548      },
1549      "loc": {
1550        "start": {
1551          "line": 24,
1552          "column": 9
1553        },
1554        "end": {
1555          "line": 25,
1556          "column": 8
1557        }
1558      }
1559    },
1560    {
1561      "type": "TSDeclareFunction",
1562      "function": {
1563        "type": "ScriptFunction",
1564        "id": {
1565          "type": "Identifier",
1566          "name": "func9",
1567          "loc": {
1568            "start": {
1569              "line": 25,
1570              "column": 18
1571            },
1572            "end": {
1573              "line": 25,
1574              "column": 23
1575            }
1576          }
1577        },
1578        "generator": false,
1579        "async": false,
1580        "expression": false,
1581        "params": [
1582          {
1583            "type": "ArrayPattern",
1584            "elements": [
1585              {
1586                "type": "Identifier",
1587                "name": "a",
1588                "loc": {
1589                  "start": {
1590                    "line": 25,
1591                    "column": 25
1592                  },
1593                  "end": {
1594                    "line": 25,
1595                    "column": 26
1596                  }
1597                }
1598              },
1599              {
1600                "type": "Identifier",
1601                "name": "b",
1602                "loc": {
1603                  "start": {
1604                    "line": 25,
1605                    "column": 28
1606                  },
1607                  "end": {
1608                    "line": 25,
1609                    "column": 29
1610                  }
1611                }
1612              }
1613            ],
1614            "typeAnnotation": {
1615              "type": "TSTupleType",
1616              "elementTypes": [
1617                {
1618                  "type": "TSNumberKeyword",
1619                  "loc": {
1620                    "start": {
1621                      "line": 25,
1622                      "column": 34
1623                    },
1624                    "end": {
1625                      "line": 25,
1626                      "column": 40
1627                    }
1628                  }
1629                },
1630                {
1631                  "type": "TSStringKeyword",
1632                  "loc": {
1633                    "start": {
1634                      "line": 25,
1635                      "column": 42
1636                    },
1637                    "end": {
1638                      "line": 25,
1639                      "column": 48
1640                    }
1641                  }
1642                }
1643              ],
1644              "loc": {
1645                "start": {
1646                  "line": 25,
1647                  "column": 33
1648                },
1649                "end": {
1650                  "line": 25,
1651                  "column": 49
1652                }
1653              }
1654            },
1655            "optional": true,
1656            "loc": {
1657              "start": {
1658                "line": 25,
1659                "column": 24
1660              },
1661              "end": {
1662                "line": 25,
1663                "column": 30
1664              }
1665            }
1666          }
1667        ],
1668        "declare": true,
1669        "loc": {
1670          "start": {
1671            "line": 25,
1672            "column": 9
1673          },
1674          "end": {
1675            "line": 26,
1676            "column": 8
1677          }
1678        }
1679      },
1680      "loc": {
1681        "start": {
1682          "line": 25,
1683          "column": 9
1684        },
1685        "end": {
1686          "line": 26,
1687          "column": 8
1688        }
1689      }
1690    },
1691    {
1692      "type": "TSDeclareFunction",
1693      "function": {
1694        "type": "ScriptFunction",
1695        "id": {
1696          "type": "Identifier",
1697          "name": "func10",
1698          "loc": {
1699            "start": {
1700              "line": 26,
1701              "column": 18
1702            },
1703            "end": {
1704              "line": 26,
1705              "column": 24
1706            }
1707          }
1708        },
1709        "generator": false,
1710        "async": false,
1711        "expression": false,
1712        "params": [
1713          {
1714            "type": "ObjectPattern",
1715            "properties": [
1716              {
1717                "type": "Property",
1718                "method": false,
1719                "shorthand": true,
1720                "computed": false,
1721                "key": {
1722                  "type": "Identifier",
1723                  "name": "a",
1724                  "loc": {
1725                    "start": {
1726                      "line": 26,
1727                      "column": 27
1728                    },
1729                    "end": {
1730                      "line": 26,
1731                      "column": 28
1732                    }
1733                  }
1734                },
1735                "value": {
1736                  "type": "Identifier",
1737                  "name": "a",
1738                  "loc": {
1739                    "start": {
1740                      "line": 26,
1741                      "column": 27
1742                    },
1743                    "end": {
1744                      "line": 26,
1745                      "column": 28
1746                    }
1747                  }
1748                },
1749                "kind": "init",
1750                "loc": {
1751                  "start": {
1752                    "line": 26,
1753                    "column": 27
1754                  },
1755                  "end": {
1756                    "line": 26,
1757                    "column": 28
1758                  }
1759                }
1760              },
1761              {
1762                "type": "Property",
1763                "method": false,
1764                "shorthand": true,
1765                "computed": false,
1766                "key": {
1767                  "type": "Identifier",
1768                  "name": "b",
1769                  "loc": {
1770                    "start": {
1771                      "line": 26,
1772                      "column": 30
1773                    },
1774                    "end": {
1775                      "line": 26,
1776                      "column": 31
1777                    }
1778                  }
1779                },
1780                "value": {
1781                  "type": "Identifier",
1782                  "name": "b",
1783                  "loc": {
1784                    "start": {
1785                      "line": 26,
1786                      "column": 30
1787                    },
1788                    "end": {
1789                      "line": 26,
1790                      "column": 31
1791                    }
1792                  }
1793                },
1794                "kind": "init",
1795                "loc": {
1796                  "start": {
1797                    "line": 26,
1798                    "column": 30
1799                  },
1800                  "end": {
1801                    "line": 26,
1802                    "column": 31
1803                  }
1804                }
1805              }
1806            ],
1807            "typeAnnotation": {
1808              "type": "TSTypeLiteral",
1809              "members": [
1810                {
1811                  "type": "TSPropertySignature",
1812                  "computed": false,
1813                  "optional": false,
1814                  "readonly": false,
1815                  "key": {
1816                    "type": "Identifier",
1817                    "name": "a",
1818                    "loc": {
1819                      "start": {
1820                        "line": 26,
1821                        "column": 38
1822                      },
1823                      "end": {
1824                        "line": 26,
1825                        "column": 39
1826                      }
1827                    }
1828                  },
1829                  "typeAnnotation": {
1830                    "type": "TSNumberKeyword",
1831                    "loc": {
1832                      "start": {
1833                        "line": 26,
1834                        "column": 41
1835                      },
1836                      "end": {
1837                        "line": 26,
1838                        "column": 47
1839                      }
1840                    }
1841                  },
1842                  "loc": {
1843                    "start": {
1844                      "line": 26,
1845                      "column": 38
1846                    },
1847                    "end": {
1848                      "line": 26,
1849                      "column": 48
1850                    }
1851                  }
1852                },
1853                {
1854                  "type": "TSPropertySignature",
1855                  "computed": false,
1856                  "optional": false,
1857                  "readonly": false,
1858                  "key": {
1859                    "type": "Identifier",
1860                    "name": "b",
1861                    "loc": {
1862                      "start": {
1863                        "line": 26,
1864                        "column": 49
1865                      },
1866                      "end": {
1867                        "line": 26,
1868                        "column": 50
1869                      }
1870                    }
1871                  },
1872                  "typeAnnotation": {
1873                    "type": "TSNumberKeyword",
1874                    "loc": {
1875                      "start": {
1876                        "line": 26,
1877                        "column": 52
1878                      },
1879                      "end": {
1880                        "line": 26,
1881                        "column": 58
1882                      }
1883                    }
1884                  },
1885                  "loc": {
1886                    "start": {
1887                      "line": 26,
1888                      "column": 49
1889                    },
1890                    "end": {
1891                      "line": 26,
1892                      "column": 60
1893                    }
1894                  }
1895                }
1896              ],
1897              "loc": {
1898                "start": {
1899                  "line": 26,
1900                  "column": 36
1901                },
1902                "end": {
1903                  "line": 26,
1904                  "column": 60
1905                }
1906              }
1907            },
1908            "optional": true,
1909            "loc": {
1910              "start": {
1911                "line": 26,
1912                "column": 25
1913              },
1914              "end": {
1915                "line": 26,
1916                "column": 33
1917              }
1918            }
1919          }
1920        ],
1921        "declare": true,
1922        "loc": {
1923          "start": {
1924            "line": 26,
1925            "column": 9
1926          },
1927          "end": {
1928            "line": 28,
1929            "column": 10
1930          }
1931        }
1932      },
1933      "loc": {
1934        "start": {
1935          "line": 26,
1936          "column": 9
1937        },
1938        "end": {
1939          "line": 28,
1940          "column": 10
1941        }
1942      }
1943    },
1944    {
1945      "type": "TSInterfaceDeclaration",
1946      "body": {
1947        "type": "TSInterfaceBody",
1948        "body": [
1949          {
1950            "type": "TSCallSignatureDeclaration",
1951            "params": [
1952              {
1953                "type": "Identifier",
1954                "name": "a",
1955                "typeAnnotation": {
1956                  "type": "TSNumberKeyword",
1957                  "loc": {
1958                    "start": {
1959                      "line": 29,
1960                      "column": 9
1961                    },
1962                    "end": {
1963                      "line": 29,
1964                      "column": 15
1965                    }
1966                  }
1967                },
1968                "loc": {
1969                  "start": {
1970                    "line": 29,
1971                    "column": 6
1972                  },
1973                  "end": {
1974                    "line": 29,
1975                    "column": 7
1976                  }
1977                }
1978              },
1979              {
1980                "type": "ObjectPattern",
1981                "properties": [
1982                  {
1983                    "type": "Property",
1984                    "method": false,
1985                    "shorthand": true,
1986                    "computed": false,
1987                    "key": {
1988                      "type": "Identifier",
1989                      "name": "b",
1990                      "loc": {
1991                        "start": {
1992                          "line": 29,
1993                          "column": 19
1994                        },
1995                        "end": {
1996                          "line": 29,
1997                          "column": 20
1998                        }
1999                      }
2000                    },
2001                    "value": {
2002                      "type": "Identifier",
2003                      "name": "b",
2004                      "loc": {
2005                        "start": {
2006                          "line": 29,
2007                          "column": 19
2008                        },
2009                        "end": {
2010                          "line": 29,
2011                          "column": 20
2012                        }
2013                      }
2014                    },
2015                    "kind": "init",
2016                    "loc": {
2017                      "start": {
2018                        "line": 29,
2019                        "column": 19
2020                      },
2021                      "end": {
2022                        "line": 29,
2023                        "column": 20
2024                      }
2025                    }
2026                  },
2027                  {
2028                    "type": "Property",
2029                    "method": false,
2030                    "shorthand": true,
2031                    "computed": false,
2032                    "key": {
2033                      "type": "Identifier",
2034                      "name": "c",
2035                      "loc": {
2036                        "start": {
2037                          "line": 29,
2038                          "column": 22
2039                        },
2040                        "end": {
2041                          "line": 29,
2042                          "column": 23
2043                        }
2044                      }
2045                    },
2046                    "value": {
2047                      "type": "Identifier",
2048                      "name": "c",
2049                      "loc": {
2050                        "start": {
2051                          "line": 29,
2052                          "column": 22
2053                        },
2054                        "end": {
2055                          "line": 29,
2056                          "column": 23
2057                        }
2058                      }
2059                    },
2060                    "kind": "init",
2061                    "loc": {
2062                      "start": {
2063                        "line": 29,
2064                        "column": 22
2065                      },
2066                      "end": {
2067                        "line": 29,
2068                        "column": 23
2069                      }
2070                    }
2071                  }
2072                ],
2073                "typeAnnotation": {
2074                  "type": "TSTypeLiteral",
2075                  "members": [
2076                    {
2077                      "type": "TSPropertySignature",
2078                      "computed": false,
2079                      "optional": true,
2080                      "readonly": false,
2081                      "key": {
2082                        "type": "Identifier",
2083                        "name": "b",
2084                        "loc": {
2085                          "start": {
2086                            "line": 30,
2087                            "column": 9
2088                          },
2089                          "end": {
2090                            "line": 30,
2091                            "column": 10
2092                          }
2093                        }
2094                      },
2095                      "typeAnnotation": {
2096                        "type": "TSBooleanKeyword",
2097                        "loc": {
2098                          "start": {
2099                            "line": 30,
2100                            "column": 13
2101                          },
2102                          "end": {
2103                            "line": 30,
2104                            "column": 20
2105                          }
2106                        }
2107                      },
2108                      "loc": {
2109                        "start": {
2110                          "line": 30,
2111                          "column": 9
2112                        },
2113                        "end": {
2114                          "line": 30,
2115                          "column": 21
2116                        }
2117                      }
2118                    },
2119                    {
2120                      "type": "TSPropertySignature",
2121                      "computed": false,
2122                      "optional": true,
2123                      "readonly": false,
2124                      "key": {
2125                        "type": "Identifier",
2126                        "name": "c",
2127                        "loc": {
2128                          "start": {
2129                            "line": 31,
2130                            "column": 9
2131                          },
2132                          "end": {
2133                            "line": 31,
2134                            "column": 10
2135                          }
2136                        }
2137                      },
2138                      "typeAnnotation": {
2139                        "type": "TSAnyKeyword",
2140                        "loc": {
2141                          "start": {
2142                            "line": 31,
2143                            "column": 13
2144                          },
2145                          "end": {
2146                            "line": 31,
2147                            "column": 16
2148                          }
2149                        }
2150                      },
2151                      "loc": {
2152                        "start": {
2153                          "line": 31,
2154                          "column": 9
2155                        },
2156                        "end": {
2157                          "line": 31,
2158                          "column": 17
2159                        }
2160                      }
2161                    }
2162                  ],
2163                  "loc": {
2164                    "start": {
2165                      "line": 29,
2166                      "column": 28
2167                    },
2168                    "end": {
2169                      "line": 32,
2170                      "column": 6
2171                    }
2172                  }
2173                },
2174                "optional": true,
2175                "loc": {
2176                  "start": {
2177                    "line": 29,
2178                    "column": 17
2179                  },
2180                  "end": {
2181                    "line": 29,
2182                    "column": 25
2183                  }
2184                }
2185              }
2186            ],
2187            "returnType": {
2188              "type": "TSStringKeyword",
2189              "loc": {
2190                "start": {
2191                  "line": 32,
2192                  "column": 9
2193                },
2194                "end": {
2195                  "line": 32,
2196                  "column": 15
2197                }
2198              }
2199            },
2200            "loc": {
2201              "start": {
2202                "line": 29,
2203                "column": 5
2204              },
2205              "end": {
2206                "line": 32,
2207                "column": 16
2208              }
2209            }
2210          }
2211        ],
2212        "loc": {
2213          "start": {
2214            "line": 28,
2215            "column": 22
2216          },
2217          "end": {
2218            "line": 33,
2219            "column": 2
2220          }
2221        }
2222      },
2223      "id": {
2224        "type": "Identifier",
2225        "name": "Interface1",
2226        "loc": {
2227          "start": {
2228            "line": 28,
2229            "column": 11
2230          },
2231          "end": {
2232            "line": 28,
2233            "column": 21
2234          }
2235        }
2236      },
2237      "extends": [],
2238      "loc": {
2239        "start": {
2240          "line": 28,
2241          "column": 1
2242        },
2243        "end": {
2244          "line": 33,
2245          "column": 2
2246        }
2247      }
2248    }
2249  ],
2250  "loc": {
2251    "start": {
2252      "line": 1,
2253      "column": 1
2254    },
2255    "end": {
2256      "line": 33,
2257      "column": 2
2258    }
2259  }
2260}
2261