{ "type": "Script", "span": { "start": 161, "end": 4768, "ctxt": 0 }, "body": [ { "type": "TsModuleDeclaration", "span": { "start": 161, "end": 4312, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 168, "end": 174, "ctxt": 0 }, "value": "Errors", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 175, "end": 4312, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 187, "end": 191, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 181, "end": 208, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 194, "end": 206, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 194, "end": 197, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 197, "end": 205, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 199, "end": 205, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 219, "end": 226, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "span": { "start": 213, "end": 256, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 242, "end": 254, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 242, "end": 245, "ctxt": 0 }, "value": "bar", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 245, "end": 253, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 247, "end": 253, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": { "type": "Identifier", "span": { "start": 235, "end": 239, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 267, "end": 275, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "span": { "start": 261, "end": 308, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 294, "end": 306, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 294, "end": 297, "ctxt": 0 }, "value": "baz", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 297, "end": 305, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 299, "end": 305, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": { "type": "Identifier", "span": { "start": 284, "end": 291, "ctxt": 0 }, "value": "Derived", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 319, "end": 331, "ctxt": 0 }, "value": "OtherDerived", "optional": false }, "declare": false, "span": { "start": 313, "end": 362, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 347, "end": 360, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 347, "end": 351, "ctxt": 0 }, "value": "bing", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 351, "end": 359, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 353, "end": 359, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": { "type": "Identifier", "span": { "start": 340, "end": 344, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 385, "end": 389, "ctxt": 0 }, "value": "foo2", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 390, "end": 417, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 390, "end": 417, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 392, "end": 417, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 394, "end": 417, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 395, "end": 404, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 396, "end": 404, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 398, "end": 404, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 406, "end": 417, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 409, "end": 417, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 409, "end": 415, "ctxt": 0 }, "kind": "string" } } } } } } } ], "decorators": [], "span": { "start": 368, "end": 430, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 418, "end": 429, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 420, "end": 429, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 427, "end": 429, "ctxt": 0 }, "value": "a2", "optional": false }, "typeArguments": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 452, "end": 456, "ctxt": 0 }, "value": "foo2", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 457, "end": 464, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 457, "end": 464, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 459, "end": 464, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 461, "end": 464, "ctxt": 0 }, "kind": "any" } } } } ], "decorators": [], "span": { "start": 435, "end": 471, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 465, "end": 470, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 467, "end": 470, "ctxt": 0 }, "kind": "any" } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 494, "end": 498, "ctxt": 0 }, "value": "foo7", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 499, "end": 555, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 499, "end": 555, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 501, "end": 555, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 503, "end": 555, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 504, "end": 529, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 505, "end": 529, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 507, "end": 529, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 508, "end": 517, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 511, "end": 517, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 513, "end": 517, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 513, "end": 517, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 519, "end": 529, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 522, "end": 529, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 522, "end": 529, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 531, "end": 555, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 534, "end": 555, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 535, "end": 542, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 536, "end": 542, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 538, "end": 542, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 538, "end": 542, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 544, "end": 555, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 547, "end": 555, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 547, "end": 555, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } } } } } } } } ], "decorators": [], "span": { "start": 477, "end": 568, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 556, "end": 567, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 558, "end": 567, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 565, "end": 567, "ctxt": 0 }, "value": "a2", "optional": false }, "typeArguments": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 590, "end": 594, "ctxt": 0 }, "value": "foo7", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 595, "end": 602, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 595, "end": 602, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 597, "end": 602, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 599, "end": 602, "ctxt": 0 }, "kind": "any" } } } } ], "decorators": [], "span": { "start": 573, "end": 609, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 603, "end": 608, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 605, "end": 608, "ctxt": 0 }, "kind": "any" } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 632, "end": 636, "ctxt": 0 }, "value": "foo8", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 637, "end": 720, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 637, "end": 720, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 639, "end": 720, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 641, "end": 720, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 642, "end": 667, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 643, "end": 667, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 645, "end": 667, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 646, "end": 655, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 649, "end": 655, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 651, "end": 655, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 651, "end": 655, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 657, "end": 667, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 660, "end": 667, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 660, "end": 667, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 669, "end": 695, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 670, "end": 695, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 672, "end": 695, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 673, "end": 683, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 677, "end": 683, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 679, "end": 683, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 679, "end": 683, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 685, "end": 695, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 688, "end": 695, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 688, "end": 695, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 697, "end": 720, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 700, "end": 720, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 701, "end": 708, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 702, "end": 708, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 704, "end": 708, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 704, "end": 708, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 710, "end": 720, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 713, "end": 720, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 713, "end": 720, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } } } } ], "decorators": [], "span": { "start": 615, "end": 733, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 721, "end": 732, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 723, "end": 732, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 730, "end": 732, "ctxt": 0 }, "value": "a2", "optional": false }, "typeArguments": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 755, "end": 759, "ctxt": 0 }, "value": "foo8", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 760, "end": 767, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 760, "end": 767, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 762, "end": 767, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 764, "end": 767, "ctxt": 0 }, "kind": "any" } } } } ], "decorators": [], "span": { "start": 738, "end": 774, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 768, "end": 773, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 770, "end": 773, "ctxt": 0 }, "kind": "any" } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 797, "end": 802, "ctxt": 0 }, "value": "foo10", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 803, "end": 829, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 803, "end": 829, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 805, "end": 829, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 807, "end": 829, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 808, "end": 820, "ctxt": 0 }, "rest": { "start": 808, "end": 811, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 811, "end": 812, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 812, "end": 820, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 814, "end": 820, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 814, "end": 818, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 814, "end": 818, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 822, "end": 829, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 825, "end": 829, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 825, "end": 829, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } } } } ], "decorators": [], "span": { "start": 780, "end": 842, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 830, "end": 841, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 832, "end": 841, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 839, "end": 841, "ctxt": 0 }, "value": "a2", "optional": false }, "typeArguments": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 864, "end": 869, "ctxt": 0 }, "value": "foo10", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 870, "end": 877, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 870, "end": 877, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 872, "end": 877, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 874, "end": 877, "ctxt": 0 }, "kind": "any" } } } } ], "decorators": [], "span": { "start": 847, "end": 884, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 878, "end": 883, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 880, "end": 883, "ctxt": 0 }, "kind": "any" } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 907, "end": 912, "ctxt": 0 }, "value": "foo11", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 913, "end": 978, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 913, "end": 978, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 915, "end": 978, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 917, "end": 978, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 918, "end": 936, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 919, "end": 936, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 921, "end": 936, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 923, "end": 934, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 923, "end": 926, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 926, "end": 934, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 928, "end": 934, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } }, { "type": "Identifier", "span": { "start": 938, "end": 969, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 939, "end": 969, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 941, "end": 969, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 943, "end": 955, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 943, "end": 946, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 946, "end": 954, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 948, "end": 954, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 956, "end": 967, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 956, "end": 959, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 959, "end": 967, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 961, "end": 967, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 971, "end": 978, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 974, "end": 978, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 974, "end": 978, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } } } } ], "decorators": [], "span": { "start": 890, "end": 991, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 979, "end": 990, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 981, "end": 990, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 988, "end": 990, "ctxt": 0 }, "value": "a2", "optional": false }, "typeArguments": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1013, "end": 1018, "ctxt": 0 }, "value": "foo11", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 1019, "end": 1026, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1019, "end": 1026, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1021, "end": 1026, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1023, "end": 1026, "ctxt": 0 }, "kind": "any" } } } } ], "decorators": [], "span": { "start": 996, "end": 1033, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 1027, "end": 1032, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1029, "end": 1032, "ctxt": 0 }, "kind": "any" } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1056, "end": 1061, "ctxt": 0 }, "value": "foo12", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 1062, "end": 1120, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1062, "end": 1120, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1064, "end": 1120, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1066, "end": 1120, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1067, "end": 1081, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1068, "end": 1081, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1070, "end": 1081, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1070, "end": 1075, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1075, "end": 1081, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1076, "end": 1080, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1076, "end": 1080, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 1083, "end": 1101, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1084, "end": 1101, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1086, "end": 1101, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1086, "end": 1091, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1091, "end": 1101, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1092, "end": 1100, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1092, "end": 1100, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } ] } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1103, "end": 1120, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1106, "end": 1120, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1106, "end": 1111, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1111, "end": 1120, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1112, "end": 1119, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1112, "end": 1119, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } } } } } } ], "decorators": [], "span": { "start": 1039, "end": 1133, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 1121, "end": 1132, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1123, "end": 1132, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1130, "end": 1132, "ctxt": 0 }, "value": "a2", "optional": false }, "typeArguments": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1155, "end": 1160, "ctxt": 0 }, "value": "foo12", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 1161, "end": 1168, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1161, "end": 1168, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1163, "end": 1168, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1165, "end": 1168, "ctxt": 0 }, "kind": "any" } } } } ], "decorators": [], "span": { "start": 1138, "end": 1175, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 1169, "end": 1174, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1171, "end": 1174, "ctxt": 0 }, "kind": "any" } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1198, "end": 1203, "ctxt": 0 }, "value": "foo15", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 1204, "end": 1247, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1204, "end": 1247, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1206, "end": 1247, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1208, "end": 1247, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1209, "end": 1236, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1210, "end": 1236, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1212, "end": 1236, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1214, "end": 1224, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1214, "end": 1215, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1215, "end": 1223, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1217, "end": 1223, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1225, "end": 1234, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1225, "end": 1226, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1226, "end": 1234, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1228, "end": 1234, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1238, "end": 1247, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1241, "end": 1247, "ctxt": 0 }, "kind": "number" } } } } } } ], "decorators": [], "span": { "start": 1181, "end": 1260, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 1248, "end": 1259, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1250, "end": 1259, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1257, "end": 1259, "ctxt": 0 }, "value": "a2", "optional": false }, "typeArguments": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1282, "end": 1287, "ctxt": 0 }, "value": "foo15", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 1288, "end": 1295, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1288, "end": 1295, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1290, "end": 1295, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1292, "end": 1295, "ctxt": 0 }, "kind": "any" } } } } ], "decorators": [], "span": { "start": 1265, "end": 1302, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 1296, "end": 1301, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1298, "end": 1301, "ctxt": 0 }, "kind": "any" } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1325, "end": 1330, "ctxt": 0 }, "value": "foo16", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 1331, "end": 1651, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1331, "end": 1651, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1333, "end": 1651, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1335, "end": 1651, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1443, "end": 1537, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1444, "end": 1525, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1445, "end": 1525, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1447, "end": 1525, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1461, "end": 1481, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1462, "end": 1471, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1463, "end": 1471, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1465, "end": 1471, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1472, "end": 1480, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1474, "end": 1480, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1494, "end": 1515, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1495, "end": 1505, "ctxt": 0 }, "value": "a", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1497, "end": 1505, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1499, "end": 1505, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1506, "end": 1514, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1508, "end": 1514, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1526, "end": 1536, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1528, "end": 1536, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1528, "end": 1534, "ctxt": 0 }, "kind": "number" } } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1546, "end": 1645, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1547, "end": 1632, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1548, "end": 1632, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1550, "end": 1632, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1564, "end": 1586, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1565, "end": 1575, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1566, "end": 1575, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1568, "end": 1575, "ctxt": 0 }, "kind": "boolean" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1576, "end": 1585, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1578, "end": 1585, "ctxt": 0 }, "kind": "boolean" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1599, "end": 1622, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1600, "end": 1611, "ctxt": 0 }, "value": "a", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1602, "end": 1611, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1604, "end": 1611, "ctxt": 0 }, "kind": "boolean" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1612, "end": 1621, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1614, "end": 1621, "ctxt": 0 }, "kind": "boolean" } }, "typeParams": null } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1633, "end": 1644, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1635, "end": 1644, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1635, "end": 1642, "ctxt": 0 }, "kind": "boolean" } } }, "typeParams": null } ] } } } } ], "decorators": [], "span": { "start": 1308, "end": 1664, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 1652, "end": 1663, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1654, "end": 1663, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1661, "end": 1663, "ctxt": 0 }, "value": "a2", "optional": false }, "typeArguments": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1686, "end": 1691, "ctxt": 0 }, "value": "foo16", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 1692, "end": 1699, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1692, "end": 1699, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1694, "end": 1699, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1696, "end": 1699, "ctxt": 0 }, "kind": "any" } } } } ], "decorators": [], "span": { "start": 1669, "end": 1706, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 1700, "end": 1705, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1702, "end": 1705, "ctxt": 0 }, "kind": "any" } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1729, "end": 1734, "ctxt": 0 }, "value": "foo17", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 1735, "end": 1975, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1735, "end": 1975, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1737, "end": 1975, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1739, "end": 1975, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1749, "end": 1854, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1750, "end": 1845, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1751, "end": 1845, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1753, "end": 1845, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1767, "end": 1796, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1787, "end": 1791, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1788, "end": 1791, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1790, "end": 1791, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1790, "end": 1791, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1792, "end": 1795, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1794, "end": 1795, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1794, "end": 1795, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1767, "end": 1786, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1768, "end": 1785, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1768, "end": 1769, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1778, "end": 1785, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1778, "end": 1785, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1809, "end": 1835, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1826, "end": 1830, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1827, "end": 1830, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1829, "end": 1830, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1829, "end": 1830, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1831, "end": 1834, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1833, "end": 1834, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1833, "end": 1834, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1809, "end": 1825, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1810, "end": 1824, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1810, "end": 1811, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1820, "end": 1824, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1820, "end": 1824, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1846, "end": 1853, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1848, "end": 1853, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1848, "end": 1851, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1863, "end": 1969, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1864, "end": 1960, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1865, "end": 1960, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1867, "end": 1960, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1881, "end": 1911, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1902, "end": 1906, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1903, "end": 1906, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1905, "end": 1906, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1905, "end": 1906, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1907, "end": 1910, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1909, "end": 1910, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1909, "end": 1910, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1881, "end": 1901, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1882, "end": 1900, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1882, "end": 1883, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1892, "end": 1900, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1892, "end": 1900, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1924, "end": 1950, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1941, "end": 1945, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1942, "end": 1945, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1944, "end": 1945, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1944, "end": 1945, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1946, "end": 1949, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1948, "end": 1949, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1948, "end": 1949, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1924, "end": 1940, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1925, "end": 1939, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1925, "end": 1926, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1935, "end": 1939, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1935, "end": 1939, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1961, "end": 1968, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1963, "end": 1968, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1963, "end": 1966, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null } ] } } } } ], "decorators": [], "span": { "start": 1712, "end": 1988, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 1976, "end": 1987, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1978, "end": 1987, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1985, "end": 1987, "ctxt": 0 }, "value": "a2", "optional": false }, "typeArguments": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 2010, "end": 2015, "ctxt": 0 }, "value": "foo17", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 2016, "end": 2023, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2016, "end": 2023, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2018, "end": 2023, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2020, "end": 2023, "ctxt": 0 }, "kind": "any" } } } } ], "decorators": [], "span": { "start": 1993, "end": 2030, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 2024, "end": 2029, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2026, "end": 2029, "ctxt": 0 }, "kind": "any" } } }, { "type": "VariableDeclaration", "span": { "start": 2036, "end": 2077, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2040, "end": 2076, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2040, "end": 2042, "ctxt": 0 }, "value": "r1", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 2045, "end": 2076, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2045, "end": 2049, "ctxt": 0 }, "value": "foo2", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 2050, "end": 2075, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2057, "end": 2061, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2058, "end": 2061, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2060, "end": 2061, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2060, "end": 2061, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "body": { "type": "TsTypeAssertion", "span": { "start": 2066, "end": 2075, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 2071, "end": 2075, "ctxt": 0 } }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2067, "end": 2070, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2067, "end": 2068, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2067, "end": 2068, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } }, "async": false, "generator": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 2050, "end": 2056, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2051, "end": 2052, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2051, "end": 2052, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2054, "end": 2055, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2054, "end": 2055, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2089, "end": 2148, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2093, "end": 2147, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2093, "end": 2096, "ctxt": 0 }, "value": "r1a", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrayExpression", "span": { "start": 2099, "end": 2147, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 2100, "end": 2119, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2101, "end": 2110, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2102, "end": 2110, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2104, "end": 2110, "ctxt": 0 }, "kind": "number" } } } ], "body": { "type": "ArrayExpression", "span": { "start": 2115, "end": 2119, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 2116, "end": 2118, "ctxt": 0 }, "value": "", "raw": "''" } } ] }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 2121, "end": 2146, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2128, "end": 2132, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2129, "end": 2132, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2131, "end": 2132, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2131, "end": 2132, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "body": { "type": "TsTypeAssertion", "span": { "start": 2137, "end": 2146, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 2142, "end": 2146, "ctxt": 0 } }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2138, "end": 2141, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2138, "end": 2139, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2138, "end": 2139, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } }, "async": false, "generator": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 2121, "end": 2127, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2122, "end": 2123, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2122, "end": 2123, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2125, "end": 2126, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2125, "end": 2126, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "returnType": null } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2153, "end": 2212, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2157, "end": 2211, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2157, "end": 2160, "ctxt": 0 }, "value": "r1b", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrayExpression", "span": { "start": 2163, "end": 2211, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 2164, "end": 2189, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2171, "end": 2175, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2172, "end": 2175, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2174, "end": 2175, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2174, "end": 2175, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "body": { "type": "TsTypeAssertion", "span": { "start": 2180, "end": 2189, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 2185, "end": 2189, "ctxt": 0 } }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2181, "end": 2184, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2181, "end": 2182, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2181, "end": 2182, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } }, "async": false, "generator": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 2164, "end": 2170, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2165, "end": 2166, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2165, "end": 2166, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2168, "end": 2169, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2168, "end": 2169, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 2191, "end": 2210, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2192, "end": 2201, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2193, "end": 2201, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2195, "end": 2201, "ctxt": 0 }, "kind": "number" } } } ], "body": { "type": "ArrayExpression", "span": { "start": 2206, "end": 2210, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 2207, "end": 2209, "ctxt": 0 }, "value": "", "raw": "''" } } ] }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2218, "end": 2325, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2222, "end": 2324, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2222, "end": 2227, "ctxt": 0 }, "value": "r2arg", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 2230, "end": 2324, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2286, "end": 2302, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2287, "end": 2302, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2289, "end": 2302, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2290, "end": 2296, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2293, "end": 2296, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2295, "end": 2296, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2295, "end": 2296, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2298, "end": 2302, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2301, "end": 2302, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2301, "end": 2302, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "body": { "type": "ArrowFunctionExpression", "span": { "start": 2307, "end": 2324, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2308, "end": 2312, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2309, "end": 2312, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2311, "end": 2312, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2311, "end": 2312, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "body": { "type": "TsTypeAssertion", "span": { "start": 2317, "end": 2324, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 2320, "end": 2324, "ctxt": 0 } }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2318, "end": 2319, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2318, "end": 2319, "ctxt": 0 }, "value": "V", "optional": false }, "typeParams": null } }, "async": false, "generator": false, "typeParameters": null, "returnType": null }, "async": false, "generator": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 2230, "end": 2285, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2231, "end": 2245, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2231, "end": 2232, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2241, "end": 2245, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2241, "end": 2245, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2247, "end": 2264, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2247, "end": 2248, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2257, "end": 2264, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2257, "end": 2264, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2266, "end": 2284, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2266, "end": 2267, "ctxt": 0 }, "value": "V", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2276, "end": 2284, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2276, "end": 2284, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null }, "default": null } ] }, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2330, "end": 2402, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2334, "end": 2401, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2334, "end": 2340, "ctxt": 0 }, "value": "r2arg2", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 2343, "end": 2401, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2344, "end": 2369, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2345, "end": 2369, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2347, "end": 2369, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2348, "end": 2357, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2351, "end": 2357, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2353, "end": 2357, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2353, "end": 2357, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2359, "end": 2369, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2362, "end": 2369, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2362, "end": 2369, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "body": { "type": "ArrowFunctionExpression", "span": { "start": 2374, "end": 2401, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2375, "end": 2382, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2376, "end": 2382, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2378, "end": 2382, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2378, "end": 2382, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "body": { "type": "TsTypeAssertion", "span": { "start": 2387, "end": 2401, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 2397, "end": 2401, "ctxt": 0 } }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2388, "end": 2396, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2388, "end": 2396, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } }, "async": false, "generator": false, "typeParameters": null, "returnType": null }, "async": false, "generator": false, "typeParameters": null, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2407, "end": 2428, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2411, "end": 2427, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2411, "end": 2413, "ctxt": 0 }, "value": "r2", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 2416, "end": 2427, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2416, "end": 2420, "ctxt": 0 }, "value": "foo7", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2421, "end": 2426, "ctxt": 0 }, "value": "r2arg", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2440, "end": 2466, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2444, "end": 2465, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2444, "end": 2447, "ctxt": 0 }, "value": "r2a", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrayExpression", "span": { "start": 2450, "end": 2465, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2451, "end": 2457, "ctxt": 0 }, "value": "r2arg2", "optional": false } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2459, "end": 2464, "ctxt": 0 }, "value": "r2arg", "optional": false } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2471, "end": 2497, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2475, "end": 2496, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2475, "end": 2478, "ctxt": 0 }, "value": "r2b", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrayExpression", "span": { "start": 2481, "end": 2496, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2482, "end": 2487, "ctxt": 0 }, "value": "r2arg", "optional": false } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2489, "end": 2495, "ctxt": 0 }, "value": "r2arg2", "optional": false } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2503, "end": 2624, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2507, "end": 2623, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2507, "end": 2512, "ctxt": 0 }, "value": "r3arg", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 2515, "end": 2623, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2551, "end": 2567, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2552, "end": 2567, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2554, "end": 2567, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2555, "end": 2561, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2558, "end": 2561, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2560, "end": 2561, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2560, "end": 2561, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2563, "end": 2567, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2566, "end": 2567, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2566, "end": 2567, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 2569, "end": 2601, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2570, "end": 2601, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2572, "end": 2601, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2573, "end": 2595, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2577, "end": 2595, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2579, "end": 2595, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2581, "end": 2593, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2581, "end": 2584, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2584, "end": 2592, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2586, "end": 2592, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2597, "end": 2601, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2600, "end": 2601, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2600, "end": 2601, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "body": { "type": "ArrowFunctionExpression", "span": { "start": 2606, "end": 2623, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2607, "end": 2611, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2608, "end": 2611, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2610, "end": 2611, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2610, "end": 2611, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "body": { "type": "TsTypeAssertion", "span": { "start": 2616, "end": 2623, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 2619, "end": 2623, "ctxt": 0 } }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2617, "end": 2618, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2617, "end": 2618, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "async": false, "generator": false, "typeParameters": null, "returnType": null }, "async": false, "generator": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 2515, "end": 2550, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2516, "end": 2530, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2516, "end": 2517, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2526, "end": 2530, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2526, "end": 2530, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2532, "end": 2549, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2532, "end": 2533, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2542, "end": 2549, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2542, "end": 2549, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2629, "end": 2728, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2633, "end": 2727, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2633, "end": 2639, "ctxt": 0 }, "value": "r3arg2", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 2642, "end": 2727, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2643, "end": 2668, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2644, "end": 2668, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2646, "end": 2668, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2647, "end": 2656, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2650, "end": 2656, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2652, "end": 2656, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2652, "end": 2656, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2658, "end": 2668, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2661, "end": 2668, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2661, "end": 2668, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 2670, "end": 2696, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2671, "end": 2696, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2673, "end": 2696, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2674, "end": 2684, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2678, "end": 2684, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2680, "end": 2684, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2680, "end": 2684, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2686, "end": 2696, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2689, "end": 2696, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2689, "end": 2696, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "body": { "type": "ArrowFunctionExpression", "span": { "start": 2701, "end": 2727, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2702, "end": 2709, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2703, "end": 2709, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2705, "end": 2709, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2705, "end": 2709, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "body": { "type": "TsTypeAssertion", "span": { "start": 2714, "end": 2727, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 2723, "end": 2727, "ctxt": 0 } }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2715, "end": 2722, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2715, "end": 2722, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "async": false, "generator": false, "typeParameters": null, "returnType": null }, "async": false, "generator": false, "typeParameters": null, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2733, "end": 2754, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2737, "end": 2753, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2737, "end": 2739, "ctxt": 0 }, "value": "r3", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 2742, "end": 2753, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2742, "end": 2746, "ctxt": 0 }, "value": "foo8", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2747, "end": 2752, "ctxt": 0 }, "value": "r3arg", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2766, "end": 2792, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2770, "end": 2791, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2770, "end": 2773, "ctxt": 0 }, "value": "r3a", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrayExpression", "span": { "start": 2776, "end": 2791, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2777, "end": 2783, "ctxt": 0 }, "value": "r3arg2", "optional": false } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2785, "end": 2790, "ctxt": 0 }, "value": "r3arg", "optional": false } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2797, "end": 2823, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2801, "end": 2822, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2801, "end": 2804, "ctxt": 0 }, "value": "r3b", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrayExpression", "span": { "start": 2807, "end": 2822, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2808, "end": 2813, "ctxt": 0 }, "value": "r3arg", "optional": false } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2815, "end": 2821, "ctxt": 0 }, "value": "r3arg2", "optional": false } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2829, "end": 2883, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2833, "end": 2882, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2833, "end": 2838, "ctxt": 0 }, "value": "r4arg", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 2841, "end": 2882, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 2861, "end": 2870, "ctxt": 0 }, "rest": { "start": 2861, "end": 2864, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 2864, "end": 2865, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2865, "end": 2870, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2867, "end": 2870, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2867, "end": 2868, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2867, "end": 2868, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "body": { "type": "TsTypeAssertion", "span": { "start": 2875, "end": 2882, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 2878, "end": 2882, "ctxt": 0 } }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2876, "end": 2877, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2876, "end": 2877, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "async": false, "generator": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 2841, "end": 2860, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2842, "end": 2859, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2842, "end": 2843, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2852, "end": 2859, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2852, "end": 2859, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2888, "end": 2930, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2892, "end": 2929, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2892, "end": 2898, "ctxt": 0 }, "value": "r4arg2", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 2901, "end": 2929, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 2902, "end": 2914, "ctxt": 0 }, "rest": { "start": 2902, "end": 2905, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 2905, "end": 2906, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2906, "end": 2914, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2908, "end": 2914, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2908, "end": 2912, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2908, "end": 2912, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } } ], "body": { "type": "TsTypeAssertion", "span": { "start": 2919, "end": 2929, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 2925, "end": 2929, "ctxt": 0 } }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2920, "end": 2924, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2920, "end": 2924, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "async": false, "generator": false, "typeParameters": null, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2935, "end": 2957, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2939, "end": 2956, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2939, "end": 2941, "ctxt": 0 }, "value": "r4", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 2944, "end": 2956, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2944, "end": 2949, "ctxt": 0 }, "value": "foo10", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2950, "end": 2955, "ctxt": 0 }, "value": "r4arg", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2969, "end": 2995, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2973, "end": 2994, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2973, "end": 2976, "ctxt": 0 }, "value": "r4a", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrayExpression", "span": { "start": 2979, "end": 2994, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2980, "end": 2986, "ctxt": 0 }, "value": "r4arg2", "optional": false } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2988, "end": 2993, "ctxt": 0 }, "value": "r4arg", "optional": false } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3000, "end": 3026, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3004, "end": 3025, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3004, "end": 3007, "ctxt": 0 }, "value": "r4b", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrayExpression", "span": { "start": 3010, "end": 3025, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3011, "end": 3016, "ctxt": 0 }, "value": "r4arg", "optional": false } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3018, "end": 3024, "ctxt": 0 }, "value": "r4arg2", "optional": false } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3032, "end": 3087, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3036, "end": 3086, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3036, "end": 3041, "ctxt": 0 }, "value": "r5arg", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 3044, "end": 3086, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3064, "end": 3068, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3065, "end": 3068, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3067, "end": 3068, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3067, "end": 3068, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 3070, "end": 3074, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3071, "end": 3074, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3073, "end": 3074, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3073, "end": 3074, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "body": { "type": "TsTypeAssertion", "span": { "start": 3079, "end": 3086, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 3082, "end": 3086, "ctxt": 0 } }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3080, "end": 3081, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3080, "end": 3081, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "async": false, "generator": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3044, "end": 3063, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3045, "end": 3062, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3045, "end": 3046, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 3055, "end": 3062, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3055, "end": 3062, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3092, "end": 3173, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3096, "end": 3172, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3096, "end": 3102, "ctxt": 0 }, "value": "r5arg2", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 3105, "end": 3172, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3106, "end": 3124, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3107, "end": 3124, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 3109, "end": 3124, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 3111, "end": 3122, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3111, "end": 3114, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3114, "end": 3122, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3116, "end": 3122, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } }, { "type": "Identifier", "span": { "start": 3126, "end": 3157, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3127, "end": 3157, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 3129, "end": 3157, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 3131, "end": 3143, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3131, "end": 3134, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3134, "end": 3142, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3136, "end": 3142, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3144, "end": 3155, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3144, "end": 3147, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3147, "end": 3155, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3149, "end": 3155, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } } ], "body": { "type": "TsTypeAssertion", "span": { "start": 3162, "end": 3172, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 3168, "end": 3172, "ctxt": 0 } }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3163, "end": 3167, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3163, "end": 3167, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "async": false, "generator": false, "typeParameters": null, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3178, "end": 3200, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3182, "end": 3199, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3182, "end": 3184, "ctxt": 0 }, "value": "r5", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 3187, "end": 3199, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3187, "end": 3192, "ctxt": 0 }, "value": "foo11", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3193, "end": 3198, "ctxt": 0 }, "value": "r5arg", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3212, "end": 3238, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3216, "end": 3237, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3216, "end": 3219, "ctxt": 0 }, "value": "r5a", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrayExpression", "span": { "start": 3222, "end": 3237, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3223, "end": 3229, "ctxt": 0 }, "value": "r5arg2", "optional": false } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3231, "end": 3236, "ctxt": 0 }, "value": "r5arg", "optional": false } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3243, "end": 3269, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3247, "end": 3268, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3247, "end": 3250, "ctxt": 0 }, "value": "r5b", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrayExpression", "span": { "start": 3253, "end": 3268, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3254, "end": 3259, "ctxt": 0 }, "value": "r5arg", "optional": false } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3261, "end": 3267, "ctxt": 0 }, "value": "r5arg2", "optional": false } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3275, "end": 3348, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3279, "end": 3347, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3279, "end": 3284, "ctxt": 0 }, "value": "r6arg", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 3287, "end": 3347, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3288, "end": 3302, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3289, "end": 3302, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3291, "end": 3302, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3291, "end": 3296, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3296, "end": 3302, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3297, "end": 3301, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3297, "end": 3301, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 3304, "end": 3322, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3305, "end": 3322, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3307, "end": 3322, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3307, "end": 3312, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3312, "end": 3322, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3313, "end": 3321, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3313, "end": 3321, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } ] } } } } ], "body": { "type": "TsTypeAssertion", "span": { "start": 3327, "end": 3347, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 3343, "end": 3347, "ctxt": 0 } }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3328, "end": 3342, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3328, "end": 3333, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3333, "end": 3342, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3334, "end": 3341, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3334, "end": 3341, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } }, "async": false, "generator": false, "typeParameters": null, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3353, "end": 3437, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3357, "end": 3436, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3357, "end": 3363, "ctxt": 0 }, "value": "r6arg2", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 3366, "end": 3436, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3394, "end": 3408, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3395, "end": 3408, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3397, "end": 3408, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3397, "end": 3402, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3402, "end": 3408, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3403, "end": 3407, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3403, "end": 3407, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 3410, "end": 3424, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3411, "end": 3424, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3413, "end": 3424, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3413, "end": 3418, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3418, "end": 3424, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3419, "end": 3423, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3419, "end": 3423, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } } ], "body": { "type": "TsTypeAssertion", "span": { "start": 3429, "end": 3436, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 3432, "end": 3436, "ctxt": 0 } }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3430, "end": 3431, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3430, "end": 3431, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "async": false, "generator": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3366, "end": 3393, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3367, "end": 3392, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3367, "end": 3368, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 3377, "end": 3392, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3377, "end": 3382, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3382, "end": 3392, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3383, "end": 3391, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3383, "end": 3391, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } ] } }, "default": null } ] }, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3442, "end": 3464, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3446, "end": 3463, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3446, "end": 3448, "ctxt": 0 }, "value": "r6", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 3451, "end": 3463, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3451, "end": 3456, "ctxt": 0 }, "value": "foo12", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3457, "end": 3462, "ctxt": 0 }, "value": "r6arg", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3527, "end": 3553, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3531, "end": 3552, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3531, "end": 3534, "ctxt": 0 }, "value": "r6a", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrayExpression", "span": { "start": 3537, "end": 3552, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3538, "end": 3544, "ctxt": 0 }, "value": "r6arg2", "optional": false } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3546, "end": 3551, "ctxt": 0 }, "value": "r6arg", "optional": false } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3558, "end": 3584, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3562, "end": 3583, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3562, "end": 3565, "ctxt": 0 }, "value": "r6b", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrayExpression", "span": { "start": 3568, "end": 3583, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3569, "end": 3574, "ctxt": 0 }, "value": "r6arg", "optional": false } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3576, "end": 3582, "ctxt": 0 }, "value": "r6arg2", "optional": false } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3590, "end": 3636, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3594, "end": 3635, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3594, "end": 3599, "ctxt": 0 }, "value": "r7arg", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 3602, "end": 3635, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3606, "end": 3623, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3607, "end": 3623, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 3609, "end": 3623, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 3611, "end": 3616, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3611, "end": 3612, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3612, "end": 3615, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3614, "end": 3615, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3614, "end": 3615, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3617, "end": 3621, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3617, "end": 3618, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3618, "end": 3621, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3620, "end": 3621, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3620, "end": 3621, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "body": { "type": "TsTypeAssertion", "span": { "start": 3628, "end": 3635, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 3631, "end": 3635, "ctxt": 0 } }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3629, "end": 3630, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3629, "end": 3630, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "async": false, "generator": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3602, "end": 3605, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3603, "end": 3604, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3603, "end": 3604, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3641, "end": 3689, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3645, "end": 3688, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3645, "end": 3651, "ctxt": 0 }, "value": "r7arg2", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 3654, "end": 3688, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3655, "end": 3682, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3656, "end": 3682, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 3658, "end": 3682, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 3660, "end": 3670, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3660, "end": 3661, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3661, "end": 3669, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3663, "end": 3669, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3671, "end": 3680, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3671, "end": 3672, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3672, "end": 3680, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3674, "end": 3680, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "body": { "type": "NumericLiteral", "span": { "start": 3687, "end": 3688, "ctxt": 0 }, "value": 1.0 }, "async": false, "generator": false, "typeParameters": null, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3694, "end": 3716, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3698, "end": 3715, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3698, "end": 3700, "ctxt": 0 }, "value": "r7", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 3703, "end": 3715, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3703, "end": 3708, "ctxt": 0 }, "value": "foo15", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3709, "end": 3714, "ctxt": 0 }, "value": "r7arg", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3728, "end": 3754, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3732, "end": 3753, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3732, "end": 3735, "ctxt": 0 }, "value": "r7a", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrayExpression", "span": { "start": 3738, "end": 3753, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3739, "end": 3745, "ctxt": 0 }, "value": "r7arg2", "optional": false } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3747, "end": 3752, "ctxt": 0 }, "value": "r7arg", "optional": false } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3759, "end": 3785, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3763, "end": 3784, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3763, "end": 3766, "ctxt": 0 }, "value": "r7b", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrayExpression", "span": { "start": 3769, "end": 3784, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3770, "end": 3775, "ctxt": 0 }, "value": "r7arg", "optional": false } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3777, "end": 3783, "ctxt": 0 }, "value": "r7arg2", "optional": false } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3791, "end": 3845, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3795, "end": 3844, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3795, "end": 3801, "ctxt": 0 }, "value": "r7arg3", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 3804, "end": 3844, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3821, "end": 3838, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3822, "end": 3838, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 3824, "end": 3838, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 3826, "end": 3831, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3826, "end": 3827, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3827, "end": 3830, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3829, "end": 3830, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3829, "end": 3830, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3832, "end": 3836, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3832, "end": 3833, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3833, "end": 3836, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3835, "end": 3836, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3835, "end": 3836, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "body": { "type": "NumericLiteral", "span": { "start": 3843, "end": 3844, "ctxt": 0 }, "value": 1.0 }, "async": false, "generator": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3804, "end": 3820, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3805, "end": 3819, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3805, "end": 3806, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 3815, "end": 3819, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3815, "end": 3819, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3850, "end": 3874, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3854, "end": 3873, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3854, "end": 3857, "ctxt": 0 }, "value": "r7c", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 3860, "end": 3873, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3860, "end": 3865, "ctxt": 0 }, "value": "foo15", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3866, "end": 3872, "ctxt": 0 }, "value": "r7arg3", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3932, "end": 3959, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3936, "end": 3958, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3936, "end": 3939, "ctxt": 0 }, "value": "r7d", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrayExpression", "span": { "start": 3942, "end": 3958, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3943, "end": 3949, "ctxt": 0 }, "value": "r7arg2", "optional": false } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3951, "end": 3957, "ctxt": 0 }, "value": "r7arg3", "optional": false } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3964, "end": 3991, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3968, "end": 3990, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3968, "end": 3971, "ctxt": 0 }, "value": "r7e", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrayExpression", "span": { "start": 3974, "end": 3990, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3975, "end": 3981, "ctxt": 0 }, "value": "r7arg3", "optional": false } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3983, "end": 3989, "ctxt": 0 }, "value": "r7arg2", "optional": false } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3997, "end": 4042, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4001, "end": 4041, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4001, "end": 4006, "ctxt": 0 }, "value": "r8arg", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 4009, "end": 4041, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4013, "end": 4027, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4014, "end": 4027, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4016, "end": 4027, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4017, "end": 4021, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4018, "end": 4021, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4020, "end": 4021, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4020, "end": 4021, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4023, "end": 4027, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4026, "end": 4027, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4026, "end": 4027, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "body": { "type": "TsTypeAssertion", "span": { "start": 4032, "end": 4041, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 4037, "end": 4041, "ctxt": 0 } }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 4033, "end": 4036, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 4033, "end": 4034, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4033, "end": 4034, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "async": false, "generator": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 4009, "end": 4012, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4010, "end": 4011, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4010, "end": 4011, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 4047, "end": 4069, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4051, "end": 4068, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4051, "end": 4053, "ctxt": 0 }, "value": "r8", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4056, "end": 4068, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4056, "end": 4061, "ctxt": 0 }, "value": "foo16", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4062, "end": 4067, "ctxt": 0 }, "value": "r8arg", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 4082, "end": 4129, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4086, "end": 4128, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4086, "end": 4091, "ctxt": 0 }, "value": "r9arg", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 4094, "end": 4128, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4098, "end": 4112, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4099, "end": 4112, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4101, "end": 4112, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4102, "end": 4106, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4103, "end": 4106, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4105, "end": 4106, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4105, "end": 4106, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4108, "end": 4112, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4111, "end": 4112, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4111, "end": 4112, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "body": { "type": "TsTypeAssertion", "span": { "start": 4117, "end": 4128, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 4124, "end": 4128, "ctxt": 0 } }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 4118, "end": 4123, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 4118, "end": 4121, "ctxt": 0 }, "kind": "any" } } }, "async": false, "generator": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 4094, "end": 4097, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4095, "end": 4096, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4095, "end": 4096, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 4134, "end": 4156, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4138, "end": 4155, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4138, "end": 4140, "ctxt": 0 }, "value": "r9", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4143, "end": 4155, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4143, "end": 4148, "ctxt": 0 }, "value": "foo17", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4149, "end": 4154, "ctxt": 0 }, "value": "r9arg", "optional": false } } ], "typeArguments": null }, "definite": false } ] } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 4314, "end": 4768, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 4321, "end": 4352, "ctxt": 0 }, "value": "WithGenericSignaturesInBaseType", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 4353, "end": 4768, "ctxt": 0 }, "body": [ { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 4376, "end": 4380, "ctxt": 0 }, "value": "foo2", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 4381, "end": 4401, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 4381, "end": 4401, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4383, "end": 4401, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4385, "end": 4401, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4389, "end": 4393, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4390, "end": 4393, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4392, "end": 4393, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4392, "end": 4393, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4385, "end": 4388, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4386, "end": 4387, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4386, "end": 4387, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4395, "end": 4401, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 4398, "end": 4401, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 4398, "end": 4399, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4398, "end": 4399, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } } } ], "decorators": [], "span": { "start": 4359, "end": 4414, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 4402, "end": 4413, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 4404, "end": 4413, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 4411, "end": 4413, "ctxt": 0 }, "value": "a2", "optional": false }, "typeArguments": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 4436, "end": 4440, "ctxt": 0 }, "value": "foo2", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 4441, "end": 4448, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 4441, "end": 4448, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4443, "end": 4448, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 4445, "end": 4448, "ctxt": 0 }, "kind": "any" } } } } ], "decorators": [], "span": { "start": 4419, "end": 4455, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 4449, "end": 4454, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 4451, "end": 4454, "ctxt": 0 }, "kind": "any" } } }, { "type": "VariableDeclaration", "span": { "start": 4460, "end": 4491, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4464, "end": 4490, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4464, "end": 4470, "ctxt": 0 }, "value": "r2arg2", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 4473, "end": 4490, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4477, "end": 4481, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4478, "end": 4481, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4480, "end": 4481, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4480, "end": 4481, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "body": { "type": "ArrayExpression", "span": { "start": 4486, "end": 4490, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 4487, "end": 4489, "ctxt": 0 }, "value": "", "raw": "''" } } ] }, "async": false, "generator": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 4473, "end": 4476, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4474, "end": 4475, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4474, "end": 4475, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 4496, "end": 4518, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4500, "end": 4517, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4500, "end": 4502, "ctxt": 0 }, "value": "r2", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4505, "end": 4517, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4505, "end": 4509, "ctxt": 0 }, "value": "foo2", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4510, "end": 4516, "ctxt": 0 }, "value": "r2arg2", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 4607, "end": 4611, "ctxt": 0 }, "value": "foo3", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 4612, "end": 4637, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 4612, "end": 4637, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4614, "end": 4637, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4616, "end": 4637, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4620, "end": 4624, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4621, "end": 4624, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4623, "end": 4624, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4623, "end": 4624, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4616, "end": 4619, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4617, "end": 4618, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4617, "end": 4618, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4626, "end": 4637, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 4629, "end": 4637, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 4629, "end": 4635, "ctxt": 0 }, "kind": "string" } } } } } } } ], "decorators": [], "span": { "start": 4590, "end": 4650, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 4638, "end": 4649, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 4640, "end": 4649, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 4647, "end": 4649, "ctxt": 0 }, "value": "a2", "optional": false }, "typeArguments": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 4672, "end": 4676, "ctxt": 0 }, "value": "foo3", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 4677, "end": 4684, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 4677, "end": 4684, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4679, "end": 4684, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 4681, "end": 4684, "ctxt": 0 }, "kind": "any" } } } } ], "decorators": [], "span": { "start": 4655, "end": 4691, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 4685, "end": 4690, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 4687, "end": 4690, "ctxt": 0 }, "kind": "any" } } }, { "type": "VariableDeclaration", "span": { "start": 4696, "end": 4732, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4700, "end": 4731, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4700, "end": 4706, "ctxt": 0 }, "value": "r3arg2", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 4709, "end": 4731, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4713, "end": 4717, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4714, "end": 4717, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4716, "end": 4717, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4716, "end": 4717, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "body": { "type": "TsTypeAssertion", "span": { "start": 4722, "end": 4731, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 4727, "end": 4731, "ctxt": 0 } }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 4723, "end": 4726, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 4723, "end": 4724, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4723, "end": 4724, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "async": false, "generator": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 4709, "end": 4712, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4710, "end": 4711, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4710, "end": 4711, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 4737, "end": 4759, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4741, "end": 4758, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4741, "end": 4743, "ctxt": 0 }, "value": "r3", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4746, "end": 4758, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4746, "end": 4750, "ctxt": 0 }, "value": "foo3", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4751, "end": 4757, "ctxt": 0 }, "value": "r3arg2", "optional": false } } ], "typeArguments": null }, "definite": false } ] } ] } } ], "interpreter": null }