{ "type": "Script", "span": { "start": 104, "end": 2465, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 110, "end": 114, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 104, "end": 131, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 117, "end": 129, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 117, "end": 120, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 120, "end": 128, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 122, "end": 128, "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": 139, "end": 146, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "span": { "start": 133, "end": 176, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 162, "end": 174, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 162, "end": 165, "ctxt": 0 }, "value": "bar", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 165, "end": 173, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 167, "end": 173, "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": 155, "end": 159, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 184, "end": 192, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "span": { "start": 178, "end": 225, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 211, "end": 223, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 211, "end": 214, "ctxt": 0 }, "value": "baz", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 214, "end": 222, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 216, "end": 222, "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": 201, "end": 208, "ctxt": 0 }, "value": "Derived", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 233, "end": 245, "ctxt": 0 }, "value": "OtherDerived", "optional": false }, "declare": false, "span": { "start": 227, "end": 276, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 261, "end": 274, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 261, "end": 265, "ctxt": 0 }, "value": "bing", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 265, "end": 273, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 267, "end": 273, "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": 254, "end": 258, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "TsInterfaceDeclaration", "span": { "start": 280, "end": 1366, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 290, "end": 291, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 292, "end": 1366, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 316, "end": 340, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 316, "end": 317, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 317, "end": 339, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 319, "end": 339, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 327, "end": 331, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 328, "end": 331, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 330, "end": 331, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 330, "end": 331, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 323, "end": 326, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 324, "end": 325, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 324, "end": 325, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 333, "end": 339, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 336, "end": 339, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 336, "end": 337, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 336, "end": 337, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 346, "end": 376, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 346, "end": 348, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 348, "end": 375, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 350, "end": 375, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 358, "end": 362, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 359, "end": 362, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 361, "end": 362, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 361, "end": 362, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 354, "end": 357, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 355, "end": 356, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 355, "end": 356, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 364, "end": 375, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 367, "end": 375, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 367, "end": 373, "ctxt": 0 }, "kind": "string" } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 382, "end": 408, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 382, "end": 384, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 384, "end": 407, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 386, "end": 407, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 394, "end": 398, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 395, "end": 398, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 397, "end": 398, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 397, "end": 398, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 390, "end": 393, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 391, "end": 392, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 391, "end": 392, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 400, "end": 407, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 403, "end": 407, "ctxt": 0 }, "kind": "void" } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 414, "end": 451, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 414, "end": 416, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 416, "end": 450, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 418, "end": 450, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 429, "end": 433, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 430, "end": 433, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 432, "end": 433, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 432, "end": 433, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 435, "end": 439, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 436, "end": 439, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 438, "end": 439, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 438, "end": 439, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 422, "end": 428, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 423, "end": 424, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 423, "end": 424, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 426, "end": 427, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 426, "end": 427, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 441, "end": 450, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 444, "end": 450, "ctxt": 0 }, "kind": "string" } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 457, "end": 495, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 457, "end": 459, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 459, "end": 494, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 461, "end": 494, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 472, "end": 488, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 473, "end": 488, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 475, "end": 488, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 476, "end": 482, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 479, "end": 482, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 481, "end": 482, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 481, "end": 482, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 484, "end": 488, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 487, "end": 488, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 487, "end": 488, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 465, "end": 471, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 466, "end": 467, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 466, "end": 467, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 469, "end": 470, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 469, "end": 470, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 490, "end": 494, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 493, "end": 494, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 493, "end": 494, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 501, "end": 555, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 501, "end": 503, "ctxt": 0 }, "value": "a6", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 503, "end": 554, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 505, "end": 554, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 526, "end": 548, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 527, "end": 548, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 529, "end": 548, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 530, "end": 536, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 533, "end": 536, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 535, "end": 536, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 535, "end": 536, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 538, "end": 548, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 541, "end": 548, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 541, "end": 548, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 509, "end": 525, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 510, "end": 524, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 510, "end": 511, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 520, "end": 524, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 520, "end": 524, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 550, "end": 554, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 553, "end": 554, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 553, "end": 554, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 561, "end": 620, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 561, "end": 564, "ctxt": 0 }, "value": "a11", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 564, "end": 619, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 566, "end": 619, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 574, "end": 587, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 575, "end": 587, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 577, "end": 587, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 579, "end": 585, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 579, "end": 582, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 582, "end": 585, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 584, "end": 585, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 584, "end": 585, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } }, { "type": "Identifier", "span": { "start": 589, "end": 610, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 590, "end": 610, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 592, "end": 610, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 594, "end": 601, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 594, "end": 597, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 597, "end": 600, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 599, "end": 600, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 599, "end": 600, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 602, "end": 608, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 602, "end": 605, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 605, "end": 608, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 607, "end": 608, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 607, "end": 608, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 570, "end": 573, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 571, "end": 572, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 571, "end": 572, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 612, "end": 619, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 615, "end": 619, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 615, "end": 619, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 626, "end": 665, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 626, "end": 629, "ctxt": 0 }, "value": "a15", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 629, "end": 664, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 631, "end": 664, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 639, "end": 656, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 640, "end": 656, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 642, "end": 656, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 644, "end": 649, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 644, "end": 645, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 645, "end": 648, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 647, "end": 648, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 647, "end": 648, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 650, "end": 654, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 650, "end": 651, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 651, "end": 654, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 653, "end": 654, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 653, "end": 654, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 635, "end": 638, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 636, "end": 637, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 636, "end": 637, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 658, "end": 664, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 661, "end": 664, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 661, "end": 662, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 661, "end": 662, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 671, "end": 723, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 671, "end": 674, "ctxt": 0 }, "value": "a16", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 674, "end": 722, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 676, "end": 722, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 697, "end": 714, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 698, "end": 714, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 700, "end": 714, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 702, "end": 707, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 702, "end": 703, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 703, "end": 706, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 705, "end": 706, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 705, "end": 706, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 708, "end": 712, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 708, "end": 709, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 709, "end": 712, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 711, "end": 712, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 711, "end": 712, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 680, "end": 696, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 681, "end": 695, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 681, "end": 682, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 691, "end": 695, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 691, "end": 695, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 716, "end": 722, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 719, "end": 722, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 719, "end": 720, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 719, "end": 720, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 729, "end": 830, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 729, "end": 732, "ctxt": 0 }, "value": "a17", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 732, "end": 829, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 734, "end": 829, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 745, "end": 777, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 766, "end": 770, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 767, "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": 749, "end": 765, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 750, "end": 764, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 750, "end": 751, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 760, "end": 764, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 760, "end": 764, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 787, "end": 822, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 811, "end": 815, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 812, "end": 815, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 814, "end": 815, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 814, "end": 815, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 816, "end": 821, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 818, "end": 821, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 818, "end": 819, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 818, "end": 819, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 791, "end": 810, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 792, "end": 809, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 792, "end": 793, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 802, "end": 809, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 802, "end": 809, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] } } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 836, "end": 947, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 836, "end": 839, "ctxt": 0 }, "value": "a18", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 839, "end": 946, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 841, "end": 946, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 852, "end": 892, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 876, "end": 880, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 877, "end": 880, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 879, "end": 880, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 879, "end": 880, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 881, "end": 891, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 883, "end": 891, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 883, "end": 889, "ctxt": 0 }, "kind": "number" } } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 856, "end": 875, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 857, "end": 874, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 857, "end": 858, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 867, "end": 874, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 867, "end": 874, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 902, "end": 939, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 923, "end": 927, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 924, "end": 927, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 926, "end": 927, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 926, "end": 927, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 928, "end": 938, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 930, "end": 938, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 930, "end": 936, "ctxt": 0 }, "kind": "number" } } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 906, "end": 922, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 907, "end": 921, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 907, "end": 908, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 917, "end": 921, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 917, "end": 921, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 953, "end": 1082, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 953, "end": 956, "ctxt": 0 }, "value": "a19", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 956, "end": 1081, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 958, "end": 1081, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 969, "end": 1018, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 993, "end": 1011, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 994, "end": 1011, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 996, "end": 1011, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1001, "end": 1005, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1002, "end": 1005, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1004, "end": 1005, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1004, "end": 1005, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1007, "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 } }, "isAbstract": false } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1012, "end": 1017, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1014, "end": 1017, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1014, "end": 1015, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1014, "end": 1015, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 973, "end": 992, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 974, "end": 991, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 974, "end": 975, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 984, "end": 991, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 984, "end": 991, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1028, "end": 1074, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1049, "end": 1067, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1050, "end": 1067, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1052, "end": 1067, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1057, "end": 1061, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1058, "end": 1061, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1060, "end": 1061, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1060, "end": 1061, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1063, "end": 1067, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1066, "end": 1067, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1066, "end": 1067, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "isAbstract": false } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1068, "end": 1073, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1070, "end": 1073, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1070, "end": 1071, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1070, "end": 1071, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1032, "end": 1048, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1033, "end": 1047, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1033, "end": 1034, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1043, "end": 1047, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1043, "end": 1047, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1088, "end": 1363, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1088, "end": 1091, "ctxt": 0 }, "value": "a20", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1091, "end": 1362, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1093, "end": 1362, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 1104, "end": 1224, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1109, "end": 1215, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1110, "end": 1215, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1112, "end": 1215, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 1127, "end": 1160, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1151, "end": 1155, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1152, "end": 1155, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1154, "end": 1155, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1154, "end": 1155, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1156, "end": 1159, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1158, "end": 1159, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1158, "end": 1159, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1131, "end": 1150, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1132, "end": 1149, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1132, "end": 1133, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1142, "end": 1149, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1142, "end": 1149, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1174, "end": 1204, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1195, "end": 1199, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1196, "end": 1199, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1198, "end": 1199, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1198, "end": 1199, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1200, "end": 1203, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1202, "end": 1203, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1202, "end": 1203, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1178, "end": 1194, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1179, "end": 1193, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1179, "end": 1180, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1189, "end": 1193, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1189, "end": 1193, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1216, "end": 1223, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1218, "end": 1223, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1218, "end": 1221, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1234, "end": 1355, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1239, "end": 1346, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1240, "end": 1346, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1242, "end": 1346, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 1257, "end": 1287, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1278, "end": 1282, "ctxt": 0 }, "value": "a", "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": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1283, "end": 1286, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1285, "end": 1286, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1285, "end": 1286, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1261, "end": 1277, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1262, "end": 1276, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1262, "end": 1263, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1272, "end": 1276, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1272, "end": 1276, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1301, "end": 1335, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1326, "end": 1330, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1327, "end": 1330, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1329, "end": 1330, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1329, "end": 1330, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1331, "end": 1334, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1333, "end": 1334, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1333, "end": 1334, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1305, "end": 1325, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1306, "end": 1324, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1306, "end": 1307, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1316, "end": 1324, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1316, "end": 1324, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1347, "end": 1354, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1349, "end": 1354, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1349, "end": 1352, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null } ] } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1378, "end": 2465, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1388, "end": 1389, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1398, "end": 1399, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1398, "end": 1399, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1400, "end": 2465, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1419, "end": 1443, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1419, "end": 1420, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1420, "end": 1442, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1422, "end": 1442, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1430, "end": 1434, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1431, "end": 1434, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1433, "end": 1434, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1433, "end": 1434, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1426, "end": 1429, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1427, "end": 1428, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1427, "end": 1428, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1436, "end": 1442, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1439, "end": 1442, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1439, "end": 1440, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1439, "end": 1440, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1506, "end": 1536, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1506, "end": 1508, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1508, "end": 1535, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1510, "end": 1535, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1518, "end": 1522, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1519, "end": 1522, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1521, "end": 1522, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1521, "end": 1522, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1514, "end": 1517, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1515, "end": 1516, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1515, "end": 1516, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1524, "end": 1535, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1527, "end": 1535, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1527, "end": 1533, "ctxt": 0 }, "kind": "string" } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1548, "end": 1571, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1548, "end": 1550, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1550, "end": 1570, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1552, "end": 1570, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1560, "end": 1564, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1561, "end": 1564, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1563, "end": 1564, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1563, "end": 1564, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1556, "end": 1559, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1557, "end": 1558, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1557, "end": 1558, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1566, "end": 1570, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1569, "end": 1570, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1569, "end": 1570, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1607, "end": 1644, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1607, "end": 1609, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1609, "end": 1643, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1611, "end": 1643, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1622, "end": 1626, "ctxt": 0 }, "value": "x", "optional": false, "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": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 1628, "end": 1632, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1629, "end": 1632, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1631, "end": 1632, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1631, "end": 1632, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1615, "end": 1621, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1616, "end": 1617, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1616, "end": 1617, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1619, "end": 1620, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1619, "end": 1620, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1634, "end": 1643, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1637, "end": 1643, "ctxt": 0 }, "kind": "string" } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1720, "end": 1758, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1720, "end": 1722, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1722, "end": 1757, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1724, "end": 1757, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1735, "end": 1751, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1736, "end": 1751, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1738, "end": 1751, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1739, "end": 1745, "ctxt": 0 }, "value": "arg", "optional": false, "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, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1747, "end": 1751, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1750, "end": 1751, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1750, "end": 1751, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1728, "end": 1734, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1729, "end": 1730, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1729, "end": 1730, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1732, "end": 1733, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1732, "end": 1733, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1753, "end": 1757, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1756, "end": 1757, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1756, "end": 1757, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1826, "end": 1893, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1826, "end": 1828, "ctxt": 0 }, "value": "a6", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1828, "end": 1892, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1830, "end": 1892, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1870, "end": 1886, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1871, "end": 1886, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1873, "end": 1886, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1874, "end": 1880, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1877, "end": 1880, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1879, "end": 1880, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1879, "end": 1880, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1882, "end": 1886, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1885, "end": 1886, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1885, "end": 1886, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1834, "end": 1869, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1835, "end": 1849, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1835, "end": 1836, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1845, "end": 1849, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1845, "end": 1849, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1851, "end": 1868, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1851, "end": 1852, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1861, "end": 1868, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1861, "end": 1868, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1888, "end": 1892, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1891, "end": 1892, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1891, "end": 1892, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1948, "end": 2010, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1948, "end": 1951, "ctxt": 0 }, "value": "a11", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1951, "end": 2009, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1953, "end": 2009, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1964, "end": 1977, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1965, "end": 1977, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1967, "end": 1977, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1969, "end": 1975, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1969, "end": 1972, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1972, "end": 1975, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1974, "end": 1975, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1974, "end": 1975, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } }, { "type": "Identifier", "span": { "start": 1979, "end": 2000, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1980, "end": 2000, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1982, "end": 2000, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1984, "end": 1991, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1984, "end": 1987, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1987, "end": 1990, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1989, "end": 1990, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1989, "end": 1990, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1992, "end": 1998, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1992, "end": 1995, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1995, "end": 1998, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1997, "end": 1998, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1997, "end": 1998, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1957, "end": 1963, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1958, "end": 1959, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1958, "end": 1959, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1961, "end": 1962, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1961, "end": 1962, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2002, "end": 2009, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2005, "end": 2009, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2005, "end": 2009, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2022, "end": 2065, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2022, "end": 2025, "ctxt": 0 }, "value": "a15", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2025, "end": 2064, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2027, "end": 2064, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2038, "end": 2056, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2039, "end": 2056, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2041, "end": 2056, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2043, "end": 2048, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2043, "end": 2044, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2044, "end": 2047, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2046, "end": 2047, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2046, "end": 2047, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2049, "end": 2054, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2049, "end": 2050, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2050, "end": 2053, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2052, "end": 2053, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2052, "end": 2053, "ctxt": 0 }, "value": "V", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2031, "end": 2037, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2032, "end": 2033, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2032, "end": 2033, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2035, "end": 2036, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2035, "end": 2036, "ctxt": 0 }, "value": "V", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2058, "end": 2064, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2061, "end": 2064, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2061, "end": 2062, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2061, "end": 2062, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2091, "end": 2130, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2091, "end": 2094, "ctxt": 0 }, "value": "a16", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2094, "end": 2129, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2096, "end": 2129, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2104, "end": 2121, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2105, "end": 2121, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2107, "end": 2121, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2109, "end": 2114, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2109, "end": 2110, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2110, "end": 2113, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2112, "end": 2113, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2112, "end": 2113, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2115, "end": 2119, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2115, "end": 2116, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2116, "end": 2119, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2118, "end": 2119, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2118, "end": 2119, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2100, "end": 2103, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2101, "end": 2102, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2101, "end": 2102, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2123, "end": 2129, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2126, "end": 2129, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2126, "end": 2127, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2126, "end": 2127, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2171, "end": 2210, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2171, "end": 2174, "ctxt": 0 }, "value": "a17", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2174, "end": 2209, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2176, "end": 2209, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2197, "end": 2201, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2198, "end": 2201, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2200, "end": 2201, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2200, "end": 2201, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2180, "end": 2196, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2181, "end": 2195, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2181, "end": 2182, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2191, "end": 2195, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2191, "end": 2195, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2203, "end": 2209, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2206, "end": 2209, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2206, "end": 2207, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2206, "end": 2207, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2251, "end": 2295, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2251, "end": 2254, "ctxt": 0 }, "value": "a18", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2254, "end": 2294, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2256, "end": 2294, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2277, "end": 2281, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2278, "end": 2281, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2280, "end": 2281, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2280, "end": 2281, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2260, "end": 2276, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2261, "end": 2275, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2261, "end": 2262, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2271, "end": 2275, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2271, "end": 2275, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2283, "end": 2294, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2286, "end": 2294, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 2286, "end": 2292, "ctxt": 0 }, "kind": "number" } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2336, "end": 2389, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2336, "end": 2339, "ctxt": 0 }, "value": "a19", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2339, "end": 2388, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2341, "end": 2388, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2362, "end": 2380, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2363, "end": 2380, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2365, "end": 2380, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2370, "end": 2374, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2371, "end": 2374, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2373, "end": 2374, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2373, "end": 2374, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2376, "end": 2380, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2379, "end": 2380, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2379, "end": 2380, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2345, "end": 2361, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2346, "end": 2360, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2346, "end": 2347, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2356, "end": 2360, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2356, "end": 2360, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2382, "end": 2388, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2385, "end": 2388, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2385, "end": 2386, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2385, "end": 2386, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2401, "end": 2456, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2401, "end": 2404, "ctxt": 0 }, "value": "a20", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2404, "end": 2455, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2406, "end": 2455, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2411, "end": 2445, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2412, "end": 2445, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2414, "end": 2445, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2435, "end": 2439, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2436, "end": 2439, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2438, "end": 2439, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2438, "end": 2439, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2418, "end": 2434, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2419, "end": 2433, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2419, "end": 2420, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2429, "end": 2433, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2429, "end": 2433, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2441, "end": 2445, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2444, "end": 2445, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2444, "end": 2445, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2447, "end": 2455, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2450, "end": 2455, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 2450, "end": 2453, "ctxt": 0 }, "kind": "any" } } }, "isAbstract": false } }, "typeParams": null } ] } } ], "interpreter": null }