{ "type": "Script", "span": { "start": 92, "end": 3140, "ctxt": 0 }, "body": [ { "type": "TsModuleDeclaration", "span": { "start": 92, "end": 3140, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 99, "end": 105, "ctxt": 0 }, "value": "Errors", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 106, "end": 3140, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 118, "end": 122, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 112, "end": 139, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 125, "end": 137, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 125, "end": 128, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 128, "end": 136, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 130, "end": 136, "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": 150, "end": 157, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "span": { "start": 144, "end": 187, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 173, "end": 185, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 173, "end": 176, "ctxt": 0 }, "value": "bar", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 176, "end": 184, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 178, "end": 184, "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": 166, "end": 170, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 198, "end": 206, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "span": { "start": 192, "end": 239, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 225, "end": 237, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 225, "end": 228, "ctxt": 0 }, "value": "baz", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 228, "end": 236, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 230, "end": 236, "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": 215, "end": 222, "ctxt": 0 }, "value": "Derived", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 250, "end": 262, "ctxt": 0 }, "value": "OtherDerived", "optional": false }, "declare": false, "span": { "start": 244, "end": 293, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 278, "end": 291, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 278, "end": 282, "ctxt": 0 }, "value": "bing", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 282, "end": 290, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 284, "end": 290, "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": 271, "end": 275, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "TsModuleDeclaration", "span": { "start": 299, "end": 2770, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 306, "end": 340, "ctxt": 0 }, "value": "WithNonGenericSignaturesInBaseType", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 341, "end": 2770, "ctxt": 0 }, "body": [ { "type": "VariableDeclaration", "span": { "start": 407, "end": 439, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 411, "end": 438, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 411, "end": 413, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 413, "end": 438, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 415, "end": 438, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 416, "end": 425, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 417, "end": 425, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 419, "end": 425, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 427, "end": 438, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 430, "end": 438, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 430, "end": 436, "ctxt": 0 }, "kind": "string" } } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 448, "end": 509, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 452, "end": 508, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 452, "end": 454, "ctxt": 0 }, "value": "a7", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 454, "end": 508, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 456, "end": 508, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 457, "end": 482, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 458, "end": 482, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 460, "end": 482, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 461, "end": 470, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 464, "end": 470, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 466, "end": 470, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 466, "end": 470, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 472, "end": 482, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 475, "end": 482, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 475, "end": 482, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 484, "end": 508, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 487, "end": 508, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 488, "end": 495, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 489, "end": 495, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 491, "end": 495, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 491, "end": 495, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 497, "end": 508, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 500, "end": 508, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 500, "end": 508, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } } } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 518, "end": 606, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 522, "end": 605, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 522, "end": 524, "ctxt": 0 }, "value": "a8", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 524, "end": 605, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 526, "end": 605, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 527, "end": 552, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 528, "end": 552, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 530, "end": 552, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 531, "end": 540, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 534, "end": 540, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 536, "end": 540, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 536, "end": 540, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 542, "end": 552, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 545, "end": 552, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 545, "end": 552, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 554, "end": 580, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 555, "end": 580, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 557, "end": 580, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 558, "end": 568, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 562, "end": 568, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 564, "end": 568, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 564, "end": 568, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 570, "end": 580, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 573, "end": 580, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 573, "end": 580, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 582, "end": 605, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 585, "end": 605, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 586, "end": 593, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 587, "end": 593, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 589, "end": 593, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 589, "end": 593, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 595, "end": 605, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 598, "end": 605, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 598, "end": 605, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 615, "end": 647, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 619, "end": 646, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 619, "end": 622, "ctxt": 0 }, "value": "a10", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 622, "end": 646, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 624, "end": 646, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 625, "end": 637, "ctxt": 0 }, "rest": { "start": 625, "end": 628, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 628, "end": 629, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 629, "end": 637, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 631, "end": 637, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 631, "end": 635, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 631, "end": 635, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 639, "end": 646, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 642, "end": 646, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 642, "end": 646, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 656, "end": 727, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 660, "end": 726, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 660, "end": 663, "ctxt": 0 }, "value": "a11", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 663, "end": 726, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 665, "end": 726, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 666, "end": 684, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 667, "end": 684, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 669, "end": 684, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 671, "end": 682, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 671, "end": 674, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 674, "end": 682, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 676, "end": 682, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } }, { "type": "Identifier", "span": { "start": 686, "end": 717, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 687, "end": 717, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 689, "end": 717, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 691, "end": 703, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 691, "end": 694, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 694, "end": 702, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 696, "end": 702, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 704, "end": 715, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 704, "end": 707, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 707, "end": 715, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 709, "end": 715, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 719, "end": 726, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 722, "end": 726, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 722, "end": 726, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 736, "end": 800, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 740, "end": 799, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 740, "end": 743, "ctxt": 0 }, "value": "a12", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 743, "end": 799, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 745, "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 } ] } } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 809, "end": 912, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 813, "end": 911, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 813, "end": 816, "ctxt": 0 }, "value": "a14", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 816, "end": 911, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 818, "end": 911, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 836, "end": 858, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 837, "end": 846, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 838, "end": 846, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 840, "end": 846, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 847, "end": 857, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 849, "end": 857, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 849, "end": 855, "ctxt": 0 }, "kind": "number" } } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 875, "end": 897, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 876, "end": 885, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 877, "end": 885, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 879, "end": 885, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 886, "end": 896, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 888, "end": 896, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 888, "end": 894, "ctxt": 0 }, "kind": "string" } } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 921, "end": 970, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 925, "end": 969, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 925, "end": 928, "ctxt": 0 }, "value": "a15", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 928, "end": 969, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 930, "end": 969, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 931, "end": 958, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 932, "end": 958, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 934, "end": 958, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 936, "end": 946, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 936, "end": 937, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 937, "end": 945, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 939, "end": 945, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 947, "end": 956, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 947, "end": 948, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 948, "end": 956, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 950, "end": 956, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 960, "end": 969, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 963, "end": 969, "ctxt": 0 }, "kind": "number" } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 979, "end": 1279, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 983, "end": 1278, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 983, "end": 986, "ctxt": 0 }, "value": "a16", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 986, "end": 1278, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 988, "end": 1278, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1006, "end": 1124, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1007, "end": 1112, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1008, "end": 1112, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1010, "end": 1112, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1032, "end": 1052, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1033, "end": 1042, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1034, "end": 1042, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1036, "end": 1042, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1043, "end": 1051, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1045, "end": 1051, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1073, "end": 1094, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1074, "end": 1084, "ctxt": 0 }, "value": "a", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1076, "end": 1084, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1078, "end": 1084, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1085, "end": 1093, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1087, "end": 1093, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1113, "end": 1123, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1115, "end": 1123, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1115, "end": 1121, "ctxt": 0 }, "kind": "number" } } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1141, "end": 1264, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1142, "end": 1251, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1143, "end": 1251, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1145, "end": 1251, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1167, "end": 1189, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1168, "end": 1178, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1169, "end": 1178, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1171, "end": 1178, "ctxt": 0 }, "kind": "boolean" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1179, "end": 1188, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1181, "end": 1188, "ctxt": 0 }, "kind": "boolean" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1210, "end": 1233, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1211, "end": 1222, "ctxt": 0 }, "value": "a", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1213, "end": 1222, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1215, "end": 1222, "ctxt": 0 }, "kind": "boolean" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1223, "end": 1232, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1225, "end": 1232, "ctxt": 0 }, "kind": "boolean" } }, "typeParams": null } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1252, "end": 1263, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1254, "end": 1263, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1254, "end": 1261, "ctxt": 0 }, "kind": "boolean" } } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1288, "end": 1606, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1292, "end": 1605, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1292, "end": 1295, "ctxt": 0 }, "value": "a17", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1295, "end": 1605, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1297, "end": 1605, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1315, "end": 1444, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1316, "end": 1435, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1317, "end": 1435, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1319, "end": 1435, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1341, "end": 1370, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1361, "end": 1365, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1362, "end": 1365, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1364, "end": 1365, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1364, "end": 1365, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1366, "end": 1369, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1368, "end": 1369, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1368, "end": 1369, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1341, "end": 1360, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1342, "end": 1359, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1342, "end": 1343, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1352, "end": 1359, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1352, "end": 1359, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1391, "end": 1417, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1408, "end": 1412, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1409, "end": 1412, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1411, "end": 1412, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1411, "end": 1412, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1413, "end": 1416, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1415, "end": 1416, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1415, "end": 1416, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1391, "end": 1407, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1392, "end": 1406, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1392, "end": 1393, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1402, "end": 1406, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1402, "end": 1406, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1436, "end": 1443, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1438, "end": 1443, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1438, "end": 1441, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1461, "end": 1591, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1462, "end": 1582, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1463, "end": 1582, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1465, "end": 1582, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1487, "end": 1517, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1508, "end": 1512, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1509, "end": 1512, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1511, "end": 1512, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1511, "end": 1512, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1513, "end": 1516, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1515, "end": 1516, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1515, "end": 1516, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1487, "end": 1507, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1488, "end": 1506, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1488, "end": 1489, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1498, "end": 1506, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1498, "end": 1506, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1538, "end": 1564, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1555, "end": 1559, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1556, "end": 1559, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1558, "end": 1559, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1558, "end": 1559, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1560, "end": 1563, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1562, "end": 1563, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1562, "end": 1563, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1538, "end": 1554, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1539, "end": 1553, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1539, "end": 1540, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1549, "end": 1553, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1549, "end": 1553, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1583, "end": 1590, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1585, "end": 1590, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1585, "end": 1588, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1616, "end": 1644, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1620, "end": 1643, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1620, "end": 1622, "ctxt": 0 }, "value": "b2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1622, "end": 1643, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1624, "end": 1643, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1631, "end": 1635, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1632, "end": 1635, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1634, "end": 1635, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1634, "end": 1635, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1624, "end": 1630, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1625, "end": 1626, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1625, "end": 1626, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1628, "end": 1629, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1628, "end": 1629, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1637, "end": 1643, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1640, "end": 1643, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1640, "end": 1641, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1640, "end": 1641, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 1654, "end": 1662, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1654, "end": 1661, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1654, "end": 1656, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1659, "end": 1661, "ctxt": 0 }, "value": "b2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1671, "end": 1679, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1671, "end": 1678, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1671, "end": 1673, "ctxt": 0 }, "value": "b2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1676, "end": 1678, "ctxt": 0 }, "value": "a2", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 1689, "end": 1786, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1693, "end": 1785, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1693, "end": 1695, "ctxt": 0 }, "value": "b7", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1695, "end": 1785, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1697, "end": 1785, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1753, "end": 1769, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1754, "end": 1769, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1756, "end": 1769, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1757, "end": 1763, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1760, "end": 1763, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1762, "end": 1763, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1762, "end": 1763, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1765, "end": 1769, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1768, "end": 1769, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1768, "end": 1769, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1697, "end": 1752, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1698, "end": 1712, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1698, "end": 1699, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1708, "end": 1712, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1708, "end": 1712, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1714, "end": 1731, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1714, "end": 1715, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1724, "end": 1731, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1724, "end": 1731, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1733, "end": 1751, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1733, "end": 1734, "ctxt": 0 }, "value": "V", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1743, "end": 1751, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1743, "end": 1751, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1771, "end": 1785, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1774, "end": 1785, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1775, "end": 1779, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1776, "end": 1779, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1778, "end": 1779, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1778, "end": 1779, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1781, "end": 1785, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1784, "end": 1785, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1784, "end": 1785, "ctxt": 0 }, "value": "V", "optional": false }, "typeParams": null } } } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 1795, "end": 1803, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1795, "end": 1802, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1795, "end": 1797, "ctxt": 0 }, "value": "a7", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1800, "end": 1802, "ctxt": 0 }, "value": "b7", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1812, "end": 1820, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1812, "end": 1819, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1812, "end": 1814, "ctxt": 0 }, "value": "b7", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1817, "end": 1819, "ctxt": 0 }, "value": "a7", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 1830, "end": 1941, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1834, "end": 1940, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1834, "end": 1836, "ctxt": 0 }, "value": "b8", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1836, "end": 1940, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1838, "end": 1940, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1874, "end": 1890, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1875, "end": 1890, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1877, "end": 1890, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1878, "end": 1884, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1881, "end": 1884, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1883, "end": 1884, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1883, "end": 1884, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1886, "end": 1890, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1889, "end": 1890, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1889, "end": 1890, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 1892, "end": 1924, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1893, "end": 1924, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1895, "end": 1924, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1896, "end": 1918, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1900, "end": 1918, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1902, "end": 1918, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1904, "end": 1916, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1904, "end": 1907, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1907, "end": 1915, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1909, "end": 1915, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1920, "end": 1924, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1923, "end": 1924, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1923, "end": 1924, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1838, "end": 1873, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1839, "end": 1853, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1839, "end": 1840, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1849, "end": 1853, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1849, "end": 1853, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1855, "end": 1872, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1855, "end": 1856, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1865, "end": 1872, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1865, "end": 1872, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1926, "end": 1940, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1929, "end": 1940, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1930, "end": 1934, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1931, "end": 1934, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1933, "end": 1934, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1933, "end": 1934, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1936, "end": 1940, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1939, "end": 1940, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1939, "end": 1940, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 1951, "end": 1959, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1951, "end": 1958, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1951, "end": 1953, "ctxt": 0 }, "value": "a8", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1956, "end": 1958, "ctxt": 0 }, "value": "b8", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2020, "end": 2028, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2020, "end": 2027, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2020, "end": 2022, "ctxt": 0 }, "value": "b8", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2025, "end": 2027, "ctxt": 0 }, "value": "a8", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 2099, "end": 2144, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2103, "end": 2143, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2103, "end": 2106, "ctxt": 0 }, "value": "b10", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2106, "end": 2143, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2108, "end": 2143, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 2128, "end": 2137, "ctxt": 0 }, "rest": { "start": 2128, "end": 2131, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 2131, "end": 2132, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2132, "end": 2137, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2134, "end": 2137, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2134, "end": 2135, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2134, "end": 2135, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2108, "end": 2127, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2109, "end": 2126, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2109, "end": 2110, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2119, "end": 2126, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2119, "end": 2126, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2139, "end": 2143, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2142, "end": 2143, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2142, "end": 2143, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 2154, "end": 2164, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2154, "end": 2163, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2154, "end": 2157, "ctxt": 0 }, "value": "a10", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2160, "end": 2163, "ctxt": 0 }, "value": "b10", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2173, "end": 2183, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2173, "end": 2182, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2173, "end": 2176, "ctxt": 0 }, "value": "b10", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2179, "end": 2182, "ctxt": 0 }, "value": "a10", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 2193, "end": 2239, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2197, "end": 2238, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2197, "end": 2200, "ctxt": 0 }, "value": "b11", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2200, "end": 2238, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2202, "end": 2238, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2222, "end": 2226, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2223, "end": 2226, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2225, "end": 2226, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2225, "end": 2226, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 2228, "end": 2232, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2229, "end": 2232, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2231, "end": 2232, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2231, "end": 2232, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2202, "end": 2221, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2203, "end": 2220, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2203, "end": 2204, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2213, "end": 2220, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2213, "end": 2220, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2234, "end": 2238, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2237, "end": 2238, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2237, "end": 2238, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 2249, "end": 2259, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2249, "end": 2258, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2249, "end": 2252, "ctxt": 0 }, "value": "a11", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2255, "end": 2258, "ctxt": 0 }, "value": "b11", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2268, "end": 2278, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2268, "end": 2277, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2268, "end": 2271, "ctxt": 0 }, "value": "b11", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2274, "end": 2277, "ctxt": 0 }, "value": "a11", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 2288, "end": 2362, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2292, "end": 2361, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2292, "end": 2295, "ctxt": 0 }, "value": "b12", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2295, "end": 2361, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2297, "end": 2361, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2325, "end": 2339, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2326, "end": 2339, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2328, "end": 2339, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2328, "end": 2333, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2333, "end": 2339, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2334, "end": 2338, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2334, "end": 2338, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 2341, "end": 2355, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2342, "end": 2355, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2344, "end": 2355, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2344, "end": 2349, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2349, "end": 2355, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2350, "end": 2354, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2350, "end": 2354, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2297, "end": 2324, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2298, "end": 2323, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2298, "end": 2299, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2308, "end": 2323, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2308, "end": 2313, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2313, "end": 2323, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2314, "end": 2322, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2314, "end": 2322, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } ] } }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2357, "end": 2361, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2360, "end": 2361, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2360, "end": 2361, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 2372, "end": 2382, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2372, "end": 2381, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2372, "end": 2375, "ctxt": 0 }, "value": "a12", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2378, "end": 2381, "ctxt": 0 }, "value": "b12", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2391, "end": 2401, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2391, "end": 2400, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2391, "end": 2394, "ctxt": 0 }, "value": "b12", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2397, "end": 2400, "ctxt": 0 }, "value": "a12", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 2411, "end": 2448, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2415, "end": 2447, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2415, "end": 2418, "ctxt": 0 }, "value": "b15", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2418, "end": 2447, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2420, "end": 2447, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2424, "end": 2441, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2425, "end": 2441, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2427, "end": 2441, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2429, "end": 2434, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2429, "end": 2430, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2430, "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": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2435, "end": 2439, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2435, "end": 2436, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2436, "end": 2439, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2438, "end": 2439, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2438, "end": 2439, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2420, "end": 2423, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2421, "end": 2422, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2421, "end": 2422, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2443, "end": 2447, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2446, "end": 2447, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2446, "end": 2447, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "init": null, "definite": 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": "a15", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2464, "end": 2467, "ctxt": 0 }, "value": "b15", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2477, "end": 2487, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2477, "end": 2486, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2477, "end": 2480, "ctxt": 0 }, "value": "b15", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2483, "end": 2486, "ctxt": 0 }, "value": "a15", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 2497, "end": 2553, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2501, "end": 2552, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2501, "end": 2505, "ctxt": 0 }, "value": "b15a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2505, "end": 2552, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2507, "end": 2552, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2524, "end": 2541, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2525, "end": 2541, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2527, "end": 2541, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2529, "end": 2534, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2529, "end": 2530, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2530, "end": 2533, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2532, "end": 2533, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2532, "end": 2533, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2535, "end": 2539, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2535, "end": 2536, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2536, "end": 2539, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2538, "end": 2539, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2538, "end": 2539, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2507, "end": 2523, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2508, "end": 2522, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2508, "end": 2509, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2518, "end": 2522, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2518, "end": 2522, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2543, "end": 2552, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2546, "end": 2552, "ctxt": 0 }, "kind": "number" } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 2563, "end": 2574, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2563, "end": 2573, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2563, "end": 2566, "ctxt": 0 }, "value": "a15", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2569, "end": 2573, "ctxt": 0 }, "value": "b15a", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2583, "end": 2594, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2583, "end": 2593, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2583, "end": 2587, "ctxt": 0 }, "value": "b15a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2590, "end": 2593, "ctxt": 0 }, "value": "a15", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 2604, "end": 2640, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2608, "end": 2639, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2608, "end": 2611, "ctxt": 0 }, "value": "b16", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2611, "end": 2639, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2613, "end": 2639, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2617, "end": 2631, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2618, "end": 2631, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2620, "end": 2631, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2621, "end": 2625, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2622, "end": 2625, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2624, "end": 2625, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2624, "end": 2625, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2627, "end": 2631, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2630, "end": 2631, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2630, "end": 2631, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2613, "end": 2616, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2614, "end": 2615, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2614, "end": 2615, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2633, "end": 2639, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2636, "end": 2639, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2636, "end": 2637, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2636, "end": 2637, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 2649, "end": 2659, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2649, "end": 2658, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2649, "end": 2652, "ctxt": 0 }, "value": "a16", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2655, "end": 2658, "ctxt": 0 }, "value": "b16", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2668, "end": 2678, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2668, "end": 2677, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2668, "end": 2671, "ctxt": 0 }, "value": "b16", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2674, "end": 2677, "ctxt": 0 }, "value": "a16", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 2688, "end": 2726, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2692, "end": 2725, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2692, "end": 2695, "ctxt": 0 }, "value": "b17", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2695, "end": 2725, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2697, "end": 2725, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2701, "end": 2715, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2702, "end": 2715, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2704, "end": 2715, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2705, "end": 2709, "ctxt": 0 }, "value": "a", "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 } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2711, "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": 2697, "end": 2700, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2698, "end": 2699, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2698, "end": 2699, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2717, "end": 2725, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2720, "end": 2725, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 2720, "end": 2723, "ctxt": 0 }, "kind": "any" } } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 2735, "end": 2745, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2735, "end": 2744, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2735, "end": 2738, "ctxt": 0 }, "value": "a17", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2741, "end": 2744, "ctxt": 0 }, "value": "b17", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2754, "end": 2764, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2754, "end": 2763, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2754, "end": 2757, "ctxt": 0 }, "value": "b17", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2760, "end": 2763, "ctxt": 0 }, "value": "a17", "optional": false } } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 2776, "end": 3138, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 2783, "end": 2814, "ctxt": 0 }, "value": "WithGenericSignaturesInBaseType", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 2815, "end": 3138, "ctxt": 0 }, "body": [ { "type": "VariableDeclaration", "span": { "start": 2875, "end": 2900, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2879, "end": 2899, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2879, "end": 2881, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2881, "end": 2899, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2883, "end": 2899, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2887, "end": 2891, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2888, "end": 2891, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2890, "end": 2891, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2890, "end": 2891, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2883, "end": 2886, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2884, "end": 2885, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2884, "end": 2885, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2893, "end": 2899, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2896, "end": 2899, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2896, "end": 2897, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2896, "end": 2897, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2909, "end": 2939, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2913, "end": 2938, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2913, "end": 2915, "ctxt": 0 }, "value": "b2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2915, "end": 2938, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2917, "end": 2938, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2921, "end": 2925, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2922, "end": 2925, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2924, "end": 2925, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2924, "end": 2925, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2917, "end": 2920, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2918, "end": 2919, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2918, "end": 2919, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2927, "end": 2938, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2930, "end": 2938, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 2930, "end": 2936, "ctxt": 0 }, "kind": "string" } } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 2948, "end": 2956, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2948, "end": 2955, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2948, "end": 2950, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2953, "end": 2955, "ctxt": 0 }, "value": "b2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2965, "end": 2973, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2965, "end": 2972, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2965, "end": 2967, "ctxt": 0 }, "value": "b2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2970, "end": 2972, "ctxt": 0 }, "value": "a2", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 3033, "end": 3063, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3037, "end": 3062, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3037, "end": 3039, "ctxt": 0 }, "value": "a3", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3039, "end": 3062, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3041, "end": 3062, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3045, "end": 3049, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3046, "end": 3049, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3048, "end": 3049, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3048, "end": 3049, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3041, "end": 3044, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3042, "end": 3043, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3042, "end": 3043, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3051, "end": 3062, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 3054, "end": 3062, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 3054, "end": 3060, "ctxt": 0 }, "kind": "string" } } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3072, "end": 3097, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3076, "end": 3096, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3076, "end": 3078, "ctxt": 0 }, "value": "b3", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3078, "end": 3096, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3080, "end": 3096, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3084, "end": 3088, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3085, "end": 3088, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3087, "end": 3088, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3087, "end": 3088, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3080, "end": 3083, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3081, "end": 3082, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3081, "end": 3082, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3090, "end": 3096, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 3093, "end": 3096, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 3093, "end": 3094, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3093, "end": 3094, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 3107, "end": 3115, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 3107, "end": 3114, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 3107, "end": 3109, "ctxt": 0 }, "value": "a3", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 3112, "end": 3114, "ctxt": 0 }, "value": "b3", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 3124, "end": 3132, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 3124, "end": 3131, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 3124, "end": 3126, "ctxt": 0 }, "value": "b3", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 3129, "end": 3131, "ctxt": 0 }, "value": "a3", "optional": false } } } ] } } ] } } ], "interpreter": null }