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