{ "type": "Script", "span": { "start": 118, "end": 4357, "ctxt": 0 }, "body": [ { "type": "TsModuleDeclaration", "span": { "start": 118, "end": 4357, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 125, "end": 131, "ctxt": 0 }, "value": "Errors", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 132, "end": 4357, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 144, "end": 148, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 138, "end": 165, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 151, "end": 163, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 151, "end": 154, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 154, "end": 162, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 156, "end": 162, "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": 176, "end": 183, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "span": { "start": 170, "end": 213, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 199, "end": 211, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 199, "end": 202, "ctxt": 0 }, "value": "bar", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 202, "end": 210, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 204, "end": 210, "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": 192, "end": 196, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 224, "end": 232, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "span": { "start": 218, "end": 265, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 251, "end": 263, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 251, "end": 254, "ctxt": 0 }, "value": "baz", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 254, "end": 262, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 256, "end": 262, "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": 241, "end": 248, "ctxt": 0 }, "value": "Derived", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 276, "end": 288, "ctxt": 0 }, "value": "OtherDerived", "optional": false }, "declare": false, "span": { "start": 270, "end": 319, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 304, "end": 317, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 304, "end": 308, "ctxt": 0 }, "value": "bing", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 308, "end": 316, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 310, "end": 316, "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": 297, "end": 301, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "TsModuleDeclaration", "span": { "start": 325, "end": 3890, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 332, "end": 366, "ctxt": 0 }, "value": "WithNonGenericSignaturesInBaseType", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 367, "end": 3890, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 431, "end": 1768, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 441, "end": 442, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 443, "end": 1768, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 457, "end": 485, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 457, "end": 459, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 459, "end": 484, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 461, "end": 484, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 462, "end": 471, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 463, "end": 471, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 465, "end": 471, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 473, "end": 484, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 476, "end": 484, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 476, "end": 482, "ctxt": 0 }, "kind": "string" } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 498, "end": 555, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 498, "end": 500, "ctxt": 0 }, "value": "a7", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 500, "end": 554, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 502, "end": 554, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 503, "end": 528, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 504, "end": 528, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 506, "end": 528, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 507, "end": 516, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 510, "end": 516, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 512, "end": 516, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 512, "end": 516, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 518, "end": 528, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 521, "end": 528, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 521, "end": 528, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 530, "end": 554, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 533, "end": 554, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 534, "end": 541, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 535, "end": 541, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 537, "end": 541, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 537, "end": 541, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 543, "end": 554, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 546, "end": 554, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 546, "end": 554, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 568, "end": 652, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 568, "end": 570, "ctxt": 0 }, "value": "a8", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 570, "end": 651, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 572, "end": 651, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 573, "end": 598, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 574, "end": 598, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 576, "end": 598, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 577, "end": 586, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 580, "end": 586, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 582, "end": 586, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 582, "end": 586, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 588, "end": 598, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 591, "end": 598, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 591, "end": 598, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 600, "end": 626, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 601, "end": 626, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 603, "end": 626, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 604, "end": 614, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 608, "end": 614, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 610, "end": 614, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 610, "end": 614, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 616, "end": 626, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 619, "end": 626, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 619, "end": 626, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 628, "end": 651, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 631, "end": 651, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 632, "end": 639, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 633, "end": 639, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 635, "end": 639, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 635, "end": 639, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 641, "end": 651, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 644, "end": 651, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 644, "end": 651, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 665, "end": 693, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 665, "end": 668, "ctxt": 0 }, "value": "a10", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 668, "end": 692, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 670, "end": 692, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 671, "end": 683, "ctxt": 0 }, "rest": { "start": 671, "end": 674, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 674, "end": 675, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 675, "end": 683, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 677, "end": 683, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 677, "end": 681, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 677, "end": 681, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 685, "end": 692, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 688, "end": 692, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 688, "end": 692, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 706, "end": 773, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 706, "end": 709, "ctxt": 0 }, "value": "a11", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 709, "end": 772, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 711, "end": 772, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 712, "end": 730, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 713, "end": 730, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 715, "end": 730, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 717, "end": 728, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 717, "end": 720, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 720, "end": 728, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 722, "end": 728, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } }, { "type": "Identifier", "span": { "start": 732, "end": 763, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 733, "end": 763, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 735, "end": 763, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 737, "end": 749, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 737, "end": 740, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 740, "end": 748, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 742, "end": 748, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 750, "end": 761, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 750, "end": 753, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 753, "end": 761, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 755, "end": 761, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 765, "end": 772, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 768, "end": 772, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 768, "end": 772, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 786, "end": 846, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 786, "end": 789, "ctxt": 0 }, "value": "a12", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 789, "end": 845, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 791, "end": 845, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 792, "end": 806, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 793, "end": 806, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 795, "end": 806, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 795, "end": 800, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 800, "end": 806, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 801, "end": 805, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 801, "end": 805, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 808, "end": 826, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 809, "end": 826, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 811, "end": 826, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 811, "end": 816, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 816, "end": 826, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 817, "end": 825, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 817, "end": 825, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } ] } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 828, "end": 845, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 831, "end": 845, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 831, "end": 836, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 836, "end": 845, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 837, "end": 844, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 837, "end": 844, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 859, "end": 958, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 859, "end": 862, "ctxt": 0 }, "value": "a14", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 862, "end": 957, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 864, "end": 957, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 882, "end": 904, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 883, "end": 892, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 884, "end": 892, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 886, "end": 892, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 893, "end": 903, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 895, "end": 903, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 895, "end": 901, "ctxt": 0 }, "kind": "number" } } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 921, "end": 943, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 922, "end": 931, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 923, "end": 931, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 925, "end": 931, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 932, "end": 942, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 934, "end": 942, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 934, "end": 940, "ctxt": 0 }, "kind": "string" } } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 971, "end": 1016, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 971, "end": 974, "ctxt": 0 }, "value": "a15", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 974, "end": 1015, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 976, "end": 1015, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 977, "end": 1004, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 978, "end": 1004, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 980, "end": 1004, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 982, "end": 992, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 982, "end": 983, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 983, "end": 991, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 985, "end": 991, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 993, "end": 1002, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 993, "end": 994, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 994, "end": 1002, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 996, "end": 1002, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1006, "end": 1015, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1009, "end": 1015, "ctxt": 0 }, "kind": "number" } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1029, "end": 1431, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1029, "end": 1032, "ctxt": 0 }, "value": "a16", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1032, "end": 1430, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1034, "end": 1430, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1158, "end": 1276, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1159, "end": 1264, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1160, "end": 1264, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1162, "end": 1264, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1184, "end": 1204, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1185, "end": 1194, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1186, "end": 1194, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1188, "end": 1194, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1195, "end": 1203, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1197, "end": 1203, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1225, "end": 1246, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1226, "end": 1236, "ctxt": 0 }, "value": "a", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1228, "end": 1236, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1230, "end": 1236, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1237, "end": 1245, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1239, "end": 1245, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1265, "end": 1275, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1267, "end": 1275, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1267, "end": 1273, "ctxt": 0 }, "kind": "number" } } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1293, "end": 1416, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1294, "end": 1403, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1295, "end": 1403, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1297, "end": 1403, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1319, "end": 1341, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1320, "end": 1330, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1321, "end": 1330, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1323, "end": 1330, "ctxt": 0 }, "kind": "boolean" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1331, "end": 1340, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1333, "end": 1340, "ctxt": 0 }, "kind": "boolean" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1362, "end": 1385, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1363, "end": 1374, "ctxt": 0 }, "value": "a", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1365, "end": 1374, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1367, "end": 1374, "ctxt": 0 }, "kind": "boolean" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1375, "end": 1384, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1377, "end": 1384, "ctxt": 0 }, "kind": "boolean" } }, "typeParams": null } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1404, "end": 1415, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1406, "end": 1415, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1406, "end": 1413, "ctxt": 0 }, "kind": "boolean" } } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1444, "end": 1758, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1444, "end": 1447, "ctxt": 0 }, "value": "a17", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1447, "end": 1757, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1449, "end": 1757, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1467, "end": 1596, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1468, "end": 1587, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1469, "end": 1587, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1471, "end": 1587, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1493, "end": 1522, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1513, "end": 1517, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1514, "end": 1517, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1516, "end": 1517, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1516, "end": 1517, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1518, "end": 1521, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1520, "end": 1521, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1520, "end": 1521, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1493, "end": 1512, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1494, "end": 1511, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1494, "end": 1495, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1504, "end": 1511, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1504, "end": 1511, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1543, "end": 1569, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1560, "end": 1564, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1561, "end": 1564, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1563, "end": 1564, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1563, "end": 1564, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1565, "end": 1568, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1567, "end": 1568, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1567, "end": 1568, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1543, "end": 1559, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1544, "end": 1558, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1544, "end": 1545, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1554, "end": 1558, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1554, "end": 1558, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1588, "end": 1595, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1590, "end": 1595, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1590, "end": 1593, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1613, "end": 1743, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1614, "end": 1734, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1615, "end": 1734, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1617, "end": 1734, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1639, "end": 1669, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1660, "end": 1664, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1661, "end": 1664, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1663, "end": 1664, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1663, "end": 1664, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1665, "end": 1668, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1667, "end": 1668, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1667, "end": 1668, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1639, "end": 1659, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1640, "end": 1658, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1640, "end": 1641, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1650, "end": 1658, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1650, "end": 1658, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1690, "end": 1716, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1707, "end": 1711, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1708, "end": 1711, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1710, "end": 1711, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1710, "end": 1711, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1712, "end": 1715, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1714, "end": 1715, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1714, "end": 1715, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1690, "end": 1706, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1691, "end": 1705, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1691, "end": 1692, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1701, "end": 1705, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1701, "end": 1705, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1735, "end": 1742, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1737, "end": 1742, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1737, "end": 1740, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null } ] } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1778, "end": 1959, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1788, "end": 1789, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1798, "end": 1799, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1798, "end": 1799, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1800, "end": 1959, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1814, "end": 1838, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1814, "end": 1816, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1816, "end": 1837, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1818, "end": 1837, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1825, "end": 1829, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1826, "end": 1829, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1828, "end": 1829, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1828, "end": 1829, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1818, "end": 1824, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1819, "end": 1820, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1819, "end": 1820, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1822, "end": 1823, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1822, "end": 1823, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1831, "end": 1837, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1834, "end": 1837, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1834, "end": 1835, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1834, "end": 1835, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1969, "end": 2115, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1979, "end": 1981, "ctxt": 0 }, "value": "I2", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1981, "end": 1987, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1982, "end": 1983, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1982, "end": 1983, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1985, "end": 1986, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1985, "end": 1986, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1996, "end": 1997, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1996, "end": 1997, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1998, "end": 2115, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2012, "end": 2030, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2012, "end": 2014, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2014, "end": 2029, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2016, "end": 2029, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2017, "end": 2021, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2018, "end": 2021, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2020, "end": 2021, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2020, "end": 2021, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2023, "end": 2029, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2026, "end": 2029, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2026, "end": 2027, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2026, "end": 2027, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2125, "end": 2334, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2135, "end": 2137, "ctxt": 0 }, "value": "I3", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2146, "end": 2147, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2146, "end": 2147, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2148, "end": 2334, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2231, "end": 2324, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2231, "end": 2233, "ctxt": 0 }, "value": "a7", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2233, "end": 2323, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2235, "end": 2323, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2291, "end": 2307, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2292, "end": 2307, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2294, "end": 2307, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2295, "end": 2301, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2298, "end": 2301, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2300, "end": 2301, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2300, "end": 2301, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2303, "end": 2307, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2306, "end": 2307, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2306, "end": 2307, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2235, "end": 2290, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2236, "end": 2250, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2236, "end": 2237, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2246, "end": 2250, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2246, "end": 2250, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2252, "end": 2269, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2252, "end": 2253, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2262, "end": 2269, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2262, "end": 2269, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2271, "end": 2289, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2271, "end": 2272, "ctxt": 0 }, "value": "V", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2281, "end": 2289, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2281, "end": 2289, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2309, "end": 2323, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2312, "end": 2323, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2313, "end": 2317, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2314, "end": 2317, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2316, "end": 2317, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2316, "end": 2317, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2319, "end": 2323, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2322, "end": 2323, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2322, "end": 2323, "ctxt": 0 }, "value": "V", "optional": false }, "typeParams": null } } } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2344, "end": 2522, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2354, "end": 2356, "ctxt": 0 }, "value": "I4", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2365, "end": 2366, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2365, "end": 2366, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2367, "end": 2522, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2381, "end": 2488, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2381, "end": 2383, "ctxt": 0 }, "value": "a8", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2383, "end": 2487, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2385, "end": 2487, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2421, "end": 2437, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2422, "end": 2437, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2424, "end": 2437, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2425, "end": 2431, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2428, "end": 2431, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2430, "end": 2431, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2430, "end": 2431, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2433, "end": 2437, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2436, "end": 2437, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2436, "end": 2437, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 2439, "end": 2471, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2440, "end": 2471, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2442, "end": 2471, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2443, "end": 2465, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2447, "end": 2465, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2449, "end": 2465, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2451, "end": 2463, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2451, "end": 2454, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2454, "end": 2462, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2456, "end": 2462, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2467, "end": 2471, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2470, "end": 2471, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2470, "end": 2471, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2385, "end": 2420, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2386, "end": 2400, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2386, "end": 2387, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2396, "end": 2400, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2396, "end": 2400, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2402, "end": 2419, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2402, "end": 2403, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2412, "end": 2419, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2412, "end": 2419, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2473, "end": 2487, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2476, "end": 2487, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2477, "end": 2481, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2478, "end": 2481, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2480, "end": 2481, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2480, "end": 2481, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2483, "end": 2487, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2486, "end": 2487, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2486, "end": 2487, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2532, "end": 2704, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2542, "end": 2545, "ctxt": 0 }, "value": "I4B", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2554, "end": 2555, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2554, "end": 2555, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2556, "end": 2704, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2570, "end": 2611, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2570, "end": 2573, "ctxt": 0 }, "value": "a10", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2573, "end": 2610, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2575, "end": 2610, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 2595, "end": 2604, "ctxt": 0 }, "rest": { "start": 2595, "end": 2598, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 2598, "end": 2599, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2599, "end": 2604, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2601, "end": 2604, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2601, "end": 2602, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2601, "end": 2602, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2575, "end": 2594, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2576, "end": 2593, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2576, "end": 2577, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2586, "end": 2593, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2586, "end": 2593, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2606, "end": 2610, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2609, "end": 2610, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2609, "end": 2610, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2714, "end": 2912, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2724, "end": 2727, "ctxt": 0 }, "value": "I4C", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2736, "end": 2737, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2736, "end": 2737, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2738, "end": 2912, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2752, "end": 2794, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2752, "end": 2755, "ctxt": 0 }, "value": "a11", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2755, "end": 2793, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2757, "end": 2793, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2777, "end": 2781, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2778, "end": 2781, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2780, "end": 2781, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2780, "end": 2781, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 2783, "end": 2787, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2784, "end": 2787, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2786, "end": 2787, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2786, "end": 2787, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2757, "end": 2776, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2758, "end": 2775, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2758, "end": 2759, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2768, "end": 2775, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2768, "end": 2775, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2789, "end": 2793, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2792, "end": 2793, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2792, "end": 2793, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2922, "end": 3099, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2932, "end": 2935, "ctxt": 0 }, "value": "I4E", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2944, "end": 2945, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2944, "end": 2945, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2946, "end": 3099, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2960, "end": 3030, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2960, "end": 2963, "ctxt": 0 }, "value": "a12", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2963, "end": 3029, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2965, "end": 3029, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2993, "end": 3007, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2994, "end": 3007, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2996, "end": 3007, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2996, "end": 3001, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3001, "end": 3007, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3002, "end": 3006, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3002, "end": 3006, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 3009, "end": 3023, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3010, "end": 3023, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3012, "end": 3023, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3012, "end": 3017, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3017, "end": 3023, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3018, "end": 3022, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3018, "end": 3022, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2965, "end": 2992, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2966, "end": 2991, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2966, "end": 2967, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2976, "end": 2991, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2976, "end": 2981, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2981, "end": 2991, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2982, "end": 2990, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2982, "end": 2990, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } ] } }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3025, "end": 3029, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3028, "end": 3029, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3028, "end": 3029, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3109, "end": 3245, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3119, "end": 3121, "ctxt": 0 }, "value": "I6", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 3130, "end": 3131, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3130, "end": 3131, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 3132, "end": 3245, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3146, "end": 3179, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3146, "end": 3149, "ctxt": 0 }, "value": "a15", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3149, "end": 3178, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3151, "end": 3178, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3155, "end": 3172, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3156, "end": 3172, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 3158, "end": 3172, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 3160, "end": 3165, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3160, "end": 3161, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3161, "end": 3164, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3163, "end": 3164, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3163, "end": 3164, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3166, "end": 3170, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3166, "end": 3167, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3167, "end": 3170, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3169, "end": 3170, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3169, "end": 3170, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3151, "end": 3154, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3152, "end": 3153, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3152, "end": 3153, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3174, "end": 3178, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3177, "end": 3178, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3177, "end": 3178, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3255, "end": 3429, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3265, "end": 3267, "ctxt": 0 }, "value": "I7", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 3276, "end": 3277, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3276, "end": 3277, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 3278, "end": 3429, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3292, "end": 3343, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3292, "end": 3295, "ctxt": 0 }, "value": "a15", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3295, "end": 3342, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3297, "end": 3342, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3314, "end": 3331, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3315, "end": 3331, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 3317, "end": 3331, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 3319, "end": 3324, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3319, "end": 3320, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3320, "end": 3323, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3322, "end": 3323, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3322, "end": 3323, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3325, "end": 3329, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3325, "end": 3326, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3326, "end": 3329, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3328, "end": 3329, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3328, "end": 3329, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3297, "end": 3313, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3298, "end": 3312, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3298, "end": 3299, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 3308, "end": 3312, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3308, "end": 3312, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3333, "end": 3342, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3336, "end": 3342, "ctxt": 0 }, "kind": "number" } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3439, "end": 3677, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3449, "end": 3451, "ctxt": 0 }, "value": "I8", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 3460, "end": 3461, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3460, "end": 3461, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 3462, "end": 3677, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3635, "end": 3667, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3635, "end": 3638, "ctxt": 0 }, "value": "a16", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3638, "end": 3666, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3640, "end": 3666, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3644, "end": 3658, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3645, "end": 3658, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3647, "end": 3658, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3648, "end": 3652, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3649, "end": 3652, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3651, "end": 3652, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3651, "end": 3652, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3654, "end": 3658, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3657, "end": 3658, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3657, "end": 3658, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3640, "end": 3643, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3641, "end": 3642, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3641, "end": 3642, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3660, "end": 3666, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 3663, "end": 3666, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 3663, "end": 3664, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3663, "end": 3664, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3687, "end": 3884, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3697, "end": 3699, "ctxt": 0 }, "value": "I9", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 3708, "end": 3709, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3708, "end": 3709, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 3710, "end": 3884, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3724, "end": 3758, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3724, "end": 3727, "ctxt": 0 }, "value": "a17", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3727, "end": 3757, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3729, "end": 3757, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3733, "end": 3747, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3734, "end": 3747, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3736, "end": 3747, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3737, "end": 3741, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3738, "end": 3741, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3740, "end": 3741, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3740, "end": 3741, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3743, "end": 3747, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3746, "end": 3747, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3746, "end": 3747, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3729, "end": 3732, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3730, "end": 3731, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3730, "end": 3731, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3749, "end": 3757, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 3752, "end": 3757, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 3752, "end": 3755, "ctxt": 0 }, "kind": "any" } } } } }, "typeParams": null } ] } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 3896, "end": 4355, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 3903, "end": 3934, "ctxt": 0 }, "value": "WithGenericSignaturesInBaseType", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 3935, "end": 4355, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 3993, "end": 4050, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4003, "end": 4004, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 4005, "end": 4050, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 4019, "end": 4040, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 4019, "end": 4021, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4021, "end": 4039, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4023, "end": 4039, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4027, "end": 4031, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4028, "end": 4031, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4030, "end": 4031, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4030, "end": 4031, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4023, "end": 4026, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4024, "end": 4025, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4024, "end": 4025, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4033, "end": 4039, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 4036, "end": 4039, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 4036, "end": 4037, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4036, "end": 4037, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 4060, "end": 4142, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4070, "end": 4072, "ctxt": 0 }, "value": "I6", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 4081, "end": 4082, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 4081, "end": 4082, "ctxt": 0 }, "value": "B", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 4083, "end": 4142, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 4097, "end": 4123, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 4097, "end": 4099, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4099, "end": 4122, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4101, "end": 4122, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4105, "end": 4109, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4106, "end": 4109, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4108, "end": 4109, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4108, "end": 4109, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4101, "end": 4104, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4102, "end": 4103, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4102, "end": 4103, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4111, "end": 4122, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 4114, "end": 4122, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 4114, "end": 4120, "ctxt": 0 }, "kind": "string" } } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 4200, "end": 4262, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4210, "end": 4211, "ctxt": 0 }, "value": "C", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 4212, "end": 4262, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 4226, "end": 4252, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 4226, "end": 4228, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4228, "end": 4251, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4230, "end": 4251, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4234, "end": 4238, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4235, "end": 4238, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4237, "end": 4238, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4237, "end": 4238, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4230, "end": 4233, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4231, "end": 4232, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4231, "end": 4232, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4240, "end": 4251, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 4243, "end": 4251, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 4243, "end": 4249, "ctxt": 0 }, "kind": "string" } } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 4272, "end": 4349, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4282, "end": 4284, "ctxt": 0 }, "value": "I7", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 4293, "end": 4294, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 4293, "end": 4294, "ctxt": 0 }, "value": "C", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 4295, "end": 4349, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 4309, "end": 4330, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 4309, "end": 4311, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4311, "end": 4329, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4313, "end": 4329, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4317, "end": 4321, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4318, "end": 4321, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4320, "end": 4321, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4320, "end": 4321, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4313, "end": 4316, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4314, "end": 4315, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4314, "end": 4315, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4323, "end": 4329, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 4326, "end": 4329, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 4326, "end": 4327, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4326, "end": 4327, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null } ] } } ] } } ] } } ], "interpreter": null }