{ "type": "Script", "span": { "start": 212, "end": 2656, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 218, "end": 222, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 212, "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": "foo", "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": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 246, "end": 253, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "span": { "start": 240, "end": 283, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 269, "end": 281, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 269, "end": 272, "ctxt": 0 }, "value": "bar", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 272, "end": 280, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 274, "end": 280, "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": 262, "end": 266, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 290, "end": 298, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "span": { "start": 284, "end": 331, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 317, "end": 329, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 317, "end": 320, "ctxt": 0 }, "value": "baz", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 320, "end": 328, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 322, "end": 328, "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": 307, "end": 314, "ctxt": 0 }, "value": "Derived", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 338, "end": 350, "ctxt": 0 }, "value": "OtherDerived", "optional": false }, "declare": false, "span": { "start": 332, "end": 381, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 366, "end": 379, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 366, "end": 370, "ctxt": 0 }, "value": "bing", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 370, "end": 378, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 372, "end": 378, "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": 359, "end": 363, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "TsInterfaceDeclaration", "span": { "start": 383, "end": 1228, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 393, "end": 394, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 395, "end": 1228, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 417, "end": 448, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 417, "end": 418, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 418, "end": 447, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 420, "end": 447, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 425, "end": 434, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 426, "end": 434, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 428, "end": 434, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 436, "end": 447, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 439, "end": 447, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 439, "end": 445, "ctxt": 0 }, "kind": "number" } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 453, "end": 485, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 453, "end": 455, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 455, "end": 484, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 457, "end": 484, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 462, "end": 471, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 463, "end": 471, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 465, "end": 471, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 473, "end": 484, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 476, "end": 484, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 476, "end": 482, "ctxt": 0 }, "kind": "string" } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 490, "end": 518, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 490, "end": 492, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 492, "end": 517, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 494, "end": 517, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 499, "end": 508, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 500, "end": 508, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 502, "end": 508, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 510, "end": 517, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 513, "end": 517, "ctxt": 0 }, "kind": "void" } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 523, "end": 564, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 523, "end": 525, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 525, "end": 563, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 527, "end": 563, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 532, "end": 541, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 533, "end": 541, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 535, "end": 541, "ctxt": 0 }, "kind": "string" } } }, { "type": "Identifier", "span": { "start": 543, "end": 552, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 544, "end": 552, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 546, "end": 552, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 554, "end": 563, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 557, "end": 563, "ctxt": 0 }, "kind": "string" } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 569, "end": 616, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 569, "end": 571, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 571, "end": 615, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 573, "end": 615, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 578, "end": 604, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 579, "end": 604, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 581, "end": 604, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 582, "end": 593, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 585, "end": 593, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 587, "end": 593, "ctxt": 0 }, "kind": "string" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 595, "end": 604, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 598, "end": 604, "ctxt": 0 }, "kind": "number" } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 606, "end": 615, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 609, "end": 615, "ctxt": 0 }, "kind": "string" } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 621, "end": 665, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 621, "end": 623, "ctxt": 0 }, "value": "a6", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 623, "end": 664, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 625, "end": 664, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 630, "end": 655, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 631, "end": 655, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 633, "end": 655, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 634, "end": 643, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 637, "end": 643, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 639, "end": 643, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 639, "end": 643, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 645, "end": 655, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 648, "end": 655, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 648, "end": 655, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 657, "end": 664, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 660, "end": 664, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 660, "end": 664, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 670, "end": 730, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 670, "end": 672, "ctxt": 0 }, "value": "a7", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 672, "end": 729, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 674, "end": 729, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 679, "end": 704, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 680, "end": 704, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 682, "end": 704, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 683, "end": 692, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 686, "end": 692, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 688, "end": 692, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 688, "end": 692, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 694, "end": 704, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 697, "end": 704, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 697, "end": 704, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 706, "end": 729, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 709, "end": 729, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 710, "end": 717, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 711, "end": 717, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 713, "end": 717, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 713, "end": 717, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 719, "end": 729, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 722, "end": 729, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 722, "end": 729, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 735, "end": 823, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 735, "end": 737, "ctxt": 0 }, "value": "a8", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 737, "end": 822, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 739, "end": 822, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 744, "end": 769, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 745, "end": 769, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 747, "end": 769, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 748, "end": 757, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 751, "end": 757, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 753, "end": 757, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 753, "end": 757, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 759, "end": 769, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 762, "end": 769, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 762, "end": 769, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 771, "end": 797, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 772, "end": 797, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 774, "end": 797, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 775, "end": 785, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 779, "end": 785, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 781, "end": 785, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 781, "end": 785, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 787, "end": 797, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 790, "end": 797, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 790, "end": 797, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 799, "end": 822, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 802, "end": 822, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 803, "end": 810, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 804, "end": 810, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 806, "end": 810, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 806, "end": 810, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 812, "end": 822, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 815, "end": 822, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 815, "end": 822, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 828, "end": 916, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 828, "end": 830, "ctxt": 0 }, "value": "a9", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 830, "end": 915, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 832, "end": 915, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 837, "end": 862, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 838, "end": 862, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 840, "end": 862, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 841, "end": 850, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 844, "end": 850, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 846, "end": 850, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 846, "end": 850, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 852, "end": 862, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 855, "end": 862, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 855, "end": 862, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 864, "end": 890, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 865, "end": 890, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 867, "end": 890, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 868, "end": 878, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 872, "end": 878, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 874, "end": 878, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 874, "end": 878, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 880, "end": 890, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 883, "end": 890, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 883, "end": 890, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 892, "end": 915, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 895, "end": 915, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 896, "end": 903, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 897, "end": 903, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 899, "end": 903, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 899, "end": 903, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 905, "end": 915, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 908, "end": 915, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 908, "end": 915, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 921, "end": 959, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 921, "end": 924, "ctxt": 0 }, "value": "a10", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 924, "end": 958, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 926, "end": 958, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 931, "end": 946, "ctxt": 0 }, "rest": { "start": 931, "end": 934, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 934, "end": 935, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 935, "end": 946, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 937, "end": 946, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 937, "end": 944, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 937, "end": 944, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 948, "end": 958, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 951, "end": 958, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 951, "end": 958, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 964, "end": 1035, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 964, "end": 967, "ctxt": 0 }, "value": "a11", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 967, "end": 1034, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 969, "end": 1034, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 974, "end": 992, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 975, "end": 992, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 977, "end": 992, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 979, "end": 990, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 979, "end": 982, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 982, "end": 990, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 984, "end": 990, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } }, { "type": "Identifier", "span": { "start": 994, "end": 1025, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 995, "end": 1025, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 997, "end": 1025, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 999, "end": 1011, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 999, "end": 1002, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1002, "end": 1010, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1004, "end": 1010, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1012, "end": 1023, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1012, "end": 1015, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1015, "end": 1023, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1017, "end": 1023, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1027, "end": 1034, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1030, "end": 1034, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1030, "end": 1034, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1040, "end": 1104, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1040, "end": 1043, "ctxt": 0 }, "value": "a12", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1043, "end": 1103, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1045, "end": 1103, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1050, "end": 1064, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1051, "end": 1064, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1053, "end": 1064, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1053, "end": 1058, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1058, "end": 1064, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1059, "end": 1063, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1059, "end": 1063, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 1066, "end": 1084, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1067, "end": 1084, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1069, "end": 1084, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1069, "end": 1074, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1074, "end": 1084, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1075, "end": 1083, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1075, "end": 1083, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } ] } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1086, "end": 1103, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1089, "end": 1103, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1089, "end": 1094, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1094, "end": 1103, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1095, "end": 1102, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1095, "end": 1102, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1109, "end": 1172, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1109, "end": 1112, "ctxt": 0 }, "value": "a13", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1112, "end": 1171, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1114, "end": 1171, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1119, "end": 1133, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1120, "end": 1133, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1122, "end": 1133, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1122, "end": 1127, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1127, "end": 1133, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1128, "end": 1132, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1128, "end": 1132, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 1135, "end": 1152, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1136, "end": 1152, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1138, "end": 1152, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1138, "end": 1143, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1143, "end": 1152, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1144, "end": 1151, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1144, "end": 1151, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1154, "end": 1171, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1157, "end": 1171, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1157, "end": 1162, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1162, "end": 1171, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1163, "end": 1170, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1163, "end": 1170, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1177, "end": 1226, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1177, "end": 1180, "ctxt": 0 }, "value": "a14", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1180, "end": 1225, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1182, "end": 1225, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1187, "end": 1214, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1188, "end": 1214, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1190, "end": 1214, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1192, "end": 1202, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1192, "end": 1193, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1193, "end": 1201, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1195, "end": 1201, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1203, "end": 1212, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1203, "end": 1204, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1204, "end": 1212, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1206, "end": 1212, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1216, "end": 1225, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1219, "end": 1225, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1219, "end": 1225, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1230, "end": 1284, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1240, "end": 1241, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1250, "end": 1251, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1250, "end": 1251, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1252, "end": 1284, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1258, "end": 1282, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1258, "end": 1259, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1259, "end": 1281, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1261, "end": 1281, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1269, "end": 1273, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1270, "end": 1273, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1272, "end": 1273, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1272, "end": 1273, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1265, "end": 1268, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1266, "end": 1267, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1266, "end": 1267, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1275, "end": 1281, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1278, "end": 1281, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1278, "end": 1279, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1278, "end": 1279, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "isAbstract": false } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1293, "end": 2656, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1303, "end": 1304, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1313, "end": 1314, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1313, "end": 1314, "ctxt": 0 }, "value": "B", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1315, "end": 2656, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1332, "end": 1356, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1332, "end": 1333, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1333, "end": 1355, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1335, "end": 1355, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1343, "end": 1347, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1344, "end": 1347, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1346, "end": 1347, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1346, "end": 1347, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1339, "end": 1342, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1340, "end": 1341, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1340, "end": 1341, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1349, "end": 1355, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1352, "end": 1355, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1352, "end": 1353, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1352, "end": 1353, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1418, "end": 1448, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1418, "end": 1420, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1420, "end": 1447, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1422, "end": 1447, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1430, "end": 1434, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1431, "end": 1434, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1433, "end": 1434, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1433, "end": 1434, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1426, "end": 1429, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1427, "end": 1428, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1427, "end": 1428, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1436, "end": 1447, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1439, "end": 1447, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1439, "end": 1445, "ctxt": 0 }, "kind": "string" } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1459, "end": 1482, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1459, "end": 1461, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1461, "end": 1481, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1463, "end": 1481, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1471, "end": 1475, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1472, "end": 1475, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1474, "end": 1475, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1474, "end": 1475, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1467, "end": 1470, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1468, "end": 1469, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1468, "end": 1469, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1477, "end": 1481, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1480, "end": 1481, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1480, "end": 1481, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1517, "end": 1549, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1517, "end": 1519, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1519, "end": 1548, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1521, "end": 1548, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1532, "end": 1536, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1533, "end": 1536, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1535, "end": 1536, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1535, "end": 1536, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 1538, "end": 1542, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1539, "end": 1542, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1541, "end": 1542, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1541, "end": 1542, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1525, "end": 1531, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1526, "end": 1527, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1526, "end": 1527, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1529, "end": 1530, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1529, "end": 1530, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1544, "end": 1548, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1547, "end": 1548, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1547, "end": 1548, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1624, "end": 1662, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1624, "end": 1626, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1626, "end": 1661, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1628, "end": 1661, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1639, "end": 1655, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1640, "end": 1655, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1642, "end": 1655, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1643, "end": 1649, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1646, "end": 1649, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1648, "end": 1649, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1648, "end": 1649, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1651, "end": 1655, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1654, "end": 1655, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1654, "end": 1655, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1632, "end": 1638, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1633, "end": 1634, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1633, "end": 1634, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1636, "end": 1637, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1636, "end": 1637, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1657, "end": 1661, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1660, "end": 1661, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1660, "end": 1661, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1729, "end": 1796, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1729, "end": 1731, "ctxt": 0 }, "value": "a6", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1731, "end": 1795, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1733, "end": 1795, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1773, "end": 1789, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1774, "end": 1789, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1776, "end": 1789, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1777, "end": 1783, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1780, "end": 1783, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1782, "end": 1783, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1782, "end": 1783, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1785, "end": 1789, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1788, "end": 1789, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1788, "end": 1789, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1737, "end": 1772, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1738, "end": 1752, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1738, "end": 1739, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1748, "end": 1752, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1748, "end": 1752, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1754, "end": 1771, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1754, "end": 1755, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1764, "end": 1771, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1764, "end": 1771, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1791, "end": 1795, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1794, "end": 1795, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1794, "end": 1795, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1850, "end": 1927, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1850, "end": 1852, "ctxt": 0 }, "value": "a7", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1852, "end": 1926, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1854, "end": 1926, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1894, "end": 1910, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1895, "end": 1910, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1897, "end": 1910, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1898, "end": 1904, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1901, "end": 1904, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1903, "end": 1904, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1903, "end": 1904, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1906, "end": 1910, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1909, "end": 1910, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1909, "end": 1910, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1858, "end": 1893, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1859, "end": 1873, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1859, "end": 1860, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1869, "end": 1873, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1869, "end": 1873, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1875, "end": 1892, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1875, "end": 1876, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1885, "end": 1892, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1885, "end": 1892, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1912, "end": 1926, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1915, "end": 1926, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1916, "end": 1920, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1917, "end": 1920, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1919, "end": 1920, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1919, "end": 1920, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1922, "end": 1926, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1925, "end": 1926, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1925, "end": 1926, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1938, "end": 2034, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1938, "end": 1940, "ctxt": 0 }, "value": "a8", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1940, "end": 2033, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1942, "end": 2033, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1982, "end": 1998, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1983, "end": 1998, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1985, "end": 1998, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1986, "end": 1992, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1989, "end": 1992, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1991, "end": 1992, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1991, "end": 1992, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1994, "end": 1998, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1997, "end": 1998, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1997, "end": 1998, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 2000, "end": 2017, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2001, "end": 2017, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2003, "end": 2017, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2004, "end": 2011, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2008, "end": 2011, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2010, "end": 2011, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2010, "end": 2011, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2013, "end": 2017, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2016, "end": 2017, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2016, "end": 2017, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1946, "end": 1981, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1947, "end": 1961, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1947, "end": 1948, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1957, "end": 1961, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1957, "end": 1961, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1963, "end": 1980, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1963, "end": 1964, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1973, "end": 1980, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1973, "end": 1980, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2019, "end": 2033, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2022, "end": 2033, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2023, "end": 2027, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2024, "end": 2027, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2026, "end": 2027, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2026, "end": 2027, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2029, "end": 2033, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2032, "end": 2033, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2032, "end": 2033, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2045, "end": 2169, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2045, "end": 2047, "ctxt": 0 }, "value": "a9", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2047, "end": 2168, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2049, "end": 2168, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2089, "end": 2105, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2090, "end": 2105, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2092, "end": 2105, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2093, "end": 2099, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2096, "end": 2099, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2098, "end": 2099, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2098, "end": 2099, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2101, "end": 2105, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2104, "end": 2105, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2104, "end": 2105, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 2107, "end": 2152, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2108, "end": 2152, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2110, "end": 2152, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2111, "end": 2146, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2115, "end": 2146, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2117, "end": 2146, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2119, "end": 2131, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2119, "end": 2122, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2122, "end": 2130, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2124, "end": 2130, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2132, "end": 2144, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2132, "end": 2136, "ctxt": 0 }, "value": "bing", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2136, "end": 2144, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2138, "end": 2144, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2148, "end": 2152, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2151, "end": 2152, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2151, "end": 2152, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2053, "end": 2088, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2054, "end": 2068, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2054, "end": 2055, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2064, "end": 2068, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2064, "end": 2068, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2070, "end": 2087, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2070, "end": 2071, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2080, "end": 2087, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2080, "end": 2087, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2154, "end": 2168, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2157, "end": 2168, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2158, "end": 2162, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2159, "end": 2162, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2161, "end": 2162, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2161, "end": 2162, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2164, "end": 2168, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2167, "end": 2168, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2167, "end": 2168, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2223, "end": 2268, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2223, "end": 2226, "ctxt": 0 }, "value": "a10", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2226, "end": 2267, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2228, "end": 2267, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 2252, "end": 2261, "ctxt": 0 }, "rest": { "start": 2252, "end": 2255, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 2255, "end": 2256, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2256, "end": 2261, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2258, "end": 2261, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2258, "end": 2259, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2258, "end": 2259, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2232, "end": 2251, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2233, "end": 2250, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2233, "end": 2234, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2243, "end": 2250, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2243, "end": 2250, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2263, "end": 2267, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2266, "end": 2267, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2266, "end": 2267, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2279, "end": 2322, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2279, "end": 2282, "ctxt": 0 }, "value": "a11", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2282, "end": 2321, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2284, "end": 2321, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2305, "end": 2309, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2306, "end": 2309, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2308, "end": 2309, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2308, "end": 2309, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 2311, "end": 2315, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2312, "end": 2315, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2314, "end": 2315, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2314, "end": 2315, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2288, "end": 2304, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2289, "end": 2303, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2289, "end": 2290, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2299, "end": 2303, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2299, "end": 2303, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2317, "end": 2321, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2320, "end": 2321, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2320, "end": 2321, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2333, "end": 2406, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2333, "end": 2336, "ctxt": 0 }, "value": "a12", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2336, "end": 2405, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2338, "end": 2405, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2366, "end": 2380, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2367, "end": 2380, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2369, "end": 2380, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2369, "end": 2374, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2374, "end": 2380, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2375, "end": 2379, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2375, "end": 2379, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 2382, "end": 2386, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2383, "end": 2386, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2385, "end": 2386, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2385, "end": 2386, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2342, "end": 2365, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2343, "end": 2364, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2343, "end": 2344, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2353, "end": 2364, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2353, "end": 2358, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2358, "end": 2364, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2359, "end": 2363, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2359, "end": 2363, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2388, "end": 2405, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2391, "end": 2405, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2391, "end": 2396, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2396, "end": 2405, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2397, "end": 2404, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2397, "end": 2404, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2447, "end": 2510, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2447, "end": 2450, "ctxt": 0 }, "value": "a13", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2450, "end": 2509, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2452, "end": 2509, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2483, "end": 2497, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2484, "end": 2497, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2486, "end": 2497, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2486, "end": 2491, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2491, "end": 2497, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2492, "end": 2496, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2492, "end": 2496, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 2499, "end": 2503, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2500, "end": 2503, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2502, "end": 2503, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2502, "end": 2503, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2456, "end": 2482, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2457, "end": 2481, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2457, "end": 2458, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2467, "end": 2481, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2467, "end": 2472, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2472, "end": 2481, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2473, "end": 2480, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2473, "end": 2480, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2505, "end": 2509, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2508, "end": 2509, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2508, "end": 2509, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2608, "end": 2648, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2608, "end": 2611, "ctxt": 0 }, "value": "a14", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2611, "end": 2647, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2613, "end": 2647, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2624, "end": 2641, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2625, "end": 2641, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2627, "end": 2641, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2629, "end": 2634, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2629, "end": 2630, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2630, "end": 2633, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2632, "end": 2633, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2632, "end": 2633, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2635, "end": 2639, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2635, "end": 2636, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2636, "end": 2639, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2638, "end": 2639, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2638, "end": 2639, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2617, "end": 2623, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2618, "end": 2619, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2618, "end": 2619, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2621, "end": 2622, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2621, "end": 2622, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2643, "end": 2647, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2646, "end": 2647, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2646, "end": 2647, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null } ] } } ], "interpreter": null }