{ "type": "Script", "span": { "start": 68, "end": 3329, "ctxt": 0 }, "body": [ { "type": "TsModuleDeclaration", "span": { "start": 68, "end": 3329, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 75, "end": 81, "ctxt": 0 }, "value": "Errors", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 82, "end": 3329, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 94, "end": 98, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 88, "end": 115, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 101, "end": 113, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 101, "end": 104, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 104, "end": 112, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 106, "end": 112, "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": 126, "end": 133, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "span": { "start": 120, "end": 163, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 149, "end": 161, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 149, "end": 152, "ctxt": 0 }, "value": "bar", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 152, "end": 160, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 154, "end": 160, "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": 142, "end": 146, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 174, "end": 182, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "span": { "start": 168, "end": 215, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 201, "end": 213, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 201, "end": 204, "ctxt": 0 }, "value": "baz", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 204, "end": 212, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 206, "end": 212, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": { "type": "Identifier", "span": { "start": 191, "end": 198, "ctxt": 0 }, "value": "Derived", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 226, "end": 238, "ctxt": 0 }, "value": "OtherDerived", "optional": false }, "declare": false, "span": { "start": 220, "end": 269, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 254, "end": 267, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 254, "end": 258, "ctxt": 0 }, "value": "bing", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 258, "end": 266, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 260, "end": 266, "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": 247, "end": 251, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "TsModuleDeclaration", "span": { "start": 275, "end": 2919, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 282, "end": 316, "ctxt": 0 }, "value": "WithNonGenericSignaturesInBaseType", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 317, "end": 2919, "ctxt": 0 }, "body": [ { "type": "VariableDeclaration", "span": { "start": 383, "end": 419, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 387, "end": 418, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 387, "end": 389, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 389, "end": 418, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 391, "end": 418, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 396, "end": 405, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 397, "end": 405, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 399, "end": 405, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 407, "end": 418, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 410, "end": 418, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 410, "end": 416, "ctxt": 0 }, "kind": "string" } } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 428, "end": 493, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 432, "end": 492, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 432, "end": 434, "ctxt": 0 }, "value": "a7", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 434, "end": 492, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 436, "end": 492, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 441, "end": 466, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 442, "end": 466, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 444, "end": 466, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 445, "end": 454, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 448, "end": 454, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 450, "end": 454, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 450, "end": 454, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 456, "end": 466, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 459, "end": 466, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 459, "end": 466, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 468, "end": 492, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 471, "end": 492, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 472, "end": 479, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 473, "end": 479, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 475, "end": 479, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 475, "end": 479, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 481, "end": 492, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 484, "end": 492, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 484, "end": 492, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } } } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 502, "end": 594, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 506, "end": 593, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 506, "end": 508, "ctxt": 0 }, "value": "a8", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 508, "end": 593, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 510, "end": 593, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 515, "end": 540, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 516, "end": 540, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 518, "end": 540, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 519, "end": 528, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 522, "end": 528, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 524, "end": 528, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 524, "end": 528, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 530, "end": 540, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 533, "end": 540, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 533, "end": 540, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 542, "end": 568, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 543, "end": 568, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 545, "end": 568, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 546, "end": 556, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 550, "end": 556, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 552, "end": 556, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 552, "end": 556, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 558, "end": 568, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 561, "end": 568, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 561, "end": 568, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 570, "end": 593, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 573, "end": 593, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 574, "end": 581, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 575, "end": 581, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 577, "end": 581, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 577, "end": 581, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 583, "end": 593, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 586, "end": 593, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 586, "end": 593, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 603, "end": 639, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 607, "end": 638, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 607, "end": 610, "ctxt": 0 }, "value": "a10", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 610, "end": 638, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 612, "end": 638, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 617, "end": 629, "ctxt": 0 }, "rest": { "start": 617, "end": 620, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 620, "end": 621, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 621, "end": 629, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 623, "end": 629, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 623, "end": 627, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 623, "end": 627, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 631, "end": 638, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 634, "end": 638, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 634, "end": 638, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 648, "end": 723, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 652, "end": 722, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 652, "end": 655, "ctxt": 0 }, "value": "a11", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 655, "end": 722, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 657, "end": 722, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 662, "end": 680, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 663, "end": 680, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 665, "end": 680, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 667, "end": 678, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 667, "end": 670, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 670, "end": 678, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 672, "end": 678, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } }, { "type": "Identifier", "span": { "start": 682, "end": 713, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 683, "end": 713, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 685, "end": 713, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 687, "end": 699, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 687, "end": 690, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 690, "end": 698, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 692, "end": 698, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 700, "end": 711, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 700, "end": 703, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 703, "end": 711, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 705, "end": 711, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 715, "end": 722, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 718, "end": 722, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 718, "end": 722, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 732, "end": 800, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 736, "end": 799, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 736, "end": 739, "ctxt": 0 }, "value": "a12", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 739, "end": 799, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 741, "end": 799, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 746, "end": 760, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 747, "end": 760, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 749, "end": 760, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 749, "end": 754, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 754, "end": 760, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 755, "end": 759, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 755, "end": 759, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 762, "end": 780, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 763, "end": 780, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 765, "end": 780, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 765, "end": 770, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 770, "end": 780, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 771, "end": 779, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 771, "end": 779, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } ] } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 782, "end": 799, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 785, "end": 799, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 785, "end": 790, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 790, "end": 799, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 791, "end": 798, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 791, "end": 798, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 809, "end": 920, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 813, "end": 919, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 813, "end": 816, "ctxt": 0 }, "value": "a14", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 816, "end": 919, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 818, "end": 919, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 836, "end": 862, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 841, "end": 850, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 842, "end": 850, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 844, "end": 850, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 851, "end": 861, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 853, "end": 861, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 853, "end": 859, "ctxt": 0 }, "kind": "number" } } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 879, "end": 905, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 884, "end": 893, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 885, "end": 893, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 887, "end": 893, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 894, "end": 904, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 896, "end": 904, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 896, "end": 902, "ctxt": 0 }, "kind": "string" } } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 929, "end": 982, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 933, "end": 981, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 933, "end": 936, "ctxt": 0 }, "value": "a15", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 936, "end": 981, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 938, "end": 981, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 943, "end": 970, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 944, "end": 970, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 946, "end": 970, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 948, "end": 958, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 948, "end": 949, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 949, "end": 957, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 951, "end": 957, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 959, "end": 968, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 959, "end": 960, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 960, "end": 968, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 962, "end": 968, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 972, "end": 981, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 975, "end": 981, "ctxt": 0 }, "kind": "number" } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 991, "end": 1315, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 995, "end": 1314, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 995, "end": 998, "ctxt": 0 }, "value": "a16", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 998, "end": 1314, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1000, "end": 1314, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 1018, "end": 1148, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1023, "end": 1136, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1024, "end": 1136, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1026, "end": 1136, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 1048, "end": 1072, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1053, "end": 1062, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1054, "end": 1062, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1056, "end": 1062, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1063, "end": 1071, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1065, "end": 1071, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1093, "end": 1118, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1098, "end": 1108, "ctxt": 0 }, "value": "a", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1100, "end": 1108, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1102, "end": 1108, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1109, "end": 1117, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1111, "end": 1117, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1137, "end": 1147, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1139, "end": 1147, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1139, "end": 1145, "ctxt": 0 }, "kind": "number" } } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1165, "end": 1300, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1170, "end": 1287, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1171, "end": 1287, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1173, "end": 1287, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 1195, "end": 1221, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1200, "end": 1210, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1201, "end": 1210, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1203, "end": 1210, "ctxt": 0 }, "kind": "boolean" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1211, "end": 1220, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1213, "end": 1220, "ctxt": 0 }, "kind": "boolean" } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1242, "end": 1269, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1247, "end": 1258, "ctxt": 0 }, "value": "a", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1249, "end": 1258, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1251, "end": 1258, "ctxt": 0 }, "kind": "boolean" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1259, "end": 1268, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1261, "end": 1268, "ctxt": 0 }, "kind": "boolean" } }, "typeParams": null } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1288, "end": 1299, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1290, "end": 1299, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1290, "end": 1297, "ctxt": 0 }, "kind": "boolean" } } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1324, "end": 1666, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1328, "end": 1665, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1328, "end": 1331, "ctxt": 0 }, "value": "a17", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1331, "end": 1665, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1333, "end": 1665, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 1351, "end": 1492, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1356, "end": 1483, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1357, "end": 1483, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1359, "end": 1483, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 1381, "end": 1414, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1405, "end": 1409, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1406, "end": 1409, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1408, "end": 1409, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1408, "end": 1409, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1410, "end": 1413, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1412, "end": 1413, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1412, "end": 1413, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1385, "end": 1404, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1386, "end": 1403, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1386, "end": 1387, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1396, "end": 1403, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1396, "end": 1403, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1435, "end": 1465, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1456, "end": 1460, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1457, "end": 1460, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1459, "end": 1460, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1459, "end": 1460, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1461, "end": 1464, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1463, "end": 1464, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1463, "end": 1464, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1439, "end": 1455, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1440, "end": 1454, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1440, "end": 1441, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1450, "end": 1454, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1450, "end": 1454, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1484, "end": 1491, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1486, "end": 1491, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1486, "end": 1489, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1509, "end": 1651, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1514, "end": 1642, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1515, "end": 1642, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1517, "end": 1642, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 1539, "end": 1573, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1564, "end": 1568, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1565, "end": 1568, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1567, "end": 1568, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1567, "end": 1568, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1569, "end": 1572, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1571, "end": 1572, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1571, "end": 1572, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1543, "end": 1563, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1544, "end": 1562, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1544, "end": 1545, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1554, "end": 1562, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1554, "end": 1562, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1594, "end": 1624, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1615, "end": 1619, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1616, "end": 1619, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1618, "end": 1619, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1618, "end": 1619, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1620, "end": 1623, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1622, "end": 1623, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1622, "end": 1623, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1598, "end": 1614, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1599, "end": 1613, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1599, "end": 1600, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1609, "end": 1613, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1609, "end": 1613, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1643, "end": 1650, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1645, "end": 1650, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1645, "end": 1648, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1676, "end": 1708, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1680, "end": 1707, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1680, "end": 1682, "ctxt": 0 }, "value": "b2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1682, "end": 1707, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1684, "end": 1707, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1695, "end": 1699, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1696, "end": 1699, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1698, "end": 1699, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1698, "end": 1699, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1688, "end": 1694, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1689, "end": 1690, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1689, "end": 1690, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1692, "end": 1693, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1692, "end": 1693, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1701, "end": 1707, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1704, "end": 1707, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1704, "end": 1705, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1704, "end": 1705, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 1718, "end": 1726, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1718, "end": 1725, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1718, "end": 1720, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1723, "end": 1725, "ctxt": 0 }, "value": "b2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1741, "end": 1749, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1741, "end": 1748, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1741, "end": 1743, "ctxt": 0 }, "value": "b2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1746, "end": 1748, "ctxt": 0 }, "value": "a2", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 1765, "end": 1866, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1769, "end": 1865, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1769, "end": 1771, "ctxt": 0 }, "value": "b7", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1771, "end": 1865, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1773, "end": 1865, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1833, "end": 1849, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1834, "end": 1849, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1836, "end": 1849, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1837, "end": 1843, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1840, "end": 1843, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1842, "end": 1843, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1842, "end": 1843, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1845, "end": 1849, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1848, "end": 1849, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1848, "end": 1849, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1777, "end": 1832, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1778, "end": 1792, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1778, "end": 1779, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1788, "end": 1792, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1788, "end": 1792, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1794, "end": 1811, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1794, "end": 1795, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1804, "end": 1811, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1804, "end": 1811, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1813, "end": 1831, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1813, "end": 1814, "ctxt": 0 }, "value": "V", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1823, "end": 1831, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1823, "end": 1831, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1851, "end": 1865, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1854, "end": 1865, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1855, "end": 1859, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1856, "end": 1859, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1858, "end": 1859, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1858, "end": 1859, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1861, "end": 1865, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1864, "end": 1865, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1864, "end": 1865, "ctxt": 0 }, "value": "V", "optional": false }, "typeParams": null } } } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 1875, "end": 1883, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1875, "end": 1882, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1875, "end": 1877, "ctxt": 0 }, "value": "a7", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1880, "end": 1882, "ctxt": 0 }, "value": "b7", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1898, "end": 1906, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1898, "end": 1905, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1898, "end": 1900, "ctxt": 0 }, "value": "b7", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1903, "end": 1905, "ctxt": 0 }, "value": "a7", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 1922, "end": 2037, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1926, "end": 2036, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1926, "end": 1928, "ctxt": 0 }, "value": "b8", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1928, "end": 2036, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1930, "end": 2036, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1970, "end": 1986, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1971, "end": 1986, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1973, "end": 1986, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1974, "end": 1980, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1977, "end": 1980, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1979, "end": 1980, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1979, "end": 1980, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1982, "end": 1986, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1985, "end": 1986, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1985, "end": 1986, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 1988, "end": 2020, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1989, "end": 2020, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1991, "end": 2020, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1992, "end": 2014, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1996, "end": 2014, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1998, "end": 2014, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2000, "end": 2012, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2000, "end": 2003, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2003, "end": 2011, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2005, "end": 2011, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2016, "end": 2020, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2019, "end": 2020, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2019, "end": 2020, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1934, "end": 1969, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1935, "end": 1949, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1935, "end": 1936, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1945, "end": 1949, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1945, "end": 1949, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1951, "end": 1968, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1951, "end": 1952, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1961, "end": 1968, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1961, "end": 1968, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2022, "end": 2036, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2025, "end": 2036, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2026, "end": 2030, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2027, "end": 2030, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2029, "end": 2030, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2029, "end": 2030, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2032, "end": 2036, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2035, "end": 2036, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2035, "end": 2036, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 2047, "end": 2055, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2047, "end": 2054, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2047, "end": 2049, "ctxt": 0 }, "value": "a8", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2052, "end": 2054, "ctxt": 0 }, "value": "b8", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2088, "end": 2096, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2088, "end": 2095, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2088, "end": 2090, "ctxt": 0 }, "value": "b8", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2093, "end": 2095, "ctxt": 0 }, "value": "a8", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 2124, "end": 2173, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2128, "end": 2172, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2128, "end": 2131, "ctxt": 0 }, "value": "b10", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2131, "end": 2172, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2133, "end": 2172, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 2157, "end": 2166, "ctxt": 0 }, "rest": { "start": 2157, "end": 2160, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 2160, "end": 2161, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2161, "end": 2166, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2163, "end": 2166, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2163, "end": 2164, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2163, "end": 2164, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2137, "end": 2156, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2138, "end": 2155, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2138, "end": 2139, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2148, "end": 2155, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2148, "end": 2155, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2168, "end": 2172, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2171, "end": 2172, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2171, "end": 2172, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 2183, "end": 2193, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2183, "end": 2192, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2183, "end": 2186, "ctxt": 0 }, "value": "a10", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2189, "end": 2192, "ctxt": 0 }, "value": "b10", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2208, "end": 2218, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2208, "end": 2217, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2208, "end": 2211, "ctxt": 0 }, "value": "b10", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2214, "end": 2217, "ctxt": 0 }, "value": "a10", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 2234, "end": 2284, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2238, "end": 2283, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2238, "end": 2241, "ctxt": 0 }, "value": "b11", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2241, "end": 2283, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2243, "end": 2283, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2267, "end": 2271, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2268, "end": 2271, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2270, "end": 2271, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2270, "end": 2271, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 2273, "end": 2277, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2274, "end": 2277, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2276, "end": 2277, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2276, "end": 2277, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2247, "end": 2266, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2248, "end": 2265, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2248, "end": 2249, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2258, "end": 2265, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2258, "end": 2265, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2279, "end": 2283, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2282, "end": 2283, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2282, "end": 2283, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 2294, "end": 2304, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2294, "end": 2303, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2294, "end": 2297, "ctxt": 0 }, "value": "a11", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2300, "end": 2303, "ctxt": 0 }, "value": "b11", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2319, "end": 2329, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2319, "end": 2328, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2319, "end": 2322, "ctxt": 0 }, "value": "b11", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2325, "end": 2328, "ctxt": 0 }, "value": "a11", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 2345, "end": 2423, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2349, "end": 2422, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2349, "end": 2352, "ctxt": 0 }, "value": "b12", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2352, "end": 2422, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2354, "end": 2422, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2386, "end": 2400, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2387, "end": 2400, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2389, "end": 2400, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2389, "end": 2394, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2394, "end": 2400, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2395, "end": 2399, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2395, "end": 2399, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 2402, "end": 2416, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2403, "end": 2416, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2405, "end": 2416, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2405, "end": 2410, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2410, "end": 2416, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2411, "end": 2415, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2411, "end": 2415, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2358, "end": 2385, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2359, "end": 2384, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2359, "end": 2360, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2369, "end": 2384, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2369, "end": 2374, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2374, "end": 2384, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2375, "end": 2383, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2375, "end": 2383, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } ] } }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2418, "end": 2422, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2421, "end": 2422, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2421, "end": 2422, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 2433, "end": 2443, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2433, "end": 2442, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2433, "end": 2436, "ctxt": 0 }, "value": "a12", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2439, "end": 2442, "ctxt": 0 }, "value": "b12", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2458, "end": 2468, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2458, "end": 2467, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2458, "end": 2461, "ctxt": 0 }, "value": "b12", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2464, "end": 2467, "ctxt": 0 }, "value": "a12", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 2484, "end": 2525, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2488, "end": 2524, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2488, "end": 2491, "ctxt": 0 }, "value": "b15", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2491, "end": 2524, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2493, "end": 2524, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2501, "end": 2518, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2502, "end": 2518, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2504, "end": 2518, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2506, "end": 2511, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2506, "end": 2507, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2507, "end": 2510, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2509, "end": 2510, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2509, "end": 2510, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2512, "end": 2516, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2512, "end": 2513, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2513, "end": 2516, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2515, "end": 2516, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2515, "end": 2516, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2497, "end": 2500, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2498, "end": 2499, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2498, "end": 2499, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2520, "end": 2524, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2523, "end": 2524, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2523, "end": 2524, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 2535, "end": 2545, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2535, "end": 2544, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2535, "end": 2538, "ctxt": 0 }, "value": "a15", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2541, "end": 2544, "ctxt": 0 }, "value": "b15", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2560, "end": 2570, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2560, "end": 2569, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2560, "end": 2563, "ctxt": 0 }, "value": "b15", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2566, "end": 2569, "ctxt": 0 }, "value": "a15", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 2586, "end": 2646, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2590, "end": 2645, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2590, "end": 2594, "ctxt": 0 }, "value": "b15a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2594, "end": 2645, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2596, "end": 2645, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2617, "end": 2634, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2618, "end": 2634, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2620, "end": 2634, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2622, "end": 2627, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2622, "end": 2623, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2623, "end": 2626, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2625, "end": 2626, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2625, "end": 2626, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2628, "end": 2632, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2628, "end": 2629, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2629, "end": 2632, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2631, "end": 2632, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2631, "end": 2632, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2600, "end": 2616, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2601, "end": 2615, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2601, "end": 2602, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2611, "end": 2615, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2611, "end": 2615, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2636, "end": 2645, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2639, "end": 2645, "ctxt": 0 }, "kind": "number" } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 2656, "end": 2667, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2656, "end": 2666, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2656, "end": 2659, "ctxt": 0 }, "value": "a15", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2662, "end": 2666, "ctxt": 0 }, "value": "b15a", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2682, "end": 2693, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2682, "end": 2692, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2682, "end": 2686, "ctxt": 0 }, "value": "b15a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2689, "end": 2692, "ctxt": 0 }, "value": "a15", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 2709, "end": 2749, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2713, "end": 2748, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2713, "end": 2716, "ctxt": 0 }, "value": "b16", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2716, "end": 2748, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2718, "end": 2748, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2726, "end": 2740, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2727, "end": 2740, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2729, "end": 2740, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2730, "end": 2734, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2731, "end": 2734, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2733, "end": 2734, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2733, "end": 2734, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2736, "end": 2740, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2739, "end": 2740, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2739, "end": 2740, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2722, "end": 2725, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2723, "end": 2724, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2723, "end": 2724, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2742, "end": 2748, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2745, "end": 2748, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2745, "end": 2746, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2745, "end": 2746, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 2758, "end": 2768, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2758, "end": 2767, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2758, "end": 2761, "ctxt": 0 }, "value": "a16", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2764, "end": 2767, "ctxt": 0 }, "value": "b16", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2786, "end": 2796, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2786, "end": 2795, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2786, "end": 2789, "ctxt": 0 }, "value": "b16", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2792, "end": 2795, "ctxt": 0 }, "value": "a16", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 2815, "end": 2857, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2819, "end": 2856, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2819, "end": 2822, "ctxt": 0 }, "value": "b17", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2822, "end": 2856, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2824, "end": 2856, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2832, "end": 2846, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2833, "end": 2846, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2835, "end": 2846, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2836, "end": 2840, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2837, "end": 2840, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2839, "end": 2840, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2839, "end": 2840, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2842, "end": 2846, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2845, "end": 2846, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2845, "end": 2846, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2828, "end": 2831, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2829, "end": 2830, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2829, "end": 2830, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2848, "end": 2856, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2851, "end": 2856, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 2851, "end": 2854, "ctxt": 0 }, "kind": "any" } } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 2866, "end": 2876, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2866, "end": 2875, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2866, "end": 2869, "ctxt": 0 }, "value": "a17", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2872, "end": 2875, "ctxt": 0 }, "value": "b17", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2894, "end": 2904, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2894, "end": 2903, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2894, "end": 2897, "ctxt": 0 }, "value": "b17", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2900, "end": 2903, "ctxt": 0 }, "value": "a17", "optional": false } } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 2925, "end": 3327, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 2932, "end": 2963, "ctxt": 0 }, "value": "WithGenericSignaturesInBaseType", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 2964, "end": 3327, "ctxt": 0 }, "body": [ { "type": "VariableDeclaration", "span": { "start": 3024, "end": 3053, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3028, "end": 3052, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3028, "end": 3030, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3030, "end": 3052, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 3032, "end": 3052, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3040, "end": 3044, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3041, "end": 3044, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3043, "end": 3044, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3043, "end": 3044, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3036, "end": 3039, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3037, "end": 3038, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3037, "end": 3038, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3046, "end": 3052, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 3049, "end": 3052, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 3049, "end": 3050, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3049, "end": 3050, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3062, "end": 3096, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3066, "end": 3095, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3066, "end": 3068, "ctxt": 0 }, "value": "b2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3068, "end": 3095, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 3070, "end": 3095, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3078, "end": 3082, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3079, "end": 3082, "ctxt": 0 }, "typeAnnotation": { "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 } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3074, "end": 3077, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3075, "end": 3076, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3075, "end": 3076, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3084, "end": 3095, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 3087, "end": 3095, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 3087, "end": 3093, "ctxt": 0 }, "kind": "string" } } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 3105, "end": 3113, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 3105, "end": 3112, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 3105, "end": 3107, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 3110, "end": 3112, "ctxt": 0 }, "value": "b2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 3128, "end": 3136, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 3128, "end": 3135, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 3128, "end": 3130, "ctxt": 0 }, "value": "b2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 3133, "end": 3135, "ctxt": 0 }, "value": "a2", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 3202, "end": 3236, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3206, "end": 3235, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3206, "end": 3208, "ctxt": 0 }, "value": "a3", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3208, "end": 3235, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 3210, "end": 3235, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3218, "end": 3222, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3219, "end": 3222, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3221, "end": 3222, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3221, "end": 3222, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3214, "end": 3217, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3215, "end": 3216, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3215, "end": 3216, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3224, "end": 3235, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 3227, "end": 3235, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 3227, "end": 3233, "ctxt": 0 }, "kind": "string" } } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3245, "end": 3274, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3249, "end": 3273, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3249, "end": 3251, "ctxt": 0 }, "value": "b3", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3251, "end": 3273, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 3253, "end": 3273, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3261, "end": 3265, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3262, "end": 3265, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3264, "end": 3265, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3264, "end": 3265, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3257, "end": 3260, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3258, "end": 3259, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3258, "end": 3259, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3267, "end": 3273, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 3270, "end": 3273, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 3270, "end": 3271, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3270, "end": 3271, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "isAbstract": false } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 3284, "end": 3292, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 3284, "end": 3291, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 3284, "end": 3286, "ctxt": 0 }, "value": "a3", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 3289, "end": 3291, "ctxt": 0 }, "value": "b3", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 3307, "end": 3315, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 3307, "end": 3314, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 3307, "end": 3309, "ctxt": 0 }, "value": "b3", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 3312, "end": 3314, "ctxt": 0 }, "value": "a3", "optional": false } } } ] } } ] } } ], "interpreter": null }