{ "type": "Script", "span": { "start": 117, "end": 4356, "ctxt": 0 }, "body": [ { "type": "TsModuleDeclaration", "span": { "start": 117, "end": 4356, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 124, "end": 130, "ctxt": 0 }, "value": "Errors", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 131, "end": 4356, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 143, "end": 147, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 137, "end": 164, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 150, "end": 162, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 150, "end": 153, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 153, "end": 161, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 155, "end": 161, "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": 175, "end": 182, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "span": { "start": 169, "end": 212, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 198, "end": 210, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 198, "end": 201, "ctxt": 0 }, "value": "bar", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 201, "end": 209, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 203, "end": 209, "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": 191, "end": 195, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 223, "end": 231, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "span": { "start": 217, "end": 264, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 250, "end": 262, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 250, "end": 253, "ctxt": 0 }, "value": "baz", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 253, "end": 261, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 255, "end": 261, "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": 240, "end": 247, "ctxt": 0 }, "value": "Derived", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 275, "end": 287, "ctxt": 0 }, "value": "OtherDerived", "optional": false }, "declare": false, "span": { "start": 269, "end": 318, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 303, "end": 316, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 303, "end": 307, "ctxt": 0 }, "value": "bing", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 307, "end": 315, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 309, "end": 315, "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": 296, "end": 300, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "TsModuleDeclaration", "span": { "start": 324, "end": 3889, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 331, "end": 365, "ctxt": 0 }, "value": "WithNonGenericSignaturesInBaseType", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 366, "end": 3889, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 430, "end": 1767, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 440, "end": 441, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 442, "end": 1767, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 456, "end": 484, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 456, "end": 458, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 458, "end": 483, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 460, "end": 483, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 461, "end": 470, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 462, "end": 470, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 464, "end": 470, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 472, "end": 483, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 475, "end": 483, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 475, "end": 481, "ctxt": 0 }, "kind": "string" } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 497, "end": 554, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 497, "end": 499, "ctxt": 0 }, "value": "a7", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 499, "end": 553, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 501, "end": 553, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 502, "end": 527, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 503, "end": 527, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 505, "end": 527, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 506, "end": 515, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 509, "end": 515, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 511, "end": 515, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 511, "end": 515, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 517, "end": 527, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 520, "end": 527, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 520, "end": 527, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 529, "end": 553, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 532, "end": 553, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 533, "end": 540, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 534, "end": 540, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 536, "end": 540, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 536, "end": 540, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 542, "end": 553, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 545, "end": 553, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 545, "end": 553, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 567, "end": 651, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 567, "end": 569, "ctxt": 0 }, "value": "a8", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 569, "end": 650, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 571, "end": 650, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 572, "end": 597, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 573, "end": 597, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 575, "end": 597, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 576, "end": 585, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 579, "end": 585, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 581, "end": 585, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 581, "end": 585, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 587, "end": 597, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 590, "end": 597, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 590, "end": 597, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 599, "end": 625, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 600, "end": 625, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 602, "end": 625, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 603, "end": 613, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 607, "end": 613, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 609, "end": 613, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 609, "end": 613, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 615, "end": 625, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 618, "end": 625, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 618, "end": 625, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 627, "end": 650, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 630, "end": 650, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 631, "end": 638, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 632, "end": 638, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 634, "end": 638, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 634, "end": 638, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 640, "end": 650, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 643, "end": 650, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 643, "end": 650, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 664, "end": 692, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 664, "end": 667, "ctxt": 0 }, "value": "a10", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 667, "end": 691, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 669, "end": 691, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 670, "end": 682, "ctxt": 0 }, "rest": { "start": 670, "end": 673, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 673, "end": 674, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 674, "end": 682, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 676, "end": 682, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 676, "end": 680, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 676, "end": 680, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 684, "end": 691, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 687, "end": 691, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 687, "end": 691, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 705, "end": 772, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 705, "end": 708, "ctxt": 0 }, "value": "a11", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 708, "end": 771, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 710, "end": 771, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 711, "end": 729, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 712, "end": 729, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 714, "end": 729, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 716, "end": 727, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 716, "end": 719, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 719, "end": 727, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 721, "end": 727, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } }, { "type": "Identifier", "span": { "start": 731, "end": 762, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 732, "end": 762, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 734, "end": 762, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 736, "end": 748, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 736, "end": 739, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 739, "end": 747, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 741, "end": 747, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 749, "end": 760, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 749, "end": 752, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 752, "end": 760, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 754, "end": 760, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 764, "end": 771, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 767, "end": 771, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 767, "end": 771, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 785, "end": 845, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 785, "end": 788, "ctxt": 0 }, "value": "a12", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 788, "end": 844, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 790, "end": 844, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 791, "end": 805, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 792, "end": 805, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 794, "end": 805, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 794, "end": 799, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 799, "end": 805, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 800, "end": 804, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 800, "end": 804, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 807, "end": 825, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 808, "end": 825, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 810, "end": 825, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 810, "end": 815, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 815, "end": 825, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 816, "end": 824, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 816, "end": 824, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } ] } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 827, "end": 844, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 830, "end": 844, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 830, "end": 835, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 835, "end": 844, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 836, "end": 843, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 836, "end": 843, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 858, "end": 957, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 858, "end": 861, "ctxt": 0 }, "value": "a14", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 861, "end": 956, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 863, "end": 956, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 881, "end": 903, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 882, "end": 891, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 883, "end": 891, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 885, "end": 891, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 892, "end": 902, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 894, "end": 902, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 894, "end": 900, "ctxt": 0 }, "kind": "number" } } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 920, "end": 942, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 921, "end": 930, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 922, "end": 930, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 924, "end": 930, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 931, "end": 941, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 933, "end": 941, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 933, "end": 939, "ctxt": 0 }, "kind": "string" } } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 970, "end": 1015, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 970, "end": 973, "ctxt": 0 }, "value": "a15", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 973, "end": 1014, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 975, "end": 1014, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 976, "end": 1003, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 977, "end": 1003, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 979, "end": 1003, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 981, "end": 991, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 981, "end": 982, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 982, "end": 990, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 984, "end": 990, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 992, "end": 1001, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 992, "end": 993, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 993, "end": 1001, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 995, "end": 1001, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1005, "end": 1014, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1008, "end": 1014, "ctxt": 0 }, "kind": "number" } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1028, "end": 1430, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1028, "end": 1031, "ctxt": 0 }, "value": "a16", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1031, "end": 1429, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1033, "end": 1429, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1157, "end": 1275, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1158, "end": 1263, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1159, "end": 1263, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1161, "end": 1263, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1183, "end": 1203, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1184, "end": 1193, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1185, "end": 1193, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1187, "end": 1193, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1194, "end": 1202, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1196, "end": 1202, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1224, "end": 1245, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1225, "end": 1235, "ctxt": 0 }, "value": "a", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1227, "end": 1235, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1229, "end": 1235, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1236, "end": 1244, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1238, "end": 1244, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1264, "end": 1274, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1266, "end": 1274, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1266, "end": 1272, "ctxt": 0 }, "kind": "number" } } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1292, "end": 1415, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1293, "end": 1402, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1294, "end": 1402, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1296, "end": 1402, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1318, "end": 1340, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1319, "end": 1329, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1320, "end": 1329, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1322, "end": 1329, "ctxt": 0 }, "kind": "boolean" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1330, "end": 1339, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1332, "end": 1339, "ctxt": 0 }, "kind": "boolean" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1361, "end": 1384, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1362, "end": 1373, "ctxt": 0 }, "value": "a", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1364, "end": 1373, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1366, "end": 1373, "ctxt": 0 }, "kind": "boolean" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1374, "end": 1383, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1376, "end": 1383, "ctxt": 0 }, "kind": "boolean" } }, "typeParams": null } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1403, "end": 1414, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1405, "end": 1414, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1405, "end": 1412, "ctxt": 0 }, "kind": "boolean" } } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1443, "end": 1757, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1443, "end": 1446, "ctxt": 0 }, "value": "a17", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1446, "end": 1756, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1448, "end": 1756, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1466, "end": 1595, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1467, "end": 1586, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1468, "end": 1586, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1470, "end": 1586, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1492, "end": 1521, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1512, "end": 1516, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1513, "end": 1516, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1515, "end": 1516, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1515, "end": 1516, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1517, "end": 1520, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1519, "end": 1520, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1519, "end": 1520, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1492, "end": 1511, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1493, "end": 1510, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1493, "end": 1494, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1503, "end": 1510, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1503, "end": 1510, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1542, "end": 1568, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1559, "end": 1563, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1560, "end": 1563, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1562, "end": 1563, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1562, "end": 1563, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1564, "end": 1567, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1566, "end": 1567, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1566, "end": 1567, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1542, "end": 1558, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1543, "end": 1557, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1543, "end": 1544, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1553, "end": 1557, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1553, "end": 1557, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1587, "end": 1594, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1589, "end": 1594, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1589, "end": 1592, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1612, "end": 1742, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1613, "end": 1733, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1614, "end": 1733, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1616, "end": 1733, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1638, "end": 1668, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1659, "end": 1663, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1660, "end": 1663, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1662, "end": 1663, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1662, "end": 1663, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1664, "end": 1667, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1666, "end": 1667, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1666, "end": 1667, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1638, "end": 1658, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1639, "end": 1657, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1639, "end": 1640, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1649, "end": 1657, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1649, "end": 1657, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1689, "end": 1715, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1706, "end": 1710, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1707, "end": 1710, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1709, "end": 1710, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1709, "end": 1710, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1711, "end": 1714, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1713, "end": 1714, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1713, "end": 1714, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1689, "end": 1705, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1690, "end": 1704, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1690, "end": 1691, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1700, "end": 1704, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1700, "end": 1704, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1734, "end": 1741, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1736, "end": 1741, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1736, "end": 1739, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null } ] } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1777, "end": 1958, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1787, "end": 1788, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1797, "end": 1798, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1797, "end": 1798, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1799, "end": 1958, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1813, "end": 1837, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1813, "end": 1815, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1815, "end": 1836, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1817, "end": 1836, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1824, "end": 1828, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1825, "end": 1828, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1827, "end": 1828, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1827, "end": 1828, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1817, "end": 1823, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1818, "end": 1819, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1818, "end": 1819, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1821, "end": 1822, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1821, "end": 1822, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1830, "end": 1836, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1833, "end": 1836, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1833, "end": 1834, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1833, "end": 1834, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1968, "end": 2114, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1978, "end": 1980, "ctxt": 0 }, "value": "I2", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1980, "end": 1986, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1981, "end": 1982, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1981, "end": 1982, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1984, "end": 1985, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1984, "end": 1985, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1995, "end": 1996, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1995, "end": 1996, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1997, "end": 2114, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2011, "end": 2029, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2011, "end": 2013, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2013, "end": 2028, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2015, "end": 2028, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2016, "end": 2020, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2017, "end": 2020, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2019, "end": 2020, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2019, "end": 2020, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2022, "end": 2028, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2025, "end": 2028, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2025, "end": 2026, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2025, "end": 2026, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2124, "end": 2333, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2134, "end": 2136, "ctxt": 0 }, "value": "I3", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2145, "end": 2146, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2145, "end": 2146, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2147, "end": 2333, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2230, "end": 2323, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2230, "end": 2232, "ctxt": 0 }, "value": "a7", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2232, "end": 2322, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2234, "end": 2322, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2290, "end": 2306, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2291, "end": 2306, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2293, "end": 2306, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2294, "end": 2300, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2297, "end": 2300, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2299, "end": 2300, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2299, "end": 2300, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2302, "end": 2306, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2305, "end": 2306, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2305, "end": 2306, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2234, "end": 2289, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2235, "end": 2249, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2235, "end": 2236, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2245, "end": 2249, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2245, "end": 2249, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2251, "end": 2268, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2251, "end": 2252, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2261, "end": 2268, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2261, "end": 2268, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2270, "end": 2288, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2270, "end": 2271, "ctxt": 0 }, "value": "V", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2280, "end": 2288, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2280, "end": 2288, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2308, "end": 2322, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2311, "end": 2322, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2312, "end": 2316, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2313, "end": 2316, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2315, "end": 2316, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2315, "end": 2316, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2318, "end": 2322, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2321, "end": 2322, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2321, "end": 2322, "ctxt": 0 }, "value": "V", "optional": false }, "typeParams": null } } } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2343, "end": 2521, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2353, "end": 2355, "ctxt": 0 }, "value": "I4", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2364, "end": 2365, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2364, "end": 2365, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2366, "end": 2521, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2380, "end": 2487, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2380, "end": 2382, "ctxt": 0 }, "value": "a8", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2382, "end": 2486, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2384, "end": 2486, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2420, "end": 2436, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2421, "end": 2436, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2423, "end": 2436, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2424, "end": 2430, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2427, "end": 2430, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2429, "end": 2430, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2429, "end": 2430, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2432, "end": 2436, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2435, "end": 2436, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2435, "end": 2436, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 2438, "end": 2470, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2439, "end": 2470, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2441, "end": 2470, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2442, "end": 2464, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2446, "end": 2464, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2448, "end": 2464, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2450, "end": 2462, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2450, "end": 2453, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2453, "end": 2461, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2455, "end": 2461, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2466, "end": 2470, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2469, "end": 2470, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2469, "end": 2470, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2384, "end": 2419, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2385, "end": 2399, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2385, "end": 2386, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2395, "end": 2399, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2395, "end": 2399, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2401, "end": 2418, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2401, "end": 2402, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2411, "end": 2418, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2411, "end": 2418, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2472, "end": 2486, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2475, "end": 2486, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2476, "end": 2480, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2477, "end": 2480, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2479, "end": 2480, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2479, "end": 2480, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2482, "end": 2486, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2485, "end": 2486, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2485, "end": 2486, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2531, "end": 2703, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2541, "end": 2544, "ctxt": 0 }, "value": "I4B", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2553, "end": 2554, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2553, "end": 2554, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2555, "end": 2703, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2569, "end": 2610, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2569, "end": 2572, "ctxt": 0 }, "value": "a10", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2572, "end": 2609, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2574, "end": 2609, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 2594, "end": 2603, "ctxt": 0 }, "rest": { "start": 2594, "end": 2597, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 2597, "end": 2598, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2598, "end": 2603, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2600, "end": 2603, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2600, "end": 2601, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2600, "end": 2601, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2574, "end": 2593, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2575, "end": 2592, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2575, "end": 2576, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2585, "end": 2592, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2585, "end": 2592, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2605, "end": 2609, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2608, "end": 2609, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2608, "end": 2609, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2713, "end": 2911, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2723, "end": 2726, "ctxt": 0 }, "value": "I4C", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2735, "end": 2736, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2735, "end": 2736, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2737, "end": 2911, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2751, "end": 2793, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2751, "end": 2754, "ctxt": 0 }, "value": "a11", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2754, "end": 2792, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2756, "end": 2792, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2776, "end": 2780, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2777, "end": 2780, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2779, "end": 2780, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2779, "end": 2780, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 2782, "end": 2786, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2783, "end": 2786, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2785, "end": 2786, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2785, "end": 2786, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2756, "end": 2775, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2757, "end": 2774, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2757, "end": 2758, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2767, "end": 2774, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2767, "end": 2774, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2788, "end": 2792, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2791, "end": 2792, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2791, "end": 2792, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2921, "end": 3098, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2931, "end": 2934, "ctxt": 0 }, "value": "I4E", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2943, "end": 2944, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2943, "end": 2944, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2945, "end": 3098, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2959, "end": 3029, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2959, "end": 2962, "ctxt": 0 }, "value": "a12", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2962, "end": 3028, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2964, "end": 3028, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2992, "end": 3006, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2993, "end": 3006, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2995, "end": 3006, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2995, "end": 3000, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3000, "end": 3006, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3001, "end": 3005, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3001, "end": 3005, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 3008, "end": 3022, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3009, "end": 3022, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3011, "end": 3022, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3011, "end": 3016, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3016, "end": 3022, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3017, "end": 3021, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3017, "end": 3021, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2964, "end": 2991, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2965, "end": 2990, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2965, "end": 2966, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2975, "end": 2990, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2975, "end": 2980, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2980, "end": 2990, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2981, "end": 2989, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2981, "end": 2989, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } ] } }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3024, "end": 3028, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3027, "end": 3028, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3027, "end": 3028, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3108, "end": 3244, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3118, "end": 3120, "ctxt": 0 }, "value": "I6", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 3129, "end": 3130, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3129, "end": 3130, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 3131, "end": 3244, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3145, "end": 3178, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3145, "end": 3148, "ctxt": 0 }, "value": "a15", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3148, "end": 3177, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3150, "end": 3177, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3154, "end": 3171, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3155, "end": 3171, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 3157, "end": 3171, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 3159, "end": 3164, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3159, "end": 3160, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3160, "end": 3163, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3162, "end": 3163, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3162, "end": 3163, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3165, "end": 3169, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3165, "end": 3166, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3166, "end": 3169, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3168, "end": 3169, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3168, "end": 3169, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3150, "end": 3153, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3151, "end": 3152, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3151, "end": 3152, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3173, "end": 3177, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3176, "end": 3177, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3176, "end": 3177, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3254, "end": 3428, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3264, "end": 3266, "ctxt": 0 }, "value": "I7", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 3275, "end": 3276, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3275, "end": 3276, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 3277, "end": 3428, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3291, "end": 3342, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3291, "end": 3294, "ctxt": 0 }, "value": "a15", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3294, "end": 3341, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3296, "end": 3341, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3313, "end": 3330, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3314, "end": 3330, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 3316, "end": 3330, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 3318, "end": 3323, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3318, "end": 3319, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3319, "end": 3322, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3321, "end": 3322, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3321, "end": 3322, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3324, "end": 3328, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3324, "end": 3325, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3325, "end": 3328, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3327, "end": 3328, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3327, "end": 3328, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3296, "end": 3312, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3297, "end": 3311, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3297, "end": 3298, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 3307, "end": 3311, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3307, "end": 3311, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3332, "end": 3341, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3335, "end": 3341, "ctxt": 0 }, "kind": "number" } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3438, "end": 3676, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3448, "end": 3450, "ctxt": 0 }, "value": "I8", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 3459, "end": 3460, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3459, "end": 3460, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 3461, "end": 3676, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3634, "end": 3666, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3634, "end": 3637, "ctxt": 0 }, "value": "a16", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3637, "end": 3665, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3639, "end": 3665, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3643, "end": 3657, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3644, "end": 3657, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3646, "end": 3657, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3647, "end": 3651, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3648, "end": 3651, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3650, "end": 3651, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3650, "end": 3651, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3653, "end": 3657, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3656, "end": 3657, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3656, "end": 3657, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3639, "end": 3642, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3640, "end": 3641, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3640, "end": 3641, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3659, "end": 3665, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 3662, "end": 3665, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 3662, "end": 3663, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3662, "end": 3663, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3686, "end": 3883, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3696, "end": 3698, "ctxt": 0 }, "value": "I9", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 3707, "end": 3708, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3707, "end": 3708, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 3709, "end": 3883, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3723, "end": 3757, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3723, "end": 3726, "ctxt": 0 }, "value": "a17", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3726, "end": 3756, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3728, "end": 3756, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3732, "end": 3746, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3733, "end": 3746, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3735, "end": 3746, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3736, "end": 3740, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3737, "end": 3740, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3739, "end": 3740, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3739, "end": 3740, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3742, "end": 3746, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3745, "end": 3746, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3745, "end": 3746, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3728, "end": 3731, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3729, "end": 3730, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3729, "end": 3730, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3748, "end": 3756, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 3751, "end": 3756, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 3751, "end": 3754, "ctxt": 0 }, "kind": "any" } } } } }, "typeParams": null } ] } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 3895, "end": 4354, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 3902, "end": 3933, "ctxt": 0 }, "value": "WithGenericSignaturesInBaseType", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 3934, "end": 4354, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 3992, "end": 4049, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4002, "end": 4003, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 4004, "end": 4049, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 4018, "end": 4039, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 4018, "end": 4020, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4020, "end": 4038, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4022, "end": 4038, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4026, "end": 4030, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4027, "end": 4030, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4029, "end": 4030, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4029, "end": 4030, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4022, "end": 4025, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4023, "end": 4024, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4023, "end": 4024, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4032, "end": 4038, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 4035, "end": 4038, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 4035, "end": 4036, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4035, "end": 4036, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 4059, "end": 4141, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4069, "end": 4071, "ctxt": 0 }, "value": "I6", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 4080, "end": 4081, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 4080, "end": 4081, "ctxt": 0 }, "value": "B", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 4082, "end": 4141, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 4096, "end": 4122, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 4096, "end": 4098, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4098, "end": 4121, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4100, "end": 4121, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4104, "end": 4108, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4105, "end": 4108, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4107, "end": 4108, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4107, "end": 4108, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4100, "end": 4103, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4101, "end": 4102, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4101, "end": 4102, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4110, "end": 4121, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 4113, "end": 4121, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 4113, "end": 4119, "ctxt": 0 }, "kind": "string" } } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 4199, "end": 4261, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4209, "end": 4210, "ctxt": 0 }, "value": "C", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 4211, "end": 4261, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 4225, "end": 4251, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 4225, "end": 4227, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4227, "end": 4250, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4229, "end": 4250, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4233, "end": 4237, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4234, "end": 4237, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4236, "end": 4237, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4236, "end": 4237, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4229, "end": 4232, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4230, "end": 4231, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4230, "end": 4231, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4239, "end": 4250, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 4242, "end": 4250, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 4242, "end": 4248, "ctxt": 0 }, "kind": "string" } } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 4271, "end": 4348, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4281, "end": 4283, "ctxt": 0 }, "value": "I7", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 4292, "end": 4293, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 4292, "end": 4293, "ctxt": 0 }, "value": "C", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 4294, "end": 4348, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 4308, "end": 4329, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 4308, "end": 4310, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4310, "end": 4328, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4312, "end": 4328, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4316, "end": 4320, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4317, "end": 4320, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4319, "end": 4320, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4319, "end": 4320, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4312, "end": 4315, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4313, "end": 4314, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4313, "end": 4314, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4322, "end": 4328, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 4325, "end": 4328, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 4325, "end": 4326, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4325, "end": 4326, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null } ] } } ] } } ] } } ], "interpreter": null }