{ "type": "Script", "span": { "start": 103, "end": 1881, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 109, "end": 113, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 103, "end": 130, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 116, "end": 128, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 116, "end": 119, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 119, "end": 127, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 121, "end": 127, "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": 137, "end": 144, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "span": { "start": 131, "end": 174, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 160, "end": 172, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 160, "end": 163, "ctxt": 0 }, "value": "bar", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 163, "end": 171, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 165, "end": 171, "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": 153, "end": 157, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 181, "end": 189, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "span": { "start": 175, "end": 222, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 208, "end": 220, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 208, "end": 211, "ctxt": 0 }, "value": "baz", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 211, "end": 219, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 213, "end": 219, "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": 198, "end": 205, "ctxt": 0 }, "value": "Derived", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 229, "end": 241, "ctxt": 0 }, "value": "OtherDerived", "optional": false }, "declare": false, "span": { "start": 223, "end": 272, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 257, "end": 270, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 257, "end": 261, "ctxt": 0 }, "value": "bing", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 261, "end": 269, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 263, "end": 269, "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": 250, "end": 254, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "TsInterfaceDeclaration", "span": { "start": 274, "end": 1041, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 284, "end": 285, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 286, "end": 1041, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 308, "end": 328, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 308, "end": 309, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 309, "end": 327, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 311, "end": 327, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 315, "end": 319, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 316, "end": 319, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 318, "end": 319, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 318, "end": 319, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 311, "end": 314, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 312, "end": 313, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 312, "end": 313, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 321, "end": 327, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 324, "end": 327, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 324, "end": 325, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 324, "end": 325, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 333, "end": 359, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 333, "end": 335, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 335, "end": 358, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 337, "end": 358, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 341, "end": 345, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 342, "end": 345, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 344, "end": 345, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 344, "end": 345, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 337, "end": 340, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 338, "end": 339, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 338, "end": 339, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 347, "end": 358, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 350, "end": 358, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 350, "end": 356, "ctxt": 0 }, "kind": "string" } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 364, "end": 386, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 364, "end": 366, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 366, "end": 385, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 368, "end": 385, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 372, "end": 376, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 373, "end": 376, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 375, "end": 376, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 375, "end": 376, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 368, "end": 371, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 369, "end": 370, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 369, "end": 370, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 378, "end": 385, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 381, "end": 385, "ctxt": 0 }, "kind": "void" } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 391, "end": 423, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 391, "end": 393, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 393, "end": 422, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 395, "end": 422, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 401, "end": 405, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 402, "end": 405, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 404, "end": 405, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 404, "end": 405, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 407, "end": 411, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 408, "end": 411, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 410, "end": 411, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 410, "end": 411, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 395, "end": 400, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 396, "end": 397, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 396, "end": 397, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 398, "end": 399, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 398, "end": 399, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 413, "end": 422, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 416, "end": 422, "ctxt": 0 }, "kind": "string" } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 428, "end": 461, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 428, "end": 430, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 430, "end": 460, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 432, "end": 460, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 438, "end": 454, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 439, "end": 454, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 441, "end": 454, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 442, "end": 448, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 445, "end": 448, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 447, "end": 448, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 447, "end": 448, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 450, "end": 454, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 453, "end": 454, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 453, "end": 454, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 432, "end": 437, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 433, "end": 434, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 433, "end": 434, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 435, "end": 436, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 435, "end": 436, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 456, "end": 460, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 459, "end": 460, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 459, "end": 460, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 466, "end": 516, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 466, "end": 468, "ctxt": 0 }, "value": "a6", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 468, "end": 515, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 470, "end": 515, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 487, "end": 509, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 488, "end": 509, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 490, "end": 509, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 491, "end": 497, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 494, "end": 497, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 496, "end": 497, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 496, "end": 497, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 499, "end": 509, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 502, "end": 509, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 502, "end": 509, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 470, "end": 486, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 471, "end": 485, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 471, "end": 472, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 481, "end": 485, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 481, "end": 485, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 511, "end": 515, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 514, "end": 515, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 514, "end": 515, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 521, "end": 576, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 521, "end": 524, "ctxt": 0 }, "value": "a11", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 524, "end": 575, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 526, "end": 575, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 530, "end": 543, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 531, "end": 543, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 533, "end": 543, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 535, "end": 541, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 535, "end": 538, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 538, "end": 541, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 540, "end": 541, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 540, "end": 541, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } }, { "type": "Identifier", "span": { "start": 545, "end": 566, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 546, "end": 566, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 548, "end": 566, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 550, "end": 557, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 550, "end": 553, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 553, "end": 556, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 555, "end": 556, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 555, "end": 556, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 558, "end": 564, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 558, "end": 561, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 561, "end": 564, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 563, "end": 564, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 563, "end": 564, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 526, "end": 529, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 527, "end": 528, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 527, "end": 528, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 568, "end": 575, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 571, "end": 575, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 571, "end": 575, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 581, "end": 616, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 581, "end": 584, "ctxt": 0 }, "value": "a15", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 584, "end": 615, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 586, "end": 615, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 590, "end": 607, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 591, "end": 607, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 593, "end": 607, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 595, "end": 600, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 595, "end": 596, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 596, "end": 599, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 598, "end": 599, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 598, "end": 599, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 601, "end": 605, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 601, "end": 602, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 602, "end": 605, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 604, "end": 605, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 604, "end": 605, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 586, "end": 589, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 587, "end": 588, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 587, "end": 588, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 609, "end": 615, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 612, "end": 615, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 612, "end": 613, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 612, "end": 613, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 621, "end": 669, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 621, "end": 624, "ctxt": 0 }, "value": "a16", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 624, "end": 668, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 626, "end": 668, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 643, "end": 660, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 644, "end": 660, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 646, "end": 660, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 648, "end": 653, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 648, "end": 649, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 649, "end": 652, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 651, "end": 652, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 651, "end": 652, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 654, "end": 658, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 654, "end": 655, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 655, "end": 658, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 657, "end": 658, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 657, "end": 658, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 626, "end": 642, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 627, "end": 641, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 627, "end": 628, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 637, "end": 641, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 637, "end": 641, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 662, "end": 668, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 665, "end": 668, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 665, "end": 666, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 665, "end": 666, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 674, "end": 792, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 674, "end": 677, "ctxt": 0 }, "value": "a17", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 677, "end": 791, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 679, "end": 791, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 689, "end": 730, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 709, "end": 723, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 710, "end": 723, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 712, "end": 723, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 713, "end": 717, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 714, "end": 717, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 716, "end": 717, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 716, "end": 717, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 719, "end": 723, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 722, "end": 723, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 722, "end": 723, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 724, "end": 729, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 726, "end": 729, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 726, "end": 727, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 726, "end": 727, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 689, "end": 708, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 690, "end": 707, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 690, "end": 691, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 700, "end": 707, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 700, "end": 707, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 739, "end": 777, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 756, "end": 770, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 757, "end": 770, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 759, "end": 770, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 760, "end": 764, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 761, "end": 764, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 763, "end": 764, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 763, "end": 764, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 766, "end": 770, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 769, "end": 770, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 769, "end": 770, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 771, "end": 776, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 773, "end": 776, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 773, "end": 774, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 773, "end": 774, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 739, "end": 755, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 740, "end": 754, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 740, "end": 741, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 750, "end": 754, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 750, "end": 754, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 797, "end": 1039, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 797, "end": 800, "ctxt": 0 }, "value": "a18", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 800, "end": 1038, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 802, "end": 1038, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 812, "end": 917, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 813, "end": 908, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 814, "end": 908, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 816, "end": 908, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 830, "end": 859, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 850, "end": 854, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 851, "end": 854, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 853, "end": 854, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 853, "end": 854, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 855, "end": 858, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 857, "end": 858, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 857, "end": 858, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 830, "end": 849, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 831, "end": 848, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 831, "end": 832, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 841, "end": 848, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 841, "end": 848, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 872, "end": 898, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 889, "end": 893, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 890, "end": 893, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 892, "end": 893, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 892, "end": 893, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 894, "end": 897, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 896, "end": 897, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 896, "end": 897, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 872, "end": 888, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 873, "end": 887, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 873, "end": 874, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 883, "end": 887, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 883, "end": 887, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 909, "end": 916, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 911, "end": 916, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 911, "end": 914, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 926, "end": 1032, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 927, "end": 1023, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 928, "end": 1023, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 930, "end": 1023, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 944, "end": 974, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 965, "end": 969, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 966, "end": 969, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 968, "end": 969, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 968, "end": 969, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 970, "end": 973, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 972, "end": 973, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 972, "end": 973, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 944, "end": 964, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 945, "end": 963, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 945, "end": 946, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 955, "end": 963, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 955, "end": 963, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 987, "end": 1013, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1004, "end": 1008, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1005, "end": 1008, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1007, "end": 1008, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1007, "end": 1008, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1009, "end": 1012, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1011, "end": 1012, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1011, "end": 1012, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 987, "end": 1003, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 988, "end": 1002, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 988, "end": 989, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 998, "end": 1002, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 998, "end": 1002, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1024, "end": 1031, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1026, "end": 1031, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1026, "end": 1029, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null } ] } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1050, "end": 1881, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1060, "end": 1061, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1070, "end": 1071, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1070, "end": 1071, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1072, "end": 1881, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1089, "end": 1109, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1089, "end": 1090, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1090, "end": 1108, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1092, "end": 1108, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1096, "end": 1100, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1097, "end": 1100, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1099, "end": 1100, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1099, "end": 1100, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1092, "end": 1095, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1093, "end": 1094, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1093, "end": 1094, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1102, "end": 1108, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1105, "end": 1108, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1105, "end": 1106, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1105, "end": 1106, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1171, "end": 1197, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1171, "end": 1173, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1173, "end": 1196, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1175, "end": 1196, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1179, "end": 1183, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1180, "end": 1183, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1182, "end": 1183, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1182, "end": 1183, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1175, "end": 1178, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1176, "end": 1177, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1176, "end": 1177, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1185, "end": 1196, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1188, "end": 1196, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1188, "end": 1194, "ctxt": 0 }, "kind": "string" } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1208, "end": 1227, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1208, "end": 1210, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1210, "end": 1226, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1212, "end": 1226, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1216, "end": 1220, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1217, "end": 1220, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1219, "end": 1220, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1219, "end": 1220, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1212, "end": 1215, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1213, "end": 1214, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1213, "end": 1214, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1222, "end": 1226, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1225, "end": 1226, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1225, "end": 1226, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1262, "end": 1295, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1262, "end": 1264, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1264, "end": 1294, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1266, "end": 1294, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1273, "end": 1277, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1274, "end": 1277, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1276, "end": 1277, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1276, "end": 1277, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 1279, "end": 1283, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1280, "end": 1283, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1282, "end": 1283, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1282, "end": 1283, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1266, "end": 1272, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1267, "end": 1268, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1267, "end": 1268, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1270, "end": 1271, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1270, "end": 1271, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1285, "end": 1294, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1288, "end": 1294, "ctxt": 0 }, "kind": "string" } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1370, "end": 1404, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1370, "end": 1372, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1372, "end": 1403, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1374, "end": 1403, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1381, "end": 1397, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1382, "end": 1397, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1384, "end": 1397, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1385, "end": 1391, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1388, "end": 1391, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1390, "end": 1391, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1390, "end": 1391, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1393, "end": 1397, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1396, "end": 1397, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1396, "end": 1397, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1374, "end": 1380, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1375, "end": 1376, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1375, "end": 1376, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1378, "end": 1379, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1378, "end": 1379, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1399, "end": 1403, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1402, "end": 1403, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1402, "end": 1403, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1471, "end": 1534, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1471, "end": 1473, "ctxt": 0 }, "value": "a6", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1473, "end": 1533, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1475, "end": 1533, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1511, "end": 1527, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1512, "end": 1527, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1514, "end": 1527, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1515, "end": 1521, "ctxt": 0 }, "value": "arg", "optional": false, "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": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1523, "end": 1527, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1526, "end": 1527, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1526, "end": 1527, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1475, "end": 1510, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1476, "end": 1490, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1476, "end": 1477, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1486, "end": 1490, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1486, "end": 1490, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1492, "end": 1509, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1492, "end": 1493, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1502, "end": 1509, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1502, "end": 1509, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1529, "end": 1533, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1532, "end": 1533, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1532, "end": 1533, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1588, "end": 1646, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1588, "end": 1591, "ctxt": 0 }, "value": "a11", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1591, "end": 1645, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1593, "end": 1645, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1600, "end": 1613, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1601, "end": 1613, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1603, "end": 1613, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1605, "end": 1611, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1605, "end": 1608, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1608, "end": 1611, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1610, "end": 1611, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1610, "end": 1611, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } }, { "type": "Identifier", "span": { "start": 1615, "end": 1636, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1616, "end": 1636, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1618, "end": 1636, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1620, "end": 1627, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1620, "end": 1623, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1623, "end": 1626, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1625, "end": 1626, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1625, "end": 1626, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1628, "end": 1634, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1628, "end": 1631, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1631, "end": 1634, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1633, "end": 1634, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1633, "end": 1634, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1593, "end": 1599, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1594, "end": 1595, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1594, "end": 1595, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1597, "end": 1598, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1597, "end": 1598, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1638, "end": 1645, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1641, "end": 1645, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1641, "end": 1645, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1657, "end": 1696, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1657, "end": 1660, "ctxt": 0 }, "value": "a15", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1660, "end": 1695, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1662, "end": 1695, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1669, "end": 1687, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1670, "end": 1687, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1672, "end": 1687, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1674, "end": 1679, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1674, "end": 1675, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1675, "end": 1678, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1677, "end": 1678, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1677, "end": 1678, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1680, "end": 1685, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1680, "end": 1681, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1681, "end": 1684, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1683, "end": 1684, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1683, "end": 1684, "ctxt": 0 }, "value": "V", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1662, "end": 1668, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1663, "end": 1664, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1663, "end": 1664, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1666, "end": 1667, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1666, "end": 1667, "ctxt": 0 }, "value": "V", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1689, "end": 1695, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1692, "end": 1695, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1692, "end": 1693, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1692, "end": 1693, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1721, "end": 1756, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1721, "end": 1724, "ctxt": 0 }, "value": "a16", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1724, "end": 1755, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1726, "end": 1755, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1730, "end": 1747, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1731, "end": 1747, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1733, "end": 1747, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1735, "end": 1740, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1735, "end": 1736, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1736, "end": 1739, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1738, "end": 1739, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1738, "end": 1739, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1741, "end": 1745, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1741, "end": 1742, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1742, "end": 1745, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1744, "end": 1745, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1744, "end": 1745, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1726, "end": 1729, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1727, "end": 1728, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1727, "end": 1728, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1749, "end": 1755, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1752, "end": 1755, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1752, "end": 1753, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1752, "end": 1753, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1796, "end": 1828, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1796, "end": 1799, "ctxt": 0 }, "value": "a17", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1799, "end": 1827, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1801, "end": 1827, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1805, "end": 1819, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1806, "end": 1819, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1808, "end": 1819, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1809, "end": 1813, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1810, "end": 1813, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1812, "end": 1813, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1812, "end": 1813, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1815, "end": 1819, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1818, "end": 1819, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1818, "end": 1819, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1801, "end": 1804, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1802, "end": 1803, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1802, "end": 1803, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1821, "end": 1827, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1824, "end": 1827, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1824, "end": 1825, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1824, "end": 1825, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1839, "end": 1873, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1839, "end": 1842, "ctxt": 0 }, "value": "a18", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1842, "end": 1872, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1844, "end": 1872, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1845, "end": 1862, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1846, "end": 1862, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1848, "end": 1862, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1852, "end": 1856, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1853, "end": 1856, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1855, "end": 1856, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1855, "end": 1856, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1848, "end": 1851, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1849, "end": 1850, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1849, "end": 1850, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1858, "end": 1862, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1861, "end": 1862, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1861, "end": 1862, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1864, "end": 1872, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1867, "end": 1872, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1867, "end": 1870, "ctxt": 0 }, "kind": "any" } } } } }, "typeParams": null } ] } } ], "interpreter": null }