{ "type": "Script", "span": { "start": 103, "end": 3293, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 109, "end": 113, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 103, "end": 130, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 116, "end": 128, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 116, "end": 119, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 119, "end": 127, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 121, "end": 127, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 137, "end": 144, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "span": { "start": 131, "end": 174, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 160, "end": 172, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 160, "end": 163, "ctxt": 0 }, "value": "bar", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 163, "end": 171, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 165, "end": 171, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": { "type": "Identifier", "span": { "start": 153, "end": 157, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 181, "end": 189, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "span": { "start": 175, "end": 222, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 208, "end": 220, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 208, "end": 211, "ctxt": 0 }, "value": "baz", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 211, "end": 219, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 213, "end": 219, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": { "type": "Identifier", "span": { "start": 198, "end": 205, "ctxt": 0 }, "value": "Derived", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 229, "end": 241, "ctxt": 0 }, "value": "OtherDerived", "optional": false }, "declare": false, "span": { "start": 223, "end": 272, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 257, "end": 270, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 257, "end": 261, "ctxt": 0 }, "value": "bing", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 261, "end": 269, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 263, "end": 269, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": { "type": "Identifier", "span": { "start": 250, "end": 254, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "TsInterfaceDeclaration", "span": { "start": 274, "end": 1684, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 284, "end": 285, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 286, "end": 1684, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 308, "end": 339, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 308, "end": 309, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 309, "end": 338, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 311, "end": 338, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 316, "end": 325, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 317, "end": 325, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 319, "end": 325, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 327, "end": 338, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 330, "end": 338, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 330, "end": 336, "ctxt": 0 }, "kind": "number" } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 344, "end": 376, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 344, "end": 346, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 346, "end": 375, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 348, "end": 375, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 353, "end": 362, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 354, "end": 362, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 356, "end": 362, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": 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": 381, "end": 409, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 381, "end": 383, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 383, "end": 408, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 385, "end": 408, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 390, "end": 399, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 391, "end": 399, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 393, "end": 399, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 401, "end": 408, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 404, "end": 408, "ctxt": 0 }, "kind": "void" } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 414, "end": 455, "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": 454, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 418, "end": 454, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 423, "end": 432, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 424, "end": 432, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 426, "end": 432, "ctxt": 0 }, "kind": "string" } } }, { "type": "Identifier", "span": { "start": 434, "end": 443, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 435, "end": 443, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 437, "end": 443, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 445, "end": 454, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 448, "end": 454, "ctxt": 0 }, "kind": "string" } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 460, "end": 507, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 460, "end": 462, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 462, "end": 506, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 464, "end": 506, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 469, "end": 495, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 470, "end": 495, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 472, "end": 495, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 473, "end": 484, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 476, "end": 484, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 478, "end": 484, "ctxt": 0 }, "kind": "string" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 486, "end": 495, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 489, "end": 495, "ctxt": 0 }, "kind": "number" } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 497, "end": 506, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 500, "end": 506, "ctxt": 0 }, "kind": "string" } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 512, "end": 556, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 512, "end": 514, "ctxt": 0 }, "value": "a6", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 514, "end": 555, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 516, "end": 555, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 521, "end": 546, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 522, "end": 546, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 524, "end": 546, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 525, "end": 534, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 528, "end": 534, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 530, "end": 534, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 530, "end": 534, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 536, "end": 546, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 539, "end": 546, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 539, "end": 546, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 548, "end": 555, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 551, "end": 555, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 551, "end": 555, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 561, "end": 621, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 561, "end": 563, "ctxt": 0 }, "value": "a7", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 563, "end": 620, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 565, "end": 620, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 570, "end": 595, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 571, "end": 595, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 573, "end": 595, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 574, "end": 583, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 577, "end": 583, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 579, "end": 583, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 579, "end": 583, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 585, "end": 595, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 588, "end": 595, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 588, "end": 595, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 597, "end": 620, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 600, "end": 620, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 601, "end": 608, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 602, "end": 608, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 604, "end": 608, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 604, "end": 608, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 610, "end": 620, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 613, "end": 620, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 613, "end": 620, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 626, "end": 714, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 626, "end": 628, "ctxt": 0 }, "value": "a8", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 628, "end": 713, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 630, "end": 713, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 635, "end": 660, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 636, "end": 660, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 638, "end": 660, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 639, "end": 648, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 642, "end": 648, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 644, "end": 648, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 644, "end": 648, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 650, "end": 660, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 653, "end": 660, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 653, "end": 660, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 662, "end": 688, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 663, "end": 688, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 665, "end": 688, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 666, "end": 676, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 670, "end": 676, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 672, "end": 676, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 672, "end": 676, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 678, "end": 688, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 681, "end": 688, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 681, "end": 688, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 690, "end": 713, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 693, "end": 713, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 694, "end": 701, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 695, "end": 701, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 697, "end": 701, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 697, "end": 701, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 703, "end": 713, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 706, "end": 713, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 706, "end": 713, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 719, "end": 807, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 719, "end": 721, "ctxt": 0 }, "value": "a9", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 721, "end": 806, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 723, "end": 806, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 728, "end": 753, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 729, "end": 753, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 731, "end": 753, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 732, "end": 741, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 735, "end": 741, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 737, "end": 741, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 737, "end": 741, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 743, "end": 753, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 746, "end": 753, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 746, "end": 753, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 755, "end": 781, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 756, "end": 781, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 758, "end": 781, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 759, "end": 769, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 763, "end": 769, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 765, "end": 769, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 765, "end": 769, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 771, "end": 781, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 774, "end": 781, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 774, "end": 781, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 783, "end": 806, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 786, "end": 806, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 787, "end": 794, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 788, "end": 794, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 790, "end": 794, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 790, "end": 794, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 796, "end": 806, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 799, "end": 806, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 799, "end": 806, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 812, "end": 850, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 812, "end": 815, "ctxt": 0 }, "value": "a10", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 815, "end": 849, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 817, "end": 849, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 822, "end": 837, "ctxt": 0 }, "rest": { "start": 822, "end": 825, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 825, "end": 826, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 826, "end": 837, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 828, "end": 837, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 828, "end": 835, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 828, "end": 835, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 839, "end": 849, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 842, "end": 849, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 842, "end": 849, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 855, "end": 926, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 855, "end": 858, "ctxt": 0 }, "value": "a11", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 858, "end": 925, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 860, "end": 925, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 865, "end": 883, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 866, "end": 883, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 868, "end": 883, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 870, "end": 881, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 870, "end": 873, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 873, "end": 881, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 875, "end": 881, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } }, { "type": "Identifier", "span": { "start": 885, "end": 916, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 886, "end": 916, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 888, "end": 916, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 890, "end": 902, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 890, "end": 893, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 893, "end": 901, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 895, "end": 901, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 903, "end": 914, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 903, "end": 906, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 906, "end": 914, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 908, "end": 914, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 918, "end": 925, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 921, "end": 925, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 921, "end": 925, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 931, "end": 995, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 931, "end": 934, "ctxt": 0 }, "value": "a12", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 934, "end": 994, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 936, "end": 994, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 941, "end": 955, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 942, "end": 955, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 944, "end": 955, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 944, "end": 949, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 949, "end": 955, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 950, "end": 954, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 950, "end": 954, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 957, "end": 975, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 958, "end": 975, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 960, "end": 975, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 960, "end": 965, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 965, "end": 975, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 966, "end": 974, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 966, "end": 974, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } ] } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 977, "end": 994, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 980, "end": 994, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 980, "end": 985, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 985, "end": 994, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 986, "end": 993, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 986, "end": 993, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1000, "end": 1063, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1000, "end": 1003, "ctxt": 0 }, "value": "a13", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1003, "end": 1062, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1005, "end": 1062, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1010, "end": 1024, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1011, "end": 1024, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1013, "end": 1024, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1013, "end": 1018, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1018, "end": 1024, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1019, "end": 1023, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1019, "end": 1023, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 1026, "end": 1043, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1027, "end": 1043, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1029, "end": 1043, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1029, "end": 1034, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1034, "end": 1043, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1035, "end": 1042, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1035, "end": 1042, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1045, "end": 1062, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1048, "end": 1062, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1048, "end": 1053, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1053, "end": 1062, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1054, "end": 1061, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1054, "end": 1061, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1068, "end": 1117, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1068, "end": 1071, "ctxt": 0 }, "value": "a14", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1071, "end": 1116, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1073, "end": 1116, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1078, "end": 1105, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1079, "end": 1105, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1081, "end": 1105, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1083, "end": 1093, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1083, "end": 1084, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1084, "end": 1092, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1086, "end": 1092, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1094, "end": 1103, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1094, "end": 1095, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1095, "end": 1103, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1097, "end": 1103, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1107, "end": 1116, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1110, "end": 1116, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1110, "end": 1116, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1122, "end": 1205, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1122, "end": 1125, "ctxt": 0 }, "value": "a15", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1125, "end": 1204, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1127, "end": 1204, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 1137, "end": 1163, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1142, "end": 1151, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1143, "end": 1151, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1145, "end": 1151, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1152, "end": 1162, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1154, "end": 1162, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1154, "end": 1160, "ctxt": 0 }, "kind": "number" } } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1172, "end": 1198, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1177, "end": 1186, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1178, "end": 1186, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1180, "end": 1186, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1187, "end": 1197, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1189, "end": 1197, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1189, "end": 1195, "ctxt": 0 }, "kind": "string" } } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1210, "end": 1318, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1210, "end": 1213, "ctxt": 0 }, "value": "a16", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1213, "end": 1317, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1215, "end": 1317, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 1225, "end": 1265, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1249, "end": 1253, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1250, "end": 1253, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1252, "end": 1253, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1252, "end": 1253, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1254, "end": 1264, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1256, "end": 1264, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1256, "end": 1262, "ctxt": 0 }, "kind": "number" } } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1229, "end": 1248, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1230, "end": 1247, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1230, "end": 1231, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1240, "end": 1247, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1240, "end": 1247, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1274, "end": 1311, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1295, "end": 1299, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1296, "end": 1299, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1298, "end": 1299, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1298, "end": 1299, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1300, "end": 1310, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1302, "end": 1310, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1302, "end": 1308, "ctxt": 0 }, "kind": "number" } } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1278, "end": 1294, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1279, "end": 1293, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1279, "end": 1280, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1289, "end": 1293, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1289, "end": 1293, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1323, "end": 1444, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1323, "end": 1326, "ctxt": 0 }, "value": "a17", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1326, "end": 1443, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1328, "end": 1443, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 1338, "end": 1383, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1343, "end": 1371, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1344, "end": 1371, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1346, "end": 1371, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1351, "end": 1360, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1352, "end": 1360, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1354, "end": 1360, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1362, "end": 1371, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1365, "end": 1371, "ctxt": 0 }, "kind": "number" } }, "isAbstract": false } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1372, "end": 1382, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1374, "end": 1382, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1374, "end": 1380, "ctxt": 0 }, "kind": "number" } } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1392, "end": 1437, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1397, "end": 1425, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1398, "end": 1425, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1400, "end": 1425, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1405, "end": 1414, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1406, "end": 1414, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1408, "end": 1414, "ctxt": 0 }, "kind": "string" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1416, "end": 1425, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1419, "end": 1425, "ctxt": 0 }, "kind": "string" } }, "isAbstract": false } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1426, "end": 1436, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1428, "end": 1436, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1428, "end": 1434, "ctxt": 0 }, "kind": "string" } } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1449, "end": 1682, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1449, "end": 1452, "ctxt": 0 }, "value": "a18", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1452, "end": 1681, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1454, "end": 1681, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 1464, "end": 1566, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1469, "end": 1557, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1470, "end": 1557, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1472, "end": 1557, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 1486, "end": 1510, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1491, "end": 1500, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1492, "end": 1500, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1494, "end": 1500, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1501, "end": 1509, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1503, "end": 1509, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1523, "end": 1547, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1528, "end": 1537, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1529, "end": 1537, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1531, "end": 1537, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1538, "end": 1546, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1540, "end": 1546, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1558, "end": 1565, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1560, "end": 1565, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1560, "end": 1563, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1575, "end": 1675, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1580, "end": 1666, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1581, "end": 1666, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1583, "end": 1666, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 1597, "end": 1623, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1602, "end": 1612, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1603, "end": 1612, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1605, "end": 1612, "ctxt": 0 }, "kind": "boolean" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1613, "end": 1622, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1615, "end": 1622, "ctxt": 0 }, "kind": "boolean" } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1636, "end": 1656, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1641, "end": 1648, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1642, "end": 1648, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1644, "end": 1648, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1644, "end": 1648, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1649, "end": 1655, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1651, "end": 1655, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1651, "end": 1655, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1667, "end": 1674, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1669, "end": 1674, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1669, "end": 1672, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null } ] } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1693, "end": 3293, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1703, "end": 1704, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1713, "end": 1714, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1713, "end": 1714, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1715, "end": 3293, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1732, "end": 1756, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1732, "end": 1733, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1733, "end": 1755, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1735, "end": 1755, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1743, "end": 1747, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1744, "end": 1747, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1746, "end": 1747, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1746, "end": 1747, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1739, "end": 1742, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1740, "end": 1741, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1740, "end": 1741, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1749, "end": 1755, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1752, "end": 1755, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1752, "end": 1753, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1752, "end": 1753, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1818, "end": 1848, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1818, "end": 1820, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1820, "end": 1847, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1822, "end": 1847, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1830, "end": 1834, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1831, "end": 1834, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1833, "end": 1834, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1833, "end": 1834, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1826, "end": 1829, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1827, "end": 1828, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1827, "end": 1828, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1836, "end": 1847, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1839, "end": 1847, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1839, "end": 1845, "ctxt": 0 }, "kind": "string" } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1859, "end": 1882, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1859, "end": 1861, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1861, "end": 1881, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1863, "end": 1881, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1871, "end": 1875, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1872, "end": 1875, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1874, "end": 1875, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1874, "end": 1875, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1867, "end": 1870, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1868, "end": 1869, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1868, "end": 1869, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1877, "end": 1881, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1880, "end": 1881, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1880, "end": 1881, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1917, "end": 1949, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1917, "end": 1919, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1919, "end": 1948, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1921, "end": 1948, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1932, "end": 1936, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1933, "end": 1936, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1935, "end": 1936, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1935, "end": 1936, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 1938, "end": 1942, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1939, "end": 1942, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1941, "end": 1942, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1941, "end": 1942, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1925, "end": 1931, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1926, "end": 1927, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1926, "end": 1927, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1929, "end": 1930, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1929, "end": 1930, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1944, "end": 1948, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1947, "end": 1948, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1947, "end": 1948, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2024, "end": 2062, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2024, "end": 2026, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2026, "end": 2061, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2028, "end": 2061, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2039, "end": 2055, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2040, "end": 2055, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2042, "end": 2055, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2043, "end": 2049, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2046, "end": 2049, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2048, "end": 2049, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2048, "end": 2049, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2051, "end": 2055, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2054, "end": 2055, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2054, "end": 2055, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2032, "end": 2038, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2033, "end": 2034, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2033, "end": 2034, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2036, "end": 2037, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2036, "end": 2037, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2057, "end": 2061, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2060, "end": 2061, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2060, "end": 2061, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2129, "end": 2196, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2129, "end": 2131, "ctxt": 0 }, "value": "a6", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2131, "end": 2195, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2133, "end": 2195, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2173, "end": 2189, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2174, "end": 2189, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2176, "end": 2189, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2177, "end": 2183, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2180, "end": 2183, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2182, "end": 2183, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2182, "end": 2183, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2185, "end": 2189, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2188, "end": 2189, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2188, "end": 2189, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2137, "end": 2172, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2138, "end": 2152, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2138, "end": 2139, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2148, "end": 2152, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2148, "end": 2152, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2154, "end": 2171, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2154, "end": 2155, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2164, "end": 2171, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2164, "end": 2171, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2191, "end": 2195, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2194, "end": 2195, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2194, "end": 2195, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2250, "end": 2327, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2250, "end": 2252, "ctxt": 0 }, "value": "a7", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2252, "end": 2326, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2254, "end": 2326, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2294, "end": 2310, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2295, "end": 2310, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2297, "end": 2310, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2298, "end": 2304, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2301, "end": 2304, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2303, "end": 2304, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2303, "end": 2304, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2306, "end": 2310, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2309, "end": 2310, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2309, "end": 2310, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2258, "end": 2293, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2259, "end": 2273, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2259, "end": 2260, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2269, "end": 2273, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2269, "end": 2273, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2275, "end": 2292, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2275, "end": 2276, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2285, "end": 2292, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2285, "end": 2292, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2312, "end": 2326, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2315, "end": 2326, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2316, "end": 2320, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2317, "end": 2320, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2319, "end": 2320, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2319, "end": 2320, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2322, "end": 2326, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2325, "end": 2326, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2325, "end": 2326, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2338, "end": 2434, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2338, "end": 2340, "ctxt": 0 }, "value": "a8", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2340, "end": 2433, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2342, "end": 2433, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2382, "end": 2398, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2383, "end": 2398, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2385, "end": 2398, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2386, "end": 2392, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2389, "end": 2392, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2391, "end": 2392, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2391, "end": 2392, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2394, "end": 2398, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2397, "end": 2398, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2397, "end": 2398, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 2400, "end": 2417, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2401, "end": 2417, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2403, "end": 2417, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2404, "end": 2411, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2408, "end": 2411, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2410, "end": 2411, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2410, "end": 2411, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2413, "end": 2417, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2416, "end": 2417, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2416, "end": 2417, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2346, "end": 2381, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2347, "end": 2361, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2347, "end": 2348, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2357, "end": 2361, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2357, "end": 2361, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2363, "end": 2380, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2363, "end": 2364, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2373, "end": 2380, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2373, "end": 2380, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2419, "end": 2433, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2422, "end": 2433, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2423, "end": 2427, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2424, "end": 2427, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2426, "end": 2427, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2426, "end": 2427, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2429, "end": 2433, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2432, "end": 2433, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2432, "end": 2433, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2445, "end": 2569, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2445, "end": 2447, "ctxt": 0 }, "value": "a9", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2447, "end": 2568, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2449, "end": 2568, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2489, "end": 2505, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2490, "end": 2505, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2492, "end": 2505, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2493, "end": 2499, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2496, "end": 2499, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2498, "end": 2499, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2498, "end": 2499, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2501, "end": 2505, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2504, "end": 2505, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2504, "end": 2505, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 2507, "end": 2552, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2508, "end": 2552, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2510, "end": 2552, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2511, "end": 2546, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2515, "end": 2546, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2517, "end": 2546, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2519, "end": 2531, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2519, "end": 2522, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2522, "end": 2530, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2524, "end": 2530, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2532, "end": 2544, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2532, "end": 2536, "ctxt": 0 }, "value": "bing", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2536, "end": 2544, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2538, "end": 2544, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2548, "end": 2552, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2551, "end": 2552, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2551, "end": 2552, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2453, "end": 2488, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2454, "end": 2468, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2454, "end": 2455, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2464, "end": 2468, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2464, "end": 2468, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2470, "end": 2487, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2470, "end": 2471, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2480, "end": 2487, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2480, "end": 2487, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2554, "end": 2568, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2557, "end": 2568, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2558, "end": 2562, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2559, "end": 2562, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2561, "end": 2562, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2561, "end": 2562, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2564, "end": 2568, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2567, "end": 2568, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2567, "end": 2568, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2623, "end": 2668, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2623, "end": 2626, "ctxt": 0 }, "value": "a10", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2626, "end": 2667, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2628, "end": 2667, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 2652, "end": 2661, "ctxt": 0 }, "rest": { "start": 2652, "end": 2655, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 2655, "end": 2656, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2656, "end": 2661, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2658, "end": 2661, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2658, "end": 2659, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2658, "end": 2659, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2632, "end": 2651, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2633, "end": 2650, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2633, "end": 2634, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2643, "end": 2650, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2643, "end": 2650, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2663, "end": 2667, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2666, "end": 2667, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2666, "end": 2667, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2679, "end": 2722, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2679, "end": 2682, "ctxt": 0 }, "value": "a11", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2682, "end": 2721, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2684, "end": 2721, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2705, "end": 2709, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2706, "end": 2709, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2708, "end": 2709, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2708, "end": 2709, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 2711, "end": 2715, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2712, "end": 2715, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2714, "end": 2715, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2714, "end": 2715, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2688, "end": 2704, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2689, "end": 2703, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2689, "end": 2690, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2699, "end": 2703, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2699, "end": 2703, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2717, "end": 2721, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2720, "end": 2721, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2720, "end": 2721, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2733, "end": 2806, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2733, "end": 2736, "ctxt": 0 }, "value": "a12", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2736, "end": 2805, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2738, "end": 2805, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2766, "end": 2780, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2767, "end": 2780, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2769, "end": 2780, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2769, "end": 2774, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2774, "end": 2780, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2775, "end": 2779, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2775, "end": 2779, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 2782, "end": 2786, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2783, "end": 2786, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2785, "end": 2786, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2785, "end": 2786, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2742, "end": 2765, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2743, "end": 2764, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2743, "end": 2744, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2753, "end": 2764, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2753, "end": 2758, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2758, "end": 2764, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2759, "end": 2763, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2759, "end": 2763, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2788, "end": 2805, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2791, "end": 2805, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2791, "end": 2796, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2796, "end": 2805, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2797, "end": 2804, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2797, "end": 2804, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2847, "end": 2910, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2847, "end": 2850, "ctxt": 0 }, "value": "a13", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2850, "end": 2909, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2852, "end": 2909, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2883, "end": 2897, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2884, "end": 2897, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2886, "end": 2897, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2886, "end": 2891, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2891, "end": 2897, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2892, "end": 2896, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2892, "end": 2896, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 2899, "end": 2903, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2900, "end": 2903, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2902, "end": 2903, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2902, "end": 2903, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2856, "end": 2882, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2857, "end": 2881, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2857, "end": 2858, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2867, "end": 2881, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2867, "end": 2872, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2872, "end": 2881, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2873, "end": 2880, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2873, "end": 2880, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2905, "end": 2909, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2908, "end": 2909, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2908, "end": 2909, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3008, "end": 3048, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3008, "end": 3011, "ctxt": 0 }, "value": "a14", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3011, "end": 3047, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 3013, "end": 3047, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3024, "end": 3041, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3025, "end": 3041, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 3027, "end": 3041, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 3029, "end": 3034, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3029, "end": 3030, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3030, "end": 3033, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3032, "end": 3033, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3032, "end": 3033, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3035, "end": 3039, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3035, "end": 3036, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3036, "end": 3039, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3038, "end": 3039, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3038, "end": 3039, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3017, "end": 3023, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3018, "end": 3019, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3018, "end": 3019, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 3021, "end": 3022, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3021, "end": 3022, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3043, "end": 3047, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3046, "end": 3047, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3046, "end": 3047, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3059, "end": 3085, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3059, "end": 3062, "ctxt": 0 }, "value": "a15", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3062, "end": 3084, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 3064, "end": 3084, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3072, "end": 3076, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3073, "end": 3076, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3075, "end": 3076, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3075, "end": 3076, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3068, "end": 3071, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3069, "end": 3070, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3069, "end": 3070, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3078, "end": 3084, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 3081, "end": 3084, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 3081, "end": 3082, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3081, "end": 3082, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3096, "end": 3140, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3096, "end": 3099, "ctxt": 0 }, "value": "a16", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3099, "end": 3139, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 3101, "end": 3139, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3122, "end": 3126, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3123, "end": 3126, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3125, "end": 3126, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3125, "end": 3126, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3105, "end": 3121, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3106, "end": 3120, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3106, "end": 3107, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 3116, "end": 3120, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3116, "end": 3120, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3128, "end": 3139, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 3131, "end": 3139, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 3131, "end": 3137, "ctxt": 0 }, "kind": "number" } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3151, "end": 3191, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3151, "end": 3154, "ctxt": 0 }, "value": "a17", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3154, "end": 3190, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 3156, "end": 3190, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3164, "end": 3182, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3165, "end": 3182, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 3167, "end": 3182, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3172, "end": 3176, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3173, "end": 3176, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3175, "end": 3176, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3175, "end": 3176, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3178, "end": 3182, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3181, "end": 3182, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3181, "end": 3182, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3160, "end": 3163, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3161, "end": 3162, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3161, "end": 3162, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3184, "end": 3190, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 3187, "end": 3190, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 3187, "end": 3188, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3187, "end": 3188, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3202, "end": 3242, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3202, "end": 3205, "ctxt": 0 }, "value": "a18", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3205, "end": 3241, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 3207, "end": 3241, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3215, "end": 3233, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3216, "end": 3233, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 3218, "end": 3233, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3223, "end": 3227, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3224, "end": 3227, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3226, "end": 3227, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3226, "end": 3227, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3229, "end": 3233, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3232, "end": 3233, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3232, "end": 3233, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3211, "end": 3214, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3212, "end": 3213, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3212, "end": 3213, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3235, "end": 3241, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 3238, "end": 3241, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 3238, "end": 3239, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3238, "end": 3239, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "isAbstract": false } }, "typeParams": null } ] } } ], "interpreter": null }