{ "type": "Script", "span": { "start": 103, "end": 6075, "ctxt": 0 }, "body": [ { "type": "TsModuleDeclaration", "span": { "start": 103, "end": 2145, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 110, "end": 124, "ctxt": 0 }, "value": "ClassTypeParam", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 125, "end": 2145, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 131, "end": 292, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 141, "end": 145, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 145, "end": 148, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 146, "end": 147, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 146, "end": 147, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 149, "end": 292, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 159, "end": 170, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 159, "end": 160, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 160, "end": 169, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 162, "end": 169, "ctxt": 0 }, "params": [], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 165, "end": 169, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 168, "end": 169, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 168, "end": 169, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 179, "end": 196, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 179, "end": 181, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 181, "end": 195, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 183, "end": 195, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 184, "end": 189, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 186, "end": 189, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 188, "end": 189, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 188, "end": 189, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 191, "end": 195, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 194, "end": 195, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 194, "end": 195, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 205, "end": 221, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 205, "end": 207, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 207, "end": 220, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 209, "end": 220, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 210, "end": 214, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 211, "end": 214, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 213, "end": 214, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 213, "end": 214, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 216, "end": 220, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 219, "end": 220, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 219, "end": 220, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 230, "end": 253, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 230, "end": 232, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 232, "end": 252, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 234, "end": 252, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 235, "end": 239, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 236, "end": 239, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 238, "end": 239, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 238, "end": 239, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 241, "end": 246, "ctxt": 0 }, "value": "y", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 243, "end": 246, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 245, "end": 246, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 245, "end": 246, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 248, "end": 252, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 251, "end": 252, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 251, "end": 252, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 262, "end": 286, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 262, "end": 264, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 264, "end": 285, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 266, "end": 285, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 267, "end": 272, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 269, "end": 272, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 271, "end": 272, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 271, "end": 272, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 274, "end": 279, "ctxt": 0 }, "value": "y", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 276, "end": 279, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 278, "end": 279, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 278, "end": 279, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 281, "end": 285, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 284, "end": 285, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 284, "end": 285, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 298, "end": 390, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 308, "end": 310, "ctxt": 0 }, "value": "I1", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 310, "end": 313, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 311, "end": 312, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 311, "end": 312, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 322, "end": 329, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 322, "end": 326, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 326, "end": 329, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 327, "end": 328, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 327, "end": 328, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 330, "end": 390, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 340, "end": 351, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 340, "end": 341, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 341, "end": 350, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 343, "end": 350, "ctxt": 0 }, "params": [], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 346, "end": 350, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 349, "end": 350, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 349, "end": 350, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 396, "end": 493, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 406, "end": 408, "ctxt": 0 }, "value": "I2", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 408, "end": 411, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 409, "end": 410, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 409, "end": 410, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 420, "end": 427, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 420, "end": 424, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 424, "end": 427, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 425, "end": 426, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 425, "end": 426, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 428, "end": 493, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 438, "end": 454, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 438, "end": 439, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 439, "end": 453, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 441, "end": 453, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 442, "end": 447, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 444, "end": 447, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 446, "end": 447, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 446, "end": 447, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 449, "end": 453, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 452, "end": 453, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 452, "end": 453, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 499, "end": 597, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 509, "end": 511, "ctxt": 0 }, "value": "I3", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 511, "end": 514, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 512, "end": 513, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 512, "end": 513, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 523, "end": 530, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 523, "end": 527, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 527, "end": 530, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 528, "end": 529, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 528, "end": 529, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 531, "end": 597, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 541, "end": 556, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 541, "end": 542, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 542, "end": 555, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 544, "end": 555, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 545, "end": 549, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 546, "end": 549, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 548, "end": 549, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 548, "end": 549, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 551, "end": 555, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 554, "end": 555, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 554, "end": 555, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 604, "end": 697, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 614, "end": 616, "ctxt": 0 }, "value": "I4", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 616, "end": 619, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 617, "end": 618, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 617, "end": 618, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 628, "end": 635, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 628, "end": 632, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 632, "end": 635, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 633, "end": 634, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 633, "end": 634, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 636, "end": 697, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 646, "end": 658, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 646, "end": 648, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 648, "end": 657, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 650, "end": 657, "ctxt": 0 }, "params": [], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 653, "end": 657, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 656, "end": 657, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 656, "end": 657, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 703, "end": 801, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 713, "end": 715, "ctxt": 0 }, "value": "I5", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 715, "end": 718, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 716, "end": 717, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 716, "end": 717, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 727, "end": 734, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 727, "end": 731, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 731, "end": 734, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 732, "end": 733, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 732, "end": 733, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 735, "end": 801, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 745, "end": 762, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 745, "end": 747, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 747, "end": 761, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 749, "end": 761, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 750, "end": 755, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 752, "end": 755, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 754, "end": 755, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 754, "end": 755, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 757, "end": 761, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 760, "end": 761, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 760, "end": 761, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 807, "end": 900, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 817, "end": 819, "ctxt": 0 }, "value": "I6", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 819, "end": 822, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 820, "end": 821, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 820, "end": 821, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 831, "end": 838, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 831, "end": 835, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 835, "end": 838, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 836, "end": 837, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 836, "end": 837, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 839, "end": 900, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 849, "end": 865, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 849, "end": 851, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 851, "end": 864, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 853, "end": 864, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 854, "end": 858, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 855, "end": 858, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 857, "end": 858, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 857, "end": 858, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 860, "end": 864, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 863, "end": 864, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 863, "end": 864, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 907, "end": 996, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 917, "end": 919, "ctxt": 0 }, "value": "I7", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 919, "end": 922, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 920, "end": 921, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 920, "end": 921, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 931, "end": 938, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 931, "end": 935, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 935, "end": 938, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 936, "end": 937, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 936, "end": 937, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 939, "end": 996, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 949, "end": 961, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 949, "end": 951, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 951, "end": 960, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 953, "end": 960, "ctxt": 0 }, "params": [], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 956, "end": 960, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 959, "end": 960, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 959, "end": 960, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1002, "end": 1096, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1012, "end": 1014, "ctxt": 0 }, "value": "I8", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1014, "end": 1017, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1015, "end": 1016, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1015, "end": 1016, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1026, "end": 1033, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1026, "end": 1030, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 1030, "end": 1033, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1031, "end": 1032, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1031, "end": 1032, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1034, "end": 1096, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1044, "end": 1061, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1044, "end": 1046, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1046, "end": 1060, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1048, "end": 1060, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1049, "end": 1054, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1051, "end": 1054, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1053, "end": 1054, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1053, "end": 1054, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1056, "end": 1060, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1059, "end": 1060, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1059, "end": 1060, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1102, "end": 1199, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1112, "end": 1114, "ctxt": 0 }, "value": "I9", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1114, "end": 1117, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1115, "end": 1116, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1115, "end": 1116, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1126, "end": 1133, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1126, "end": 1130, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 1130, "end": 1133, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1131, "end": 1132, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1131, "end": 1132, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1134, "end": 1199, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1144, "end": 1160, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1144, "end": 1146, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1146, "end": 1159, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1148, "end": 1159, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1149, "end": 1153, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1150, "end": 1153, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1152, "end": 1153, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1152, "end": 1153, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1155, "end": 1159, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1158, "end": 1159, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1158, "end": 1159, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1205, "end": 1312, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1215, "end": 1218, "ctxt": 0 }, "value": "I10", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1218, "end": 1221, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1219, "end": 1220, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1219, "end": 1220, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1230, "end": 1237, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1230, "end": 1234, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 1234, "end": 1237, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1235, "end": 1236, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1235, "end": 1236, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1238, "end": 1312, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1248, "end": 1270, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1248, "end": 1250, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1250, "end": 1269, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1252, "end": 1269, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1253, "end": 1257, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1254, "end": 1257, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1256, "end": 1257, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1256, "end": 1257, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 1259, "end": 1263, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1260, "end": 1263, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1262, "end": 1263, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1262, "end": 1263, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1265, "end": 1269, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1268, "end": 1269, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1268, "end": 1269, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1319, "end": 1409, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1329, "end": 1332, "ctxt": 0 }, "value": "I11", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1332, "end": 1335, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1333, "end": 1334, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1333, "end": 1334, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1344, "end": 1351, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1344, "end": 1348, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 1348, "end": 1351, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1349, "end": 1350, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1349, "end": 1350, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1352, "end": 1409, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1362, "end": 1374, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1362, "end": 1364, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1364, "end": 1373, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1366, "end": 1373, "ctxt": 0 }, "params": [], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1369, "end": 1373, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1372, "end": 1373, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1372, "end": 1373, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1415, "end": 1517, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1425, "end": 1428, "ctxt": 0 }, "value": "I12", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1428, "end": 1431, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1429, "end": 1430, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1429, "end": 1430, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1440, "end": 1447, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1440, "end": 1444, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 1444, "end": 1447, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1445, "end": 1446, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1445, "end": 1446, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1448, "end": 1517, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1458, "end": 1482, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1458, "end": 1460, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1460, "end": 1481, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1462, "end": 1481, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1463, "end": 1468, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1465, "end": 1468, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1467, "end": 1468, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1467, "end": 1468, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 1470, "end": 1475, "ctxt": 0 }, "value": "y", "optional": true, "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": 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 } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1523, "end": 1621, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1533, "end": 1536, "ctxt": 0 }, "value": "I13", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1536, "end": 1539, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1537, "end": 1538, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1537, "end": 1538, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1548, "end": 1555, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1548, "end": 1552, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 1552, "end": 1555, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1553, "end": 1554, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1553, "end": 1554, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1556, "end": 1621, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1566, "end": 1582, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1566, "end": 1568, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1568, "end": 1581, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1570, "end": 1581, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1571, "end": 1575, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1572, "end": 1575, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1574, "end": 1575, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1574, "end": 1575, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1577, "end": 1581, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1580, "end": 1581, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1580, "end": 1581, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1627, "end": 1728, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1637, "end": 1640, "ctxt": 0 }, "value": "I14", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1640, "end": 1643, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1641, "end": 1642, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1641, "end": 1642, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1652, "end": 1659, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1652, "end": 1656, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 1656, "end": 1659, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1657, "end": 1658, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1657, "end": 1658, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1660, "end": 1728, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1670, "end": 1692, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1670, "end": 1672, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1672, "end": 1691, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1674, "end": 1691, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1675, "end": 1679, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1676, "end": 1679, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1678, "end": 1679, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1678, "end": 1679, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 1681, "end": 1685, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1682, "end": 1685, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1684, "end": 1685, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1684, "end": 1685, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1687, "end": 1691, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1690, "end": 1691, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1690, "end": 1691, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1735, "end": 1825, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1745, "end": 1748, "ctxt": 0 }, "value": "I15", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1748, "end": 1751, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1749, "end": 1750, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1749, "end": 1750, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1760, "end": 1767, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1760, "end": 1764, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 1764, "end": 1767, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1765, "end": 1766, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1765, "end": 1766, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1768, "end": 1825, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1778, "end": 1790, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1778, "end": 1780, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1780, "end": 1789, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1782, "end": 1789, "ctxt": 0 }, "params": [], "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": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1831, "end": 1933, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1841, "end": 1844, "ctxt": 0 }, "value": "I16", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1844, "end": 1847, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1845, "end": 1846, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1845, "end": 1846, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1856, "end": 1863, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1856, "end": 1860, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 1860, "end": 1863, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1861, "end": 1862, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1861, "end": 1862, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1864, "end": 1933, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1874, "end": 1898, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1874, "end": 1876, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1876, "end": 1897, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1878, "end": 1897, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1879, "end": 1884, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1881, "end": 1884, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1883, "end": 1884, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1883, "end": 1884, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 1886, "end": 1891, "ctxt": 0 }, "value": "y", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1888, "end": 1891, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1890, "end": 1891, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1890, "end": 1891, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1893, "end": 1897, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1896, "end": 1897, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1896, "end": 1897, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1939, "end": 2036, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1949, "end": 1952, "ctxt": 0 }, "value": "I17", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1952, "end": 1955, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1953, "end": 1954, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1953, "end": 1954, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1964, "end": 1971, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1964, "end": 1968, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 1968, "end": 1971, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1969, "end": 1970, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1969, "end": 1970, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1972, "end": 2036, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1982, "end": 1998, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1982, "end": 1984, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1984, "end": 1997, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1986, "end": 1997, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1987, "end": 1991, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1988, "end": 1991, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1990, "end": 1991, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1990, "end": 1991, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1993, "end": 1997, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1996, "end": 1997, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1996, "end": 1997, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2042, "end": 2143, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2052, "end": 2055, "ctxt": 0 }, "value": "I18", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2055, "end": 2058, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2056, "end": 2057, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2056, "end": 2057, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2067, "end": 2074, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2067, "end": 2071, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 2071, "end": 2074, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2072, "end": 2073, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2072, "end": 2073, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2075, "end": 2143, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2085, "end": 2107, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2085, "end": 2087, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2087, "end": 2106, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2089, "end": 2106, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2090, "end": 2094, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2091, "end": 2094, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2093, "end": 2094, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2093, "end": 2094, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 2096, "end": 2100, "ctxt": 0 }, "value": "y", "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": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 2147, "end": 3657, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 2154, "end": 2178, "ctxt": 0 }, "value": "GenericSignaturesInvalid", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 2179, "end": 3657, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 2217, "end": 2391, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2227, "end": 2232, "ctxt": 0 }, "value": "Base2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 2233, "end": 2391, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2243, "end": 2257, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2243, "end": 2244, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2244, "end": 2256, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2246, "end": 2256, "ctxt": 0 }, "params": [], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2246, "end": 2249, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2247, "end": 2248, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2247, "end": 2248, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2252, "end": 2256, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2255, "end": 2256, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2255, "end": 2256, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2266, "end": 2286, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2266, "end": 2268, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2268, "end": 2285, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2270, "end": 2285, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2274, "end": 2279, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2276, "end": 2279, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2278, "end": 2279, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2278, "end": 2279, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2270, "end": 2273, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2271, "end": 2272, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2271, "end": 2272, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2281, "end": 2285, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2284, "end": 2285, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2284, "end": 2285, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2295, "end": 2314, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2295, "end": 2297, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2297, "end": 2313, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2299, "end": 2313, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2303, "end": 2307, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2304, "end": 2307, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2306, "end": 2307, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2306, "end": 2307, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2299, "end": 2302, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2300, "end": 2301, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2300, "end": 2301, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2309, "end": 2313, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2312, "end": 2313, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2312, "end": 2313, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2323, "end": 2349, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2323, "end": 2325, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2325, "end": 2348, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2327, "end": 2348, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2331, "end": 2335, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2332, "end": 2335, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2334, "end": 2335, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2334, "end": 2335, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 2337, "end": 2342, "ctxt": 0 }, "value": "y", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2339, "end": 2342, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2341, "end": 2342, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2341, "end": 2342, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2327, "end": 2330, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2328, "end": 2329, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2328, "end": 2329, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2344, "end": 2348, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2347, "end": 2348, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2347, "end": 2348, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2358, "end": 2385, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2358, "end": 2360, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2360, "end": 2384, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2362, "end": 2384, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2366, "end": 2371, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2368, "end": 2371, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2370, "end": 2371, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2370, "end": 2371, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 2373, "end": 2378, "ctxt": 0 }, "value": "y", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2375, "end": 2378, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2377, "end": 2378, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2377, "end": 2378, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2362, "end": 2365, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2363, "end": 2364, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2363, "end": 2364, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2380, "end": 2384, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2383, "end": 2384, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2383, "end": 2384, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2397, "end": 2455, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2407, "end": 2409, "ctxt": 0 }, "value": "I1", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2409, "end": 2412, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2410, "end": 2411, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2410, "end": 2411, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2421, "end": 2426, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2421, "end": 2426, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2427, "end": 2455, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2437, "end": 2448, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2437, "end": 2438, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2438, "end": 2447, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2440, "end": 2447, "ctxt": 0 }, "params": [], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2443, "end": 2447, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2446, "end": 2447, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2446, "end": 2447, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2461, "end": 2523, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2471, "end": 2473, "ctxt": 0 }, "value": "I2", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2473, "end": 2476, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2474, "end": 2475, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2474, "end": 2475, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2485, "end": 2490, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2485, "end": 2490, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2491, "end": 2523, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2501, "end": 2517, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2501, "end": 2502, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2502, "end": 2516, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2504, "end": 2516, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2505, "end": 2510, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2507, "end": 2510, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2509, "end": 2510, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2509, "end": 2510, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2512, "end": 2516, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2515, "end": 2516, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2515, "end": 2516, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2529, "end": 2591, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2539, "end": 2541, "ctxt": 0 }, "value": "I3", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2541, "end": 2544, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2542, "end": 2543, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2542, "end": 2543, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2553, "end": 2558, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2553, "end": 2558, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2559, "end": 2591, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2569, "end": 2584, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2569, "end": 2570, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2570, "end": 2583, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2572, "end": 2583, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2573, "end": 2577, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2574, "end": 2577, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2576, "end": 2577, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2576, "end": 2577, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2579, "end": 2583, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2582, "end": 2583, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2582, "end": 2583, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2598, "end": 2657, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2608, "end": 2610, "ctxt": 0 }, "value": "I4", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2610, "end": 2613, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2611, "end": 2612, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2611, "end": 2612, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2622, "end": 2627, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2622, "end": 2627, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2628, "end": 2657, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2638, "end": 2650, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2638, "end": 2640, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2640, "end": 2649, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2642, "end": 2649, "ctxt": 0 }, "params": [], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2645, "end": 2649, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2648, "end": 2649, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2648, "end": 2649, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2663, "end": 2725, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2673, "end": 2675, "ctxt": 0 }, "value": "I5", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2675, "end": 2678, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2676, "end": 2677, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2676, "end": 2677, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2687, "end": 2692, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2687, "end": 2692, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2693, "end": 2725, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2703, "end": 2719, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2703, "end": 2705, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2705, "end": 2719, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2707, "end": 2719, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2708, "end": 2713, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2710, "end": 2713, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2712, "end": 2713, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2712, "end": 2713, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2715, "end": 2719, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2718, "end": 2719, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2718, "end": 2719, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2731, "end": 2793, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2741, "end": 2743, "ctxt": 0 }, "value": "I6", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2743, "end": 2746, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2744, "end": 2745, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2744, "end": 2745, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2755, "end": 2760, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2755, "end": 2760, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2761, "end": 2793, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2771, "end": 2787, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2771, "end": 2773, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2773, "end": 2786, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2775, "end": 2786, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2776, "end": 2780, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2777, "end": 2780, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2779, "end": 2780, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2779, "end": 2780, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2782, "end": 2786, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2785, "end": 2786, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2785, "end": 2786, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2800, "end": 2858, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2810, "end": 2812, "ctxt": 0 }, "value": "I7", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2812, "end": 2815, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2813, "end": 2814, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2813, "end": 2814, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2824, "end": 2829, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2824, "end": 2829, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2830, "end": 2858, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2840, "end": 2852, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2840, "end": 2842, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2842, "end": 2851, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2844, "end": 2851, "ctxt": 0 }, "params": [], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2847, "end": 2851, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2850, "end": 2851, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2850, "end": 2851, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2864, "end": 2928, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2874, "end": 2876, "ctxt": 0 }, "value": "I8", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2876, "end": 2879, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2877, "end": 2878, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2877, "end": 2878, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2888, "end": 2893, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2888, "end": 2893, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2894, "end": 2928, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2904, "end": 2921, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2904, "end": 2906, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2906, "end": 2920, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2908, "end": 2920, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2909, "end": 2914, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2911, "end": 2914, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2913, "end": 2914, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2913, "end": 2914, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2916, "end": 2920, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2919, "end": 2920, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2919, "end": 2920, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2934, "end": 2997, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2944, "end": 2946, "ctxt": 0 }, "value": "I9", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2946, "end": 2949, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2947, "end": 2948, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2947, "end": 2948, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 2958, "end": 2963, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2958, "end": 2963, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 2964, "end": 2997, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2974, "end": 2990, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2974, "end": 2976, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2976, "end": 2989, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2978, "end": 2989, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2979, "end": 2983, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2980, "end": 2983, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2982, "end": 2983, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2982, "end": 2983, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2985, "end": 2989, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2988, "end": 2989, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2988, "end": 2989, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3003, "end": 3074, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3013, "end": 3016, "ctxt": 0 }, "value": "I10", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3016, "end": 3019, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3017, "end": 3018, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3017, "end": 3018, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 3028, "end": 3033, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3028, "end": 3033, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 3034, "end": 3074, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3044, "end": 3066, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3044, "end": 3046, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3046, "end": 3065, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3048, "end": 3065, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3049, "end": 3053, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3050, "end": 3053, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3052, "end": 3053, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3052, "end": 3053, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 3055, "end": 3059, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3056, "end": 3059, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3058, "end": 3059, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3058, "end": 3059, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3061, "end": 3065, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3064, "end": 3065, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3064, "end": 3065, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3081, "end": 3141, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3091, "end": 3094, "ctxt": 0 }, "value": "I11", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3094, "end": 3097, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3095, "end": 3096, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3095, "end": 3096, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 3106, "end": 3111, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3106, "end": 3111, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 3112, "end": 3141, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3122, "end": 3134, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3122, "end": 3124, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3124, "end": 3133, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3126, "end": 3133, "ctxt": 0 }, "params": [], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3129, "end": 3133, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3132, "end": 3133, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3132, "end": 3133, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3147, "end": 3219, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3157, "end": 3160, "ctxt": 0 }, "value": "I12", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3160, "end": 3163, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3161, "end": 3162, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3161, "end": 3162, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 3172, "end": 3177, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3172, "end": 3177, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 3178, "end": 3219, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3188, "end": 3212, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3188, "end": 3190, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3190, "end": 3211, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3192, "end": 3211, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3193, "end": 3198, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3195, "end": 3198, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3197, "end": 3198, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3197, "end": 3198, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 3200, "end": 3205, "ctxt": 0 }, "value": "y", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3202, "end": 3205, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3204, "end": 3205, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3204, "end": 3205, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3207, "end": 3211, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3210, "end": 3211, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3210, "end": 3211, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3225, "end": 3289, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3235, "end": 3238, "ctxt": 0 }, "value": "I13", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3238, "end": 3241, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3239, "end": 3240, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3239, "end": 3240, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 3250, "end": 3255, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3250, "end": 3255, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 3256, "end": 3289, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3266, "end": 3282, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3266, "end": 3268, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3268, "end": 3281, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3270, "end": 3281, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3271, "end": 3275, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3272, "end": 3275, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3274, "end": 3275, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3274, "end": 3275, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3277, "end": 3281, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3280, "end": 3281, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3280, "end": 3281, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3295, "end": 3365, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3305, "end": 3308, "ctxt": 0 }, "value": "I14", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3308, "end": 3311, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3309, "end": 3310, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3309, "end": 3310, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 3320, "end": 3325, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3320, "end": 3325, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 3326, "end": 3365, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3336, "end": 3358, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3336, "end": 3338, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3338, "end": 3357, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3340, "end": 3357, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3341, "end": 3345, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3342, "end": 3345, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3344, "end": 3345, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3344, "end": 3345, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 3347, "end": 3351, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3348, "end": 3351, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3350, "end": 3351, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3350, "end": 3351, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3353, "end": 3357, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3356, "end": 3357, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3356, "end": 3357, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3372, "end": 3432, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3382, "end": 3385, "ctxt": 0 }, "value": "I15", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3385, "end": 3388, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3386, "end": 3387, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3386, "end": 3387, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 3397, "end": 3402, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3397, "end": 3402, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 3403, "end": 3432, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3413, "end": 3425, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3413, "end": 3415, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3415, "end": 3424, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3417, "end": 3424, "ctxt": 0 }, "params": [], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3420, "end": 3424, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3423, "end": 3424, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3423, "end": 3424, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3438, "end": 3510, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3448, "end": 3451, "ctxt": 0 }, "value": "I16", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3451, "end": 3454, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3452, "end": 3453, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3452, "end": 3453, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 3463, "end": 3468, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3463, "end": 3468, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 3469, "end": 3510, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3479, "end": 3503, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3479, "end": 3481, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3481, "end": 3502, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3483, "end": 3502, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3484, "end": 3489, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3486, "end": 3489, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3488, "end": 3489, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3488, "end": 3489, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 3491, "end": 3496, "ctxt": 0 }, "value": "y", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3493, "end": 3496, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3495, "end": 3496, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3495, "end": 3496, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3498, "end": 3502, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3501, "end": 3502, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3501, "end": 3502, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3516, "end": 3579, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3526, "end": 3529, "ctxt": 0 }, "value": "I17", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3529, "end": 3532, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3530, "end": 3531, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3530, "end": 3531, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 3541, "end": 3546, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3541, "end": 3546, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 3547, "end": 3579, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3557, "end": 3573, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3557, "end": 3559, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3559, "end": 3572, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3561, "end": 3572, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3562, "end": 3566, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3563, "end": 3566, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3565, "end": 3566, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3565, "end": 3566, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3568, "end": 3572, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3571, "end": 3572, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3571, "end": 3572, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3585, "end": 3655, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3595, "end": 3598, "ctxt": 0 }, "value": "I18", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3598, "end": 3601, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3599, "end": 3600, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3599, "end": 3600, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 3610, "end": 3615, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3610, "end": 3615, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 3616, "end": 3655, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3626, "end": 3648, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3626, "end": 3628, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3628, "end": 3647, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3630, "end": 3647, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3631, "end": 3635, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3632, "end": 3635, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3634, "end": 3635, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3634, "end": 3635, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 3637, "end": 3641, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3638, "end": 3641, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3640, "end": 3641, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3640, "end": 3641, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3643, "end": 3647, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3646, "end": 3647, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3646, "end": 3647, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 3659, "end": 6075, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 3666, "end": 3688, "ctxt": 0 }, "value": "GenericSignaturesValid", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 3689, "end": 6075, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 3696, "end": 3870, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3706, "end": 3711, "ctxt": 0 }, "value": "Base2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 3712, "end": 3870, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3722, "end": 3736, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3722, "end": 3723, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3723, "end": 3735, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3725, "end": 3735, "ctxt": 0 }, "params": [], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3725, "end": 3728, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3726, "end": 3727, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3726, "end": 3727, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3731, "end": 3735, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3734, "end": 3735, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3734, "end": 3735, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3745, "end": 3765, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3745, "end": 3747, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3747, "end": 3764, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3749, "end": 3764, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3753, "end": 3758, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3755, "end": 3758, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3757, "end": 3758, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3757, "end": 3758, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3749, "end": 3752, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3750, "end": 3751, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3750, "end": 3751, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3760, "end": 3764, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3763, "end": 3764, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3763, "end": 3764, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3774, "end": 3793, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3774, "end": 3776, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3776, "end": 3792, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3778, "end": 3792, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3782, "end": 3786, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3783, "end": 3786, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3785, "end": 3786, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3785, "end": 3786, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3778, "end": 3781, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3779, "end": 3780, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3779, "end": 3780, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3788, "end": 3792, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3791, "end": 3792, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3791, "end": 3792, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3802, "end": 3828, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3802, "end": 3804, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3804, "end": 3827, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3806, "end": 3827, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3810, "end": 3814, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3811, "end": 3814, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3813, "end": 3814, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3813, "end": 3814, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 3816, "end": 3821, "ctxt": 0 }, "value": "y", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3818, "end": 3821, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3820, "end": 3821, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3820, "end": 3821, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3806, "end": 3809, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3807, "end": 3808, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3807, "end": 3808, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3823, "end": 3827, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3826, "end": 3827, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3826, "end": 3827, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3837, "end": 3864, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3837, "end": 3839, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3839, "end": 3863, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3841, "end": 3863, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3845, "end": 3850, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3847, "end": 3850, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3849, "end": 3850, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3849, "end": 3850, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 3852, "end": 3857, "ctxt": 0 }, "value": "y", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3854, "end": 3857, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3856, "end": 3857, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3856, "end": 3857, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3841, "end": 3844, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3842, "end": 3843, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3842, "end": 3843, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3859, "end": 3863, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3862, "end": 3863, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3862, "end": 3863, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3894, "end": 3989, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3904, "end": 3906, "ctxt": 0 }, "value": "I1", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 3915, "end": 3920, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3915, "end": 3920, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 3921, "end": 3989, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3931, "end": 3945, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3931, "end": 3932, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3932, "end": 3944, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3934, "end": 3944, "ctxt": 0 }, "params": [], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3934, "end": 3937, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3935, "end": 3936, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3935, "end": 3936, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3940, "end": 3944, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3943, "end": 3944, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3943, "end": 3944, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3995, "end": 4152, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4005, "end": 4007, "ctxt": 0 }, "value": "I2", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 4016, "end": 4021, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 4016, "end": 4021, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 4022, "end": 4152, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 4032, "end": 4051, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 4032, "end": 4033, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4033, "end": 4050, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4035, "end": 4050, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4039, "end": 4044, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4041, "end": 4044, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4043, "end": 4044, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4043, "end": 4044, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4035, "end": 4038, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4036, "end": 4037, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4036, "end": 4037, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4046, "end": 4050, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4049, "end": 4050, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4049, "end": 4050, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 4158, "end": 4314, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4168, "end": 4170, "ctxt": 0 }, "value": "I3", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 4179, "end": 4184, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 4179, "end": 4184, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 4185, "end": 4314, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 4195, "end": 4213, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 4195, "end": 4196, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4196, "end": 4212, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4198, "end": 4212, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4202, "end": 4206, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4203, "end": 4206, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4205, "end": 4206, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4205, "end": 4206, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4198, "end": 4201, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4199, "end": 4200, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4199, "end": 4200, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4208, "end": 4212, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4211, "end": 4212, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4211, "end": 4212, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 4321, "end": 4474, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4331, "end": 4333, "ctxt": 0 }, "value": "I4", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 4342, "end": 4347, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 4342, "end": 4347, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 4348, "end": 4474, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 4358, "end": 4373, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 4358, "end": 4360, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4360, "end": 4372, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4362, "end": 4372, "ctxt": 0 }, "params": [], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4362, "end": 4365, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4363, "end": 4364, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4363, "end": 4364, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4368, "end": 4372, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4371, "end": 4372, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4371, "end": 4372, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 4480, "end": 4560, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4490, "end": 4492, "ctxt": 0 }, "value": "I5", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 4501, "end": 4506, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 4501, "end": 4506, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 4507, "end": 4560, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 4517, "end": 4537, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 4517, "end": 4519, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4519, "end": 4536, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4521, "end": 4536, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4525, "end": 4530, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4527, "end": 4530, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4529, "end": 4530, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4529, "end": 4530, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4521, "end": 4524, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4522, "end": 4523, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4522, "end": 4523, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4532, "end": 4536, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4535, "end": 4536, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4535, "end": 4536, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 4566, "end": 4657, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4576, "end": 4578, "ctxt": 0 }, "value": "I6", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 4587, "end": 4592, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 4587, "end": 4592, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 4593, "end": 4657, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 4603, "end": 4622, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 4603, "end": 4605, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4605, "end": 4621, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4607, "end": 4621, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4611, "end": 4615, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4612, "end": 4615, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4614, "end": 4615, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4614, "end": 4615, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4607, "end": 4610, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4608, "end": 4609, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4608, "end": 4609, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4617, "end": 4621, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4620, "end": 4621, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4620, "end": 4621, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 4664, "end": 4794, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4674, "end": 4676, "ctxt": 0 }, "value": "I7", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 4685, "end": 4690, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 4685, "end": 4690, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 4691, "end": 4794, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 4701, "end": 4716, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 4701, "end": 4703, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4703, "end": 4715, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4705, "end": 4715, "ctxt": 0 }, "params": [], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4705, "end": 4708, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4706, "end": 4707, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4706, "end": 4707, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4711, "end": 4715, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4714, "end": 4715, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4714, "end": 4715, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 4800, "end": 4892, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4810, "end": 4812, "ctxt": 0 }, "value": "I8", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 4821, "end": 4826, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 4821, "end": 4826, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 4827, "end": 4892, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 4837, "end": 4857, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 4837, "end": 4839, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4839, "end": 4856, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4841, "end": 4856, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4845, "end": 4850, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4847, "end": 4850, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4849, "end": 4850, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4849, "end": 4850, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4841, "end": 4844, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4842, "end": 4843, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4842, "end": 4843, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4852, "end": 4856, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4855, "end": 4856, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4855, "end": 4856, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 4898, "end": 5009, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4908, "end": 4910, "ctxt": 0 }, "value": "I9", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 4919, "end": 4924, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 4919, "end": 4924, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 4925, "end": 5009, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 4935, "end": 4954, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 4935, "end": 4937, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4937, "end": 4953, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 4939, "end": 4953, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4943, "end": 4947, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4944, "end": 4947, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4946, "end": 4947, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4946, "end": 4947, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4939, "end": 4942, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4940, "end": 4941, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4940, "end": 4941, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4949, "end": 4953, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4952, "end": 4953, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4952, "end": 4953, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 5015, "end": 5120, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5025, "end": 5028, "ctxt": 0 }, "value": "I10", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 5037, "end": 5042, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 5037, "end": 5042, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 5043, "end": 5120, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 5053, "end": 5078, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 5053, "end": 5055, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5055, "end": 5077, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 5057, "end": 5077, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 5061, "end": 5065, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5062, "end": 5065, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5064, "end": 5065, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5064, "end": 5065, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 5067, "end": 5071, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5068, "end": 5071, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5070, "end": 5071, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5070, "end": 5071, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 5057, "end": 5060, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 5058, "end": 5059, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5058, "end": 5059, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5073, "end": 5077, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5076, "end": 5077, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5076, "end": 5077, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 5127, "end": 5281, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5137, "end": 5140, "ctxt": 0 }, "value": "I11", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 5149, "end": 5154, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 5149, "end": 5154, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 5155, "end": 5281, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 5165, "end": 5180, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 5165, "end": 5167, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5167, "end": 5179, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 5169, "end": 5179, "ctxt": 0 }, "params": [], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 5169, "end": 5172, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 5170, "end": 5171, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5170, "end": 5171, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5175, "end": 5179, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5178, "end": 5179, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5178, "end": 5179, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 5287, "end": 5387, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5297, "end": 5300, "ctxt": 0 }, "value": "I12", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 5309, "end": 5314, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 5309, "end": 5314, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 5315, "end": 5387, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 5325, "end": 5352, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 5325, "end": 5327, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5327, "end": 5351, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 5329, "end": 5351, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 5333, "end": 5338, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5335, "end": 5338, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5337, "end": 5338, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5337, "end": 5338, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 5340, "end": 5345, "ctxt": 0 }, "value": "y", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5342, "end": 5345, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5344, "end": 5345, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5344, "end": 5345, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 5329, "end": 5332, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 5330, "end": 5331, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5330, "end": 5331, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5347, "end": 5351, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5350, "end": 5351, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5350, "end": 5351, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 5393, "end": 5489, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5403, "end": 5406, "ctxt": 0 }, "value": "I13", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 5415, "end": 5420, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 5415, "end": 5420, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 5421, "end": 5489, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 5431, "end": 5450, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 5431, "end": 5433, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5433, "end": 5449, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 5435, "end": 5449, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 5439, "end": 5443, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5440, "end": 5443, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5442, "end": 5443, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5442, "end": 5443, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 5435, "end": 5438, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 5436, "end": 5437, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5436, "end": 5437, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5445, "end": 5449, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5448, "end": 5449, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5448, "end": 5449, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 5495, "end": 5600, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5505, "end": 5508, "ctxt": 0 }, "value": "I14", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 5517, "end": 5522, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 5517, "end": 5522, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 5523, "end": 5600, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 5533, "end": 5558, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 5533, "end": 5535, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5535, "end": 5557, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 5537, "end": 5557, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 5541, "end": 5545, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5542, "end": 5545, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5544, "end": 5545, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5544, "end": 5545, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 5547, "end": 5551, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5548, "end": 5551, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5550, "end": 5551, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5550, "end": 5551, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 5537, "end": 5540, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 5538, "end": 5539, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5538, "end": 5539, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5553, "end": 5557, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5556, "end": 5557, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5556, "end": 5557, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 5607, "end": 5761, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5617, "end": 5620, "ctxt": 0 }, "value": "I15", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 5629, "end": 5634, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 5629, "end": 5634, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 5635, "end": 5761, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 5645, "end": 5660, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 5645, "end": 5647, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5647, "end": 5659, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 5649, "end": 5659, "ctxt": 0 }, "params": [], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 5649, "end": 5652, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 5650, "end": 5651, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5650, "end": 5651, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5655, "end": 5659, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5658, "end": 5659, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5658, "end": 5659, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 5767, "end": 5867, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5777, "end": 5780, "ctxt": 0 }, "value": "I16", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 5789, "end": 5794, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 5789, "end": 5794, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 5795, "end": 5867, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 5805, "end": 5832, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 5805, "end": 5807, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5807, "end": 5831, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 5809, "end": 5831, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 5813, "end": 5818, "ctxt": 0 }, "value": "x", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5815, "end": 5818, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5817, "end": 5818, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5817, "end": 5818, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 5820, "end": 5825, "ctxt": 0 }, "value": "y", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5822, "end": 5825, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5824, "end": 5825, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5824, "end": 5825, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 5809, "end": 5812, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 5810, "end": 5811, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5810, "end": 5811, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5827, "end": 5831, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5830, "end": 5831, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5830, "end": 5831, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 5873, "end": 5968, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5883, "end": 5886, "ctxt": 0 }, "value": "I17", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 5895, "end": 5900, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 5895, "end": 5900, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 5901, "end": 5968, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 5911, "end": 5930, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 5911, "end": 5913, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5913, "end": 5929, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 5915, "end": 5929, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 5919, "end": 5923, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5920, "end": 5923, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5922, "end": 5923, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5922, "end": 5923, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 5915, "end": 5918, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 5916, "end": 5917, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5916, "end": 5917, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5925, "end": 5929, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5928, "end": 5929, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5928, "end": 5929, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 5974, "end": 6073, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5984, "end": 5987, "ctxt": 0 }, "value": "I18", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 5996, "end": 6001, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 5996, "end": 6001, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 6002, "end": 6073, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 6012, "end": 6037, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 6012, "end": 6014, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6014, "end": 6036, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 6016, "end": 6036, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 6020, "end": 6024, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6021, "end": 6024, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 6023, "end": 6024, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6023, "end": 6024, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 6026, "end": 6030, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6027, "end": 6030, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 6029, "end": 6030, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6029, "end": 6030, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 6016, "end": 6019, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 6017, "end": 6018, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 6017, "end": 6018, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6032, "end": 6036, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 6035, "end": 6036, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6035, "end": 6036, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } } ] } } ], "interpreter": null }