{ "type": "Script", "span": { "start": 119, "end": 2009, "ctxt": 0 }, "body": [ { "type": "TsModuleDeclaration", "span": { "start": 119, "end": 939, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 126, "end": 139, "ctxt": 0 }, "value": "CallSignature", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 140, "end": 939, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 146, "end": 258, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 156, "end": 160, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 161, "end": 258, "ctxt": 0 }, "body": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 191, "end": 210, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 196, "end": 202, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 197, "end": 202, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 199, "end": 202, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 199, "end": 202, "ctxt": 0 }, "value": "a", "raw": "'a'" } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 203, "end": 209, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 205, "end": 209, "ctxt": 0 }, "kind": "void" } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 219, "end": 252, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 224, "end": 233, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 225, "end": 233, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 227, "end": 233, "ctxt": 0 }, "kind": "string" } } }, { "type": "Identifier", "span": { "start": 235, "end": 244, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 236, "end": 244, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 238, "end": 244, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 245, "end": 251, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 247, "end": 251, "ctxt": 0 }, "kind": "void" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 275, "end": 523, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 285, "end": 286, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 295, "end": 299, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 295, "end": 299, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 300, "end": 523, "ctxt": 0 }, "body": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 325, "end": 346, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 330, "end": 336, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 331, "end": 336, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 333, "end": 336, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 333, "end": 336, "ctxt": 0 }, "value": "a", "raw": "'a'" } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 337, "end": 345, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 339, "end": 345, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 387, "end": 422, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 392, "end": 401, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 393, "end": 401, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 395, "end": 401, "ctxt": 0 }, "kind": "string" } } }, { "type": "Identifier", "span": { "start": 403, "end": 412, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 404, "end": 412, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 406, "end": 412, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 413, "end": 421, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 415, "end": 421, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 463, "end": 485, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 471, "end": 475, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 472, "end": 475, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 474, "end": 475, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 474, "end": 475, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 476, "end": 484, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 478, "end": 484, "ctxt": 0 }, "kind": "string" } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 467, "end": 470, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 468, "end": 469, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 468, "end": 469, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] } } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 532, "end": 638, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 542, "end": 547, "ctxt": 0 }, "value": "Base2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 548, "end": 638, "ctxt": 0 }, "body": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 578, "end": 599, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 583, "end": 589, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 584, "end": 589, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 586, "end": 589, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 586, "end": 589, "ctxt": 0 }, "value": "a", "raw": "'a'" } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 590, "end": 598, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 592, "end": 598, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 608, "end": 632, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 613, "end": 622, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 614, "end": 622, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 616, "end": 622, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 623, "end": 631, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 625, "end": 631, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 655, "end": 807, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 665, "end": 667, "ctxt": 0 }, "value": "I2", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 676, "end": 681, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 676, "end": 681, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 682, "end": 807, "ctxt": 0 }, "body": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 707, "end": 728, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 712, "end": 718, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 713, "end": 718, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 715, "end": 718, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 715, "end": 718, "ctxt": 0 }, "value": "a", "raw": "'a'" } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 719, "end": 727, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 721, "end": 727, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 737, "end": 761, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 742, "end": 751, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 743, "end": 751, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 745, "end": 751, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 752, "end": 760, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 754, "end": 760, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 824, "end": 937, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 834, "end": 836, "ctxt": 0 }, "value": "I3", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 845, "end": 850, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 845, "end": 850, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 851, "end": 937, "ctxt": 0 }, "body": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 876, "end": 898, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 884, "end": 888, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 885, "end": 888, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 887, "end": 888, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 887, "end": 888, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 889, "end": 897, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 891, "end": 897, "ctxt": 0 }, "kind": "string" } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 880, "end": 883, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 881, "end": 882, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 881, "end": 882, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] } } ] } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 941, "end": 2009, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 948, "end": 971, "ctxt": 0 }, "value": "MemberWithCallSignature", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 972, "end": 2009, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 978, "end": 1258, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 988, "end": 992, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 993, "end": 1258, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1023, "end": 1104, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1023, "end": 1024, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1024, "end": 1104, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1026, "end": 1104, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 1040, "end": 1059, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1045, "end": 1051, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1046, "end": 1051, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1048, "end": 1051, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1048, "end": 1051, "ctxt": 0 }, "value": "a", "raw": "'a'" } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1052, "end": 1058, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1054, "end": 1058, "ctxt": 0 }, "kind": "void" } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1072, "end": 1094, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1077, "end": 1086, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1078, "end": 1086, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1080, "end": 1086, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1087, "end": 1093, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1089, "end": 1093, "ctxt": 0 }, "kind": "void" } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1113, "end": 1217, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1113, "end": 1115, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1115, "end": 1217, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1117, "end": 1217, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 1131, "end": 1161, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1136, "end": 1142, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1137, "end": 1142, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1139, "end": 1142, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1139, "end": 1142, "ctxt": 0 }, "value": "a", "raw": "'a'" } } } }, { "type": "Identifier", "span": { "start": 1144, "end": 1153, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1145, "end": 1153, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1147, "end": 1153, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1154, "end": 1160, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1156, "end": 1160, "ctxt": 0 }, "kind": "void" } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1174, "end": 1207, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1179, "end": 1188, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1180, "end": 1188, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1182, "end": 1188, "ctxt": 0 }, "kind": "string" } } }, { "type": "Identifier", "span": { "start": 1190, "end": 1199, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1191, "end": 1199, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1193, "end": 1199, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1200, "end": 1206, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1202, "end": 1206, "ctxt": 0 }, "kind": "void" } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1226, "end": 1252, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1226, "end": 1228, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1228, "end": 1251, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1230, "end": 1251, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1238, "end": 1242, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1239, "end": 1242, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1241, "end": 1242, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1241, "end": 1242, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1234, "end": 1237, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1235, "end": 1236, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1235, "end": 1236, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1244, "end": 1251, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1247, "end": 1251, "ctxt": 0 }, "kind": "void" } }, "isAbstract": false } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1275, "end": 1545, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1285, "end": 1286, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1295, "end": 1299, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1295, "end": 1299, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1300, "end": 1545, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1325, "end": 1354, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1325, "end": 1326, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1326, "end": 1353, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1328, "end": 1353, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1333, "end": 1342, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1334, "end": 1342, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1336, "end": 1342, "ctxt": 0 }, "kind": "string" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1344, "end": 1353, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1347, "end": 1353, "ctxt": 0 }, "kind": "number" } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1395, "end": 1438, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1395, "end": 1397, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1397, "end": 1437, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1399, "end": 1437, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1405, "end": 1414, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1406, "end": 1414, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1408, "end": 1414, "ctxt": 0 }, "kind": "string" } } }, { "type": "Identifier", "span": { "start": 1416, "end": 1425, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1417, "end": 1425, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1419, "end": 1425, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1427, "end": 1437, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1430, "end": 1437, "ctxt": 0 }, "kind": "boolean" } }, "isAbstract": false } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1479, "end": 1507, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1479, "end": 1481, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1481, "end": 1506, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1483, "end": 1506, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1491, "end": 1495, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1492, "end": 1495, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1494, "end": 1495, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1494, "end": 1495, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1487, "end": 1490, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1488, "end": 1489, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1488, "end": 1489, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1497, "end": 1506, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1500, "end": 1506, "ctxt": 0 }, "kind": "string" } }, "isAbstract": false } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1551, "end": 1720, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1561, "end": 1566, "ctxt": 0 }, "value": "Base2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 1567, "end": 1720, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1597, "end": 1682, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1597, "end": 1598, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1598, "end": 1682, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1600, "end": 1682, "ctxt": 0 }, "members": [ { "type": "TsConstructSignatureDeclaration", "span": { "start": 1614, "end": 1635, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1619, "end": 1625, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1620, "end": 1625, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1622, "end": 1625, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1622, "end": 1625, "ctxt": 0 }, "value": "a", "raw": "'a'" } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1626, "end": 1634, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1628, "end": 1634, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsConstructSignatureDeclaration", "span": { "start": 1648, "end": 1672, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1653, "end": 1662, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1654, "end": 1662, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1656, "end": 1662, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1663, "end": 1671, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1665, "end": 1671, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1691, "end": 1714, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1691, "end": 1693, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1693, "end": 1713, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1695, "end": 1713, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1703, "end": 1707, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1704, "end": 1707, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1706, "end": 1707, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1706, "end": 1707, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1699, "end": 1702, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1700, "end": 1701, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1700, "end": 1701, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1709, "end": 1713, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1712, "end": 1713, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1712, "end": 1713, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1737, "end": 1864, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1747, "end": 1749, "ctxt": 0 }, "value": "I2", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1758, "end": 1763, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1758, "end": 1763, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1764, "end": 1864, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1789, "end": 1818, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1789, "end": 1790, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1790, "end": 1817, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1792, "end": 1817, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1797, "end": 1806, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1798, "end": 1806, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1800, "end": 1806, "ctxt": 0 }, "kind": "string" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1808, "end": 1817, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1811, "end": 1817, "ctxt": 0 }, "kind": "string" } }, "isAbstract": false } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1881, "end": 2007, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1891, "end": 1893, "ctxt": 0 }, "value": "I3", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1902, "end": 1907, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1902, "end": 1907, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1908, "end": 2007, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1933, "end": 1961, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1933, "end": 1935, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1935, "end": 1960, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 1937, "end": 1960, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1945, "end": 1949, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1946, "end": 1949, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1948, "end": 1949, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1948, "end": 1949, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1941, "end": 1944, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1942, "end": 1943, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1942, "end": 1943, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1951, "end": 1960, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1954, "end": 1960, "ctxt": 0 }, "kind": "string" } }, "isAbstract": false } }, "typeParams": null } ] } } ] } } ], "interpreter": null }