{ "type": "Script", "span": { "start": 102, "end": 1880, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 108, "end": 112, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 102, "end": 129, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 115, "end": 127, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 115, "end": 118, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 118, "end": 126, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 120, "end": 126, "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": 136, "end": 143, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "span": { "start": 130, "end": 173, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 159, "end": 171, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 159, "end": 162, "ctxt": 0 }, "value": "bar", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 162, "end": 170, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 164, "end": 170, "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": 152, "end": 156, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 180, "end": 188, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "span": { "start": 174, "end": 221, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 207, "end": 219, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 207, "end": 210, "ctxt": 0 }, "value": "baz", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 210, "end": 218, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 212, "end": 218, "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": 197, "end": 204, "ctxt": 0 }, "value": "Derived", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 228, "end": 240, "ctxt": 0 }, "value": "OtherDerived", "optional": false }, "declare": false, "span": { "start": 222, "end": 271, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 256, "end": 269, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 256, "end": 260, "ctxt": 0 }, "value": "bing", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 260, "end": 268, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 262, "end": 268, "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": 249, "end": 253, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "TsInterfaceDeclaration", "span": { "start": 273, "end": 1040, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 283, "end": 284, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 285, "end": 1040, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 307, "end": 327, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 307, "end": 308, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 308, "end": 326, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 310, "end": 326, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 314, "end": 318, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 315, "end": 318, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 317, "end": 318, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 317, "end": 318, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 310, "end": 313, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 311, "end": 312, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 311, "end": 312, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 320, "end": 326, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 323, "end": 326, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 323, "end": 324, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 323, "end": 324, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 332, "end": 358, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 332, "end": 334, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 334, "end": 357, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 336, "end": 357, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 340, "end": 344, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 341, "end": 344, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 343, "end": 344, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 343, "end": 344, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 336, "end": 339, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 337, "end": 338, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 337, "end": 338, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 346, "end": 357, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 349, "end": 357, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 349, "end": 355, "ctxt": 0 }, "kind": "string" } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 363, "end": 385, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 363, "end": 365, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 365, "end": 384, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 367, "end": 384, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 371, "end": 375, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 372, "end": 375, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 374, "end": 375, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 374, "end": 375, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 367, "end": 370, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 368, "end": 369, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 368, "end": 369, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 377, "end": 384, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 380, "end": 384, "ctxt": 0 }, "kind": "void" } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 390, "end": 422, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 390, "end": 392, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 392, "end": 421, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 394, "end": 421, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 400, "end": 404, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 401, "end": 404, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 403, "end": 404, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 403, "end": 404, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 406, "end": 410, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 407, "end": 410, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 409, "end": 410, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 409, "end": 410, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 394, "end": 399, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 395, "end": 396, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 395, "end": 396, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 397, "end": 398, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 397, "end": 398, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 412, "end": 421, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 415, "end": 421, "ctxt": 0 }, "kind": "string" } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 427, "end": 460, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 427, "end": 429, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 429, "end": 459, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 431, "end": 459, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 437, "end": 453, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 438, "end": 453, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 440, "end": 453, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 441, "end": 447, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 444, "end": 447, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 446, "end": 447, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 446, "end": 447, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 449, "end": 453, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 452, "end": 453, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 452, "end": 453, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 431, "end": 436, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 432, "end": 433, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 432, "end": 433, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 434, "end": 435, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 434, "end": 435, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 455, "end": 459, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 458, "end": 459, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 458, "end": 459, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 465, "end": 515, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 465, "end": 467, "ctxt": 0 }, "value": "a6", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 467, "end": 514, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 469, "end": 514, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 486, "end": 508, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 487, "end": 508, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 489, "end": 508, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 490, "end": 496, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 493, "end": 496, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 495, "end": 496, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 495, "end": 496, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 498, "end": 508, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 501, "end": 508, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 501, "end": 508, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 469, "end": 485, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 470, "end": 484, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 470, "end": 471, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 480, "end": 484, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 480, "end": 484, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 510, "end": 514, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 513, "end": 514, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 513, "end": 514, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 520, "end": 575, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 520, "end": 523, "ctxt": 0 }, "value": "a11", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 523, "end": 574, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 525, "end": 574, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 529, "end": 542, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 530, "end": 542, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 532, "end": 542, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 534, "end": 540, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 534, "end": 537, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 537, "end": 540, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 539, "end": 540, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 539, "end": 540, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } }, { "type": "Identifier", "span": { "start": 544, "end": 565, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 545, "end": 565, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 547, "end": 565, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 549, "end": 556, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 549, "end": 552, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 552, "end": 555, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 554, "end": 555, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 554, "end": 555, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 557, "end": 563, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 557, "end": 560, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 560, "end": 563, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 562, "end": 563, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 562, "end": 563, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 525, "end": 528, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 526, "end": 527, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 526, "end": 527, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 567, "end": 574, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 570, "end": 574, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 570, "end": 574, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 580, "end": 615, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 580, "end": 583, "ctxt": 0 }, "value": "a15", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 583, "end": 614, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 585, "end": 614, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 589, "end": 606, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 590, "end": 606, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 592, "end": 606, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 594, "end": 599, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 594, "end": 595, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 595, "end": 598, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 597, "end": 598, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 597, "end": 598, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 600, "end": 604, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 600, "end": 601, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 601, "end": 604, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 603, "end": 604, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 603, "end": 604, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 585, "end": 588, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 586, "end": 587, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 586, "end": 587, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 608, "end": 614, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 611, "end": 614, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 611, "end": 612, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 611, "end": 612, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 620, "end": 668, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 620, "end": 623, "ctxt": 0 }, "value": "a16", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 623, "end": 667, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 625, "end": 667, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 642, "end": 659, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 643, "end": 659, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 645, "end": 659, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 647, "end": 652, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 647, "end": 648, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 648, "end": 651, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 650, "end": 651, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 650, "end": 651, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 653, "end": 657, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 653, "end": 654, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 654, "end": 657, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 656, "end": 657, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 656, "end": 657, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 625, "end": 641, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 626, "end": 640, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 626, "end": 627, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 636, "end": 640, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 636, "end": 640, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 661, "end": 667, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 664, "end": 667, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 664, "end": 665, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 664, "end": 665, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 673, "end": 791, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 673, "end": 676, "ctxt": 0 }, "value": "a17", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 676, "end": 790, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 678, "end": 790, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 688, "end": 729, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 708, "end": 722, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 709, "end": 722, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 711, "end": 722, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 712, "end": 716, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 713, "end": 716, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 715, "end": 716, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 715, "end": 716, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 718, "end": 722, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 721, "end": 722, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 721, "end": 722, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 723, "end": 728, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 725, "end": 728, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 725, "end": 726, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 725, "end": 726, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 688, "end": 707, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 689, "end": 706, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 689, "end": 690, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 699, "end": 706, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 699, "end": 706, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 738, "end": 776, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 755, "end": 769, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 756, "end": 769, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 758, "end": 769, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 759, "end": 763, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 760, "end": 763, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 762, "end": 763, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 762, "end": 763, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 765, "end": 769, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 768, "end": 769, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 768, "end": 769, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 770, "end": 775, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 772, "end": 775, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 772, "end": 773, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 772, "end": 773, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 738, "end": 754, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 739, "end": 753, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 739, "end": 740, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 749, "end": 753, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 749, "end": 753, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 796, "end": 1038, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 796, "end": 799, "ctxt": 0 }, "value": "a18", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 799, "end": 1037, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 801, "end": 1037, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 811, "end": 916, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 812, "end": 907, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 813, "end": 907, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 815, "end": 907, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 829, "end": 858, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 849, "end": 853, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 850, "end": 853, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 852, "end": 853, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 852, "end": 853, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 854, "end": 857, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 856, "end": 857, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 856, "end": 857, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 829, "end": 848, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 830, "end": 847, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 830, "end": 831, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 840, "end": 847, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 840, "end": 847, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 871, "end": 897, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 888, "end": 892, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 889, "end": 892, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 891, "end": 892, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 891, "end": 892, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 893, "end": 896, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 895, "end": 896, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 895, "end": 896, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 871, "end": 887, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 872, "end": 886, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 872, "end": 873, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 882, "end": 886, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 882, "end": 886, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 908, "end": 915, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 910, "end": 915, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 910, "end": 913, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 925, "end": 1031, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 926, "end": 1022, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 927, "end": 1022, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 929, "end": 1022, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 943, "end": 973, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 964, "end": 968, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 965, "end": 968, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 967, "end": 968, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 967, "end": 968, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 969, "end": 972, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 971, "end": 972, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 971, "end": 972, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 943, "end": 963, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 944, "end": 962, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 944, "end": 945, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 954, "end": 962, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 954, "end": 962, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 986, "end": 1012, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1003, "end": 1007, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1004, "end": 1007, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1006, "end": 1007, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1006, "end": 1007, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1008, "end": 1011, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1010, "end": 1011, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1010, "end": 1011, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 986, "end": 1002, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 987, "end": 1001, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 987, "end": 988, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 997, "end": 1001, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 997, "end": 1001, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1023, "end": 1030, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1025, "end": 1030, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1025, "end": 1028, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null } ] } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1049, "end": 1880, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1059, "end": 1060, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1069, "end": 1070, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1069, "end": 1070, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1071, "end": 1880, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1088, "end": 1108, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1088, "end": 1089, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1089, "end": 1107, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1091, "end": 1107, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1095, "end": 1099, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1096, "end": 1099, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1098, "end": 1099, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1098, "end": 1099, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1091, "end": 1094, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1092, "end": 1093, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1092, "end": 1093, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1101, "end": 1107, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1104, "end": 1107, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1104, "end": 1105, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1104, "end": 1105, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1170, "end": 1196, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1170, "end": 1172, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1172, "end": 1195, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1174, "end": 1195, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1178, "end": 1182, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1179, "end": 1182, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1181, "end": 1182, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1181, "end": 1182, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1174, "end": 1177, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1175, "end": 1176, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1175, "end": 1176, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1184, "end": 1195, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1187, "end": 1195, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1187, "end": 1193, "ctxt": 0 }, "kind": "string" } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1207, "end": 1226, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1207, "end": 1209, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1209, "end": 1225, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1211, "end": 1225, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1215, "end": 1219, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1216, "end": 1219, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1218, "end": 1219, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1218, "end": 1219, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1211, "end": 1214, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1212, "end": 1213, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1212, "end": 1213, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1221, "end": 1225, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1224, "end": 1225, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1224, "end": 1225, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1261, "end": 1294, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1261, "end": 1263, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1263, "end": 1293, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1265, "end": 1293, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1272, "end": 1276, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1273, "end": 1276, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1275, "end": 1276, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1275, "end": 1276, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 1278, "end": 1282, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1279, "end": 1282, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1281, "end": 1282, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1281, "end": 1282, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1265, "end": 1271, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1266, "end": 1267, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1266, "end": 1267, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1269, "end": 1270, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1269, "end": 1270, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1284, "end": 1293, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1287, "end": 1293, "ctxt": 0 }, "kind": "string" } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1369, "end": 1403, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1369, "end": 1371, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1371, "end": 1402, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1373, "end": 1402, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1380, "end": 1396, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1381, "end": 1396, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1383, "end": 1396, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1384, "end": 1390, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1387, "end": 1390, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1389, "end": 1390, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1389, "end": 1390, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1392, "end": 1396, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1395, "end": 1396, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1395, "end": 1396, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1373, "end": 1379, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1374, "end": 1375, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1374, "end": 1375, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1377, "end": 1378, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1377, "end": 1378, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1398, "end": 1402, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1401, "end": 1402, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1401, "end": 1402, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1470, "end": 1533, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1470, "end": 1472, "ctxt": 0 }, "value": "a6", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1472, "end": 1532, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1474, "end": 1532, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1510, "end": 1526, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1511, "end": 1526, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1513, "end": 1526, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1514, "end": 1520, "ctxt": 0 }, "value": "arg", "optional": false, "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": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1522, "end": 1526, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1525, "end": 1526, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1525, "end": 1526, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1474, "end": 1509, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1475, "end": 1489, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1475, "end": 1476, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1485, "end": 1489, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1485, "end": 1489, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1491, "end": 1508, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1491, "end": 1492, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1501, "end": 1508, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1501, "end": 1508, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1528, "end": 1532, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1531, "end": 1532, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1531, "end": 1532, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1587, "end": 1645, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1587, "end": 1590, "ctxt": 0 }, "value": "a11", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1590, "end": 1644, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1592, "end": 1644, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1599, "end": 1612, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1600, "end": 1612, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1602, "end": 1612, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1604, "end": 1610, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1604, "end": 1607, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1607, "end": 1610, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1609, "end": 1610, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1609, "end": 1610, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } }, { "type": "Identifier", "span": { "start": 1614, "end": 1635, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1615, "end": 1635, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1617, "end": 1635, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1619, "end": 1626, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1619, "end": 1622, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1622, "end": 1625, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1624, "end": 1625, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1624, "end": 1625, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1627, "end": 1633, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1627, "end": 1630, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1630, "end": 1633, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1632, "end": 1633, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1632, "end": 1633, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1592, "end": 1598, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1593, "end": 1594, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1593, "end": 1594, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1596, "end": 1597, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1596, "end": 1597, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1637, "end": 1644, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1640, "end": 1644, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1640, "end": 1644, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1656, "end": 1695, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1656, "end": 1659, "ctxt": 0 }, "value": "a15", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1659, "end": 1694, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1661, "end": 1694, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1668, "end": 1686, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1669, "end": 1686, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1671, "end": 1686, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1673, "end": 1678, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1673, "end": 1674, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1674, "end": 1677, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1676, "end": 1677, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1676, "end": 1677, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1679, "end": 1684, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1679, "end": 1680, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1680, "end": 1683, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1682, "end": 1683, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1682, "end": 1683, "ctxt": 0 }, "value": "V", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1661, "end": 1667, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1662, "end": 1663, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1662, "end": 1663, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1665, "end": 1666, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1665, "end": 1666, "ctxt": 0 }, "value": "V", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1688, "end": 1694, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1691, "end": 1694, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1691, "end": 1692, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1691, "end": 1692, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1720, "end": 1755, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1720, "end": 1723, "ctxt": 0 }, "value": "a16", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1723, "end": 1754, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1725, "end": 1754, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1729, "end": 1746, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1730, "end": 1746, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1732, "end": 1746, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1734, "end": 1739, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1734, "end": 1735, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1735, "end": 1738, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1737, "end": 1738, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1737, "end": 1738, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1740, "end": 1744, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1740, "end": 1741, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1741, "end": 1744, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1743, "end": 1744, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1743, "end": 1744, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1725, "end": 1728, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1726, "end": 1727, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1726, "end": 1727, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1748, "end": 1754, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1751, "end": 1754, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1751, "end": 1752, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1751, "end": 1752, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1795, "end": 1827, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1795, "end": 1798, "ctxt": 0 }, "value": "a17", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1798, "end": 1826, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1800, "end": 1826, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1804, "end": 1818, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1805, "end": 1818, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1807, "end": 1818, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1808, "end": 1812, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1809, "end": 1812, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1811, "end": 1812, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1811, "end": 1812, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1814, "end": 1818, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1817, "end": 1818, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1817, "end": 1818, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1800, "end": 1803, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1801, "end": 1802, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1801, "end": 1802, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1820, "end": 1826, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1823, "end": 1826, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1823, "end": 1824, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1823, "end": 1824, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1838, "end": 1872, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1838, "end": 1841, "ctxt": 0 }, "value": "a18", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1841, "end": 1871, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1843, "end": 1871, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1844, "end": 1861, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1845, "end": 1861, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1847, "end": 1861, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1851, "end": 1855, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1852, "end": 1855, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1854, "end": 1855, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1854, "end": 1855, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1847, "end": 1850, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1848, "end": 1849, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1848, "end": 1849, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1857, "end": 1861, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1860, "end": 1861, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1860, "end": 1861, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1863, "end": 1871, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1866, "end": 1871, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1866, "end": 1869, "ctxt": 0 }, "kind": "any" } } } } }, "typeParams": null } ] } } ], "interpreter": null }