{ "type": "Script", "span": { "start": 213, "end": 2657, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 219, "end": 223, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 213, "end": 240, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 226, "end": 238, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 226, "end": 229, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 229, "end": 237, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 231, "end": 237, "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": 247, "end": 254, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "span": { "start": 241, "end": 284, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 270, "end": 282, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 270, "end": 273, "ctxt": 0 }, "value": "bar", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 273, "end": 281, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 275, "end": 281, "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": 263, "end": 267, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 291, "end": 299, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "span": { "start": 285, "end": 332, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 318, "end": 330, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 318, "end": 321, "ctxt": 0 }, "value": "baz", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 321, "end": 329, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 323, "end": 329, "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": 308, "end": 315, "ctxt": 0 }, "value": "Derived", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 339, "end": 351, "ctxt": 0 }, "value": "OtherDerived", "optional": false }, "declare": false, "span": { "start": 333, "end": 382, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 367, "end": 380, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 367, "end": 371, "ctxt": 0 }, "value": "bing", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 371, "end": 379, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 373, "end": 379, "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": 360, "end": 364, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "TsInterfaceDeclaration", "span": { "start": 384, "end": 1229, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 394, "end": 395, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 396, "end": 1229, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 418, "end": 449, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 418, "end": 419, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 419, "end": 448, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 421, "end": 448, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 426, "end": 435, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 427, "end": 435, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 429, "end": 435, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 437, "end": 448, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 440, "end": 448, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 440, "end": 446, "ctxt": 0 }, "kind": "number" } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 454, "end": 486, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 454, "end": 456, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 456, "end": 485, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 458, "end": 485, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 463, "end": 472, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 464, "end": 472, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 466, "end": 472, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 474, "end": 485, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 477, "end": 485, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 477, "end": 483, "ctxt": 0 }, "kind": "string" } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 491, "end": 519, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 491, "end": 493, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 493, "end": 518, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 495, "end": 518, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 500, "end": 509, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 501, "end": 509, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 503, "end": 509, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 511, "end": 518, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 514, "end": 518, "ctxt": 0 }, "kind": "void" } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 524, "end": 565, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 524, "end": 526, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 526, "end": 564, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 528, "end": 564, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 533, "end": 542, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 534, "end": 542, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 536, "end": 542, "ctxt": 0 }, "kind": "string" } } }, { "type": "Identifier", "span": { "start": 544, "end": 553, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 545, "end": 553, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 547, "end": 553, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 555, "end": 564, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 558, "end": 564, "ctxt": 0 }, "kind": "string" } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 570, "end": 617, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 570, "end": 572, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 572, "end": 616, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 574, "end": 616, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 579, "end": 605, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 580, "end": 605, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 582, "end": 605, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 583, "end": 594, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 586, "end": 594, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 588, "end": 594, "ctxt": 0 }, "kind": "string" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 596, "end": 605, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 599, "end": 605, "ctxt": 0 }, "kind": "number" } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 607, "end": 616, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 610, "end": 616, "ctxt": 0 }, "kind": "string" } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 622, "end": 666, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 622, "end": 624, "ctxt": 0 }, "value": "a6", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 624, "end": 665, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 626, "end": 665, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 631, "end": 656, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 632, "end": 656, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 634, "end": 656, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 635, "end": 644, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 638, "end": 644, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 640, "end": 644, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 640, "end": 644, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 646, "end": 656, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 649, "end": 656, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 649, "end": 656, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 658, "end": 665, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 661, "end": 665, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 661, "end": 665, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 671, "end": 731, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 671, "end": 673, "ctxt": 0 }, "value": "a7", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 673, "end": 730, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 675, "end": 730, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 680, "end": 705, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 681, "end": 705, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 683, "end": 705, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 684, "end": 693, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 687, "end": 693, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 689, "end": 693, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 689, "end": 693, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 695, "end": 705, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 698, "end": 705, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 698, "end": 705, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 707, "end": 730, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 710, "end": 730, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 711, "end": 718, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 712, "end": 718, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 714, "end": 718, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 714, "end": 718, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 720, "end": 730, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 723, "end": 730, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 723, "end": 730, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 736, "end": 824, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 736, "end": 738, "ctxt": 0 }, "value": "a8", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 738, "end": 823, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 740, "end": 823, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 745, "end": 770, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 746, "end": 770, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 748, "end": 770, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 749, "end": 758, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 752, "end": 758, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 754, "end": 758, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 754, "end": 758, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 760, "end": 770, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 763, "end": 770, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 763, "end": 770, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 772, "end": 798, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 773, "end": 798, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 775, "end": 798, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 776, "end": 786, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 780, "end": 786, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 782, "end": 786, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 782, "end": 786, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 788, "end": 798, "ctxt": 0 }, "typeAnnotation": { "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 } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 800, "end": 823, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 803, "end": 823, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 804, "end": 811, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 805, "end": 811, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 807, "end": 811, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 807, "end": 811, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 813, "end": 823, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 816, "end": 823, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 816, "end": 823, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 829, "end": 917, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 829, "end": 831, "ctxt": 0 }, "value": "a9", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 831, "end": 916, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 833, "end": 916, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 838, "end": 863, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 839, "end": 863, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 841, "end": 863, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 842, "end": 851, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 845, "end": 851, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 847, "end": 851, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 847, "end": 851, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 853, "end": 863, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 856, "end": 863, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 856, "end": 863, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 865, "end": 891, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 866, "end": 891, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 868, "end": 891, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 869, "end": 879, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 873, "end": 879, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 875, "end": 879, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 875, "end": 879, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 881, "end": 891, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 884, "end": 891, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 884, "end": 891, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 893, "end": 916, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 896, "end": 916, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 897, "end": 904, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 898, "end": 904, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 900, "end": 904, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 900, "end": 904, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 906, "end": 916, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 909, "end": 916, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 909, "end": 916, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 922, "end": 960, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 922, "end": 925, "ctxt": 0 }, "value": "a10", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 925, "end": 959, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 927, "end": 959, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 932, "end": 947, "ctxt": 0 }, "rest": { "start": 932, "end": 935, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 935, "end": 936, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 936, "end": 947, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 938, "end": 947, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 938, "end": 945, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 938, "end": 945, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 949, "end": 959, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 952, "end": 959, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 952, "end": 959, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 965, "end": 1036, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 965, "end": 968, "ctxt": 0 }, "value": "a11", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 968, "end": 1035, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 970, "end": 1035, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 975, "end": 993, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 976, "end": 993, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 978, "end": 993, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 980, "end": 991, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 980, "end": 983, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 983, "end": 991, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 985, "end": 991, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } }, { "type": "Identifier", "span": { "start": 995, "end": 1026, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 996, "end": 1026, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 998, "end": 1026, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1000, "end": 1012, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1000, "end": 1003, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1003, "end": 1011, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1005, "end": 1011, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1013, "end": 1024, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1013, "end": 1016, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1016, "end": 1024, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1018, "end": 1024, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1028, "end": 1035, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1031, "end": 1035, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1031, "end": 1035, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1041, "end": 1105, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1041, "end": 1044, "ctxt": 0 }, "value": "a12", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1044, "end": 1104, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1046, "end": 1104, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1051, "end": 1065, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1052, "end": 1065, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1054, "end": 1065, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1054, "end": 1059, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1059, "end": 1065, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1060, "end": 1064, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1060, "end": 1064, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 1067, "end": 1085, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1068, "end": 1085, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1070, "end": 1085, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1070, "end": 1075, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1075, "end": 1085, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1076, "end": 1084, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1076, "end": 1084, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } ] } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1087, "end": 1104, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1090, "end": 1104, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1090, "end": 1095, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1095, "end": 1104, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1096, "end": 1103, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1096, "end": 1103, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1110, "end": 1173, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1110, "end": 1113, "ctxt": 0 }, "value": "a13", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1113, "end": 1172, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1115, "end": 1172, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1120, "end": 1134, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1121, "end": 1134, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1123, "end": 1134, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1123, "end": 1128, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1128, "end": 1134, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1129, "end": 1133, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1129, "end": 1133, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 1136, "end": 1153, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1137, "end": 1153, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1139, "end": 1153, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1139, "end": 1144, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1144, "end": 1153, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1145, "end": 1152, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1145, "end": 1152, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1155, "end": 1172, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1158, "end": 1172, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1158, "end": 1163, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1163, "end": 1172, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1164, "end": 1171, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1164, "end": 1171, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1178, "end": 1227, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1178, "end": 1181, "ctxt": 0 }, "value": "a14", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1181, "end": 1226, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1183, "end": 1226, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1188, "end": 1215, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1189, "end": 1215, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1191, "end": 1215, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1193, "end": 1203, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1193, "end": 1194, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1194, "end": 1202, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1196, "end": 1202, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1204, "end": 1213, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1204, "end": 1205, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1205, "end": 1213, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1207, "end": 1213, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1217, "end": 1226, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1220, "end": 1226, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1220, "end": 1226, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1231, "end": 1285, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1241, "end": 1242, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1251, "end": 1252, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1251, "end": 1252, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1253, "end": 1285, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1259, "end": 1283, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1259, "end": 1260, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1260, "end": 1282, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1262, "end": 1282, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1270, "end": 1274, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1271, "end": 1274, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1273, "end": 1274, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1273, "end": 1274, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1266, "end": 1269, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1267, "end": 1268, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1267, "end": 1268, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1276, "end": 1282, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1279, "end": 1282, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1279, "end": 1280, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1279, "end": 1280, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "isAbstract": false } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1294, "end": 2657, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1304, "end": 1305, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1314, "end": 1315, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1314, "end": 1315, "ctxt": 0 }, "value": "B", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1316, "end": 2657, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1333, "end": 1357, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1333, "end": 1334, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1334, "end": 1356, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1336, "end": 1356, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1344, "end": 1348, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1345, "end": 1348, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1347, "end": 1348, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1347, "end": 1348, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1340, "end": 1343, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1341, "end": 1342, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1341, "end": 1342, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1350, "end": 1356, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1353, "end": 1356, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1353, "end": 1354, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1353, "end": 1354, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1419, "end": 1449, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1419, "end": 1421, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1421, "end": 1448, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1423, "end": 1448, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1431, "end": 1435, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1432, "end": 1435, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1434, "end": 1435, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1434, "end": 1435, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1427, "end": 1430, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1428, "end": 1429, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1428, "end": 1429, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1437, "end": 1448, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1440, "end": 1448, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1440, "end": 1446, "ctxt": 0 }, "kind": "string" } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1460, "end": 1483, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1460, "end": 1462, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1462, "end": 1482, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1464, "end": 1482, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1472, "end": 1476, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1473, "end": 1476, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1475, "end": 1476, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1475, "end": 1476, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1468, "end": 1471, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1469, "end": 1470, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1469, "end": 1470, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1478, "end": 1482, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1481, "end": 1482, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1481, "end": 1482, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1518, "end": 1550, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1518, "end": 1520, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1520, "end": 1549, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1522, "end": 1549, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1533, "end": 1537, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1534, "end": 1537, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1536, "end": 1537, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1536, "end": 1537, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 1539, "end": 1543, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1540, "end": 1543, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1542, "end": 1543, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1542, "end": 1543, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1526, "end": 1532, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1527, "end": 1528, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1527, "end": 1528, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1530, "end": 1531, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1530, "end": 1531, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1545, "end": 1549, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1548, "end": 1549, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1548, "end": 1549, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1625, "end": 1663, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1625, "end": 1627, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1627, "end": 1662, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1629, "end": 1662, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1640, "end": 1656, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1641, "end": 1656, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1643, "end": 1656, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1644, "end": 1650, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1647, "end": 1650, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1649, "end": 1650, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1649, "end": 1650, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1652, "end": 1656, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1655, "end": 1656, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1655, "end": 1656, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1633, "end": 1639, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1634, "end": 1635, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1634, "end": 1635, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1637, "end": 1638, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1637, "end": 1638, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1658, "end": 1662, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1661, "end": 1662, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1661, "end": 1662, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1730, "end": 1797, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1730, "end": 1732, "ctxt": 0 }, "value": "a6", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1732, "end": 1796, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1734, "end": 1796, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1774, "end": 1790, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1775, "end": 1790, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1777, "end": 1790, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1778, "end": 1784, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1781, "end": 1784, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1783, "end": 1784, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1783, "end": 1784, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1786, "end": 1790, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1789, "end": 1790, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1789, "end": 1790, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1738, "end": 1773, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1739, "end": 1753, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1739, "end": 1740, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1749, "end": 1753, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1749, "end": 1753, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1755, "end": 1772, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1755, "end": 1756, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1765, "end": 1772, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1765, "end": 1772, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1792, "end": 1796, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1795, "end": 1796, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1795, "end": 1796, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1851, "end": 1928, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1851, "end": 1853, "ctxt": 0 }, "value": "a7", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1853, "end": 1927, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1855, "end": 1927, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1895, "end": 1911, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1896, "end": 1911, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1898, "end": 1911, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1899, "end": 1905, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1902, "end": 1905, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1904, "end": 1905, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1904, "end": 1905, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1907, "end": 1911, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1910, "end": 1911, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1910, "end": 1911, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1859, "end": 1894, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1860, "end": 1874, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1860, "end": 1861, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1870, "end": 1874, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1870, "end": 1874, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1876, "end": 1893, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1876, "end": 1877, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1886, "end": 1893, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1886, "end": 1893, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1913, "end": 1927, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1916, "end": 1927, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1917, "end": 1921, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1918, "end": 1921, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1920, "end": 1921, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1920, "end": 1921, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1923, "end": 1927, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1926, "end": 1927, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1926, "end": 1927, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1939, "end": 2035, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1939, "end": 1941, "ctxt": 0 }, "value": "a8", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1941, "end": 2034, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1943, "end": 2034, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1983, "end": 1999, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1984, "end": 1999, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1986, "end": 1999, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1987, "end": 1993, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1990, "end": 1993, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1992, "end": 1993, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1992, "end": 1993, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1995, "end": 1999, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1998, "end": 1999, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1998, "end": 1999, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 2001, "end": 2018, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2002, "end": 2018, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2004, "end": 2018, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2005, "end": 2012, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2009, "end": 2012, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2011, "end": 2012, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2011, "end": 2012, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2014, "end": 2018, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2017, "end": 2018, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2017, "end": 2018, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1947, "end": 1982, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1948, "end": 1962, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1948, "end": 1949, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1958, "end": 1962, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1958, "end": 1962, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1964, "end": 1981, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1964, "end": 1965, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1974, "end": 1981, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1974, "end": 1981, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2020, "end": 2034, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2023, "end": 2034, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2024, "end": 2028, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2025, "end": 2028, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2027, "end": 2028, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2027, "end": 2028, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2030, "end": 2034, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2033, "end": 2034, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2033, "end": 2034, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2046, "end": 2170, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2046, "end": 2048, "ctxt": 0 }, "value": "a9", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2048, "end": 2169, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2050, "end": 2169, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2090, "end": 2106, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2091, "end": 2106, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2093, "end": 2106, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2094, "end": 2100, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2097, "end": 2100, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2099, "end": 2100, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2099, "end": 2100, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2102, "end": 2106, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2105, "end": 2106, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2105, "end": 2106, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 2108, "end": 2153, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2109, "end": 2153, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2111, "end": 2153, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2112, "end": 2147, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2116, "end": 2147, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2118, "end": 2147, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2120, "end": 2132, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2120, "end": 2123, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2123, "end": 2131, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2125, "end": 2131, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2133, "end": 2145, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2133, "end": 2137, "ctxt": 0 }, "value": "bing", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2137, "end": 2145, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2139, "end": 2145, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2149, "end": 2153, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2152, "end": 2153, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2152, "end": 2153, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2054, "end": 2089, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2055, "end": 2069, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2055, "end": 2056, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2065, "end": 2069, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2065, "end": 2069, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2071, "end": 2088, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2071, "end": 2072, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2081, "end": 2088, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2081, "end": 2088, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2155, "end": 2169, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2158, "end": 2169, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2159, "end": 2163, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2160, "end": 2163, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2162, "end": 2163, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2162, "end": 2163, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2165, "end": 2169, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2168, "end": 2169, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2168, "end": 2169, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2224, "end": 2269, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2224, "end": 2227, "ctxt": 0 }, "value": "a10", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2227, "end": 2268, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2229, "end": 2268, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 2253, "end": 2262, "ctxt": 0 }, "rest": { "start": 2253, "end": 2256, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 2256, "end": 2257, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2257, "end": 2262, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2259, "end": 2262, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2259, "end": 2260, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2259, "end": 2260, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2233, "end": 2252, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2234, "end": 2251, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2234, "end": 2235, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2244, "end": 2251, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2244, "end": 2251, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2264, "end": 2268, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2267, "end": 2268, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2267, "end": 2268, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2280, "end": 2323, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2280, "end": 2283, "ctxt": 0 }, "value": "a11", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2283, "end": 2322, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2285, "end": 2322, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2306, "end": 2310, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2307, "end": 2310, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2309, "end": 2310, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2309, "end": 2310, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 2312, "end": 2316, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2313, "end": 2316, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2315, "end": 2316, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2315, "end": 2316, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2289, "end": 2305, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2290, "end": 2304, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2290, "end": 2291, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2300, "end": 2304, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2300, "end": 2304, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2318, "end": 2322, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2321, "end": 2322, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2321, "end": 2322, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2334, "end": 2407, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2334, "end": 2337, "ctxt": 0 }, "value": "a12", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2337, "end": 2406, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2339, "end": 2406, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2367, "end": 2381, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2368, "end": 2381, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2370, "end": 2381, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2370, "end": 2375, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2375, "end": 2381, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2376, "end": 2380, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2376, "end": 2380, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 2383, "end": 2387, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2384, "end": 2387, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2386, "end": 2387, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2386, "end": 2387, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2343, "end": 2366, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2344, "end": 2365, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2344, "end": 2345, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2354, "end": 2365, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2354, "end": 2359, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2359, "end": 2365, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2360, "end": 2364, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2360, "end": 2364, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2389, "end": 2406, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2392, "end": 2406, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2392, "end": 2397, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2397, "end": 2406, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2398, "end": 2405, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2398, "end": 2405, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2448, "end": 2511, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2448, "end": 2451, "ctxt": 0 }, "value": "a13", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2451, "end": 2510, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2453, "end": 2510, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2484, "end": 2498, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2485, "end": 2498, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2487, "end": 2498, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2487, "end": 2492, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2492, "end": 2498, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2493, "end": 2497, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2493, "end": 2497, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 2500, "end": 2504, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2501, "end": 2504, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2503, "end": 2504, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2503, "end": 2504, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2457, "end": 2483, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2458, "end": 2482, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2458, "end": 2459, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2468, "end": 2482, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2468, "end": 2473, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2473, "end": 2482, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2474, "end": 2481, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2474, "end": 2481, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2506, "end": 2510, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2509, "end": 2510, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2509, "end": 2510, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2609, "end": 2649, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2609, "end": 2612, "ctxt": 0 }, "value": "a14", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2612, "end": 2648, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 2614, "end": 2648, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2625, "end": 2642, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2626, "end": 2642, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2628, "end": 2642, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2630, "end": 2635, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2630, "end": 2631, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2631, "end": 2634, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2633, "end": 2634, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2633, "end": 2634, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2636, "end": 2640, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2636, "end": 2637, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2637, "end": 2640, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2639, "end": 2640, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2639, "end": 2640, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2618, "end": 2624, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2619, "end": 2620, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2619, "end": 2620, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2622, "end": 2623, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2622, "end": 2623, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2644, "end": 2648, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2647, "end": 2648, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2647, "end": 2648, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null } ] } } ], "interpreter": null }