{ "type": "Script", "span": { "start": 118, "end": 1912, "ctxt": 0 }, "body": [ { "type": "TsModuleDeclaration", "span": { "start": 118, "end": 895, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 125, "end": 138, "ctxt": 0 }, "value": "CallSignature", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 139, "end": 895, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 145, "end": 249, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 155, "end": 159, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 160, "end": 249, "ctxt": 0 }, "body": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 190, "end": 205, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 191, "end": 197, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 192, "end": 197, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 194, "end": 197, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 194, "end": 197, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 198, "end": 204, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 200, "end": 204, "ctxt": 0 }, "kind": "void" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 214, "end": 243, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 215, "end": 224, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 216, "end": 224, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 218, "end": 224, "ctxt": 0 }, "kind": "string" } } }, { "type": "Identifier", "span": { "start": 226, "end": 235, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 227, "end": 235, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 229, "end": 235, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 236, "end": 242, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 238, "end": 242, "ctxt": 0 }, "kind": "void" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 266, "end": 502, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 276, "end": 277, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 286, "end": 290, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 286, "end": 290, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 291, "end": 502, "ctxt": 0 }, "body": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 316, "end": 333, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 317, "end": 323, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 318, "end": 323, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 320, "end": 323, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 320, "end": 323, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 324, "end": 332, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 326, "end": 332, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 374, "end": 405, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 375, "end": 384, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 376, "end": 384, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 378, "end": 384, "ctxt": 0 }, "kind": "string" } } }, { "type": "Identifier", "span": { "start": 386, "end": 395, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 387, "end": 395, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 389, "end": 395, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 396, "end": 404, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 398, "end": 404, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 446, "end": 464, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 450, "end": 454, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 451, "end": 454, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 453, "end": 454, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 453, "end": 454, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 455, "end": 463, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 457, "end": 463, "ctxt": 0 }, "kind": "string" } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 446, "end": 449, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 447, "end": 448, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 447, "end": 448, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] } } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 508, "end": 606, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 518, "end": 523, "ctxt": 0 }, "value": "Base2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 524, "end": 606, "ctxt": 0 }, "body": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 554, "end": 571, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 555, "end": 561, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 556, "end": 561, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 558, "end": 561, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 558, "end": 561, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 562, "end": 570, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 564, "end": 570, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 580, "end": 600, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 581, "end": 590, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 582, "end": 590, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 584, "end": 590, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 591, "end": 599, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 593, "end": 599, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 623, "end": 767, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 633, "end": 635, "ctxt": 0 }, "value": "I2", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 644, "end": 649, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 644, "end": 649, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 650, "end": 767, "ctxt": 0 }, "body": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 675, "end": 692, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 676, "end": 682, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 677, "end": 682, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 679, "end": 682, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 679, "end": 682, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 683, "end": 691, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 685, "end": 691, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 701, "end": 721, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 702, "end": 711, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 703, "end": 711, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 705, "end": 711, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 712, "end": 720, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 714, "end": 720, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 784, "end": 893, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 794, "end": 796, "ctxt": 0 }, "value": "I3", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 805, "end": 810, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 805, "end": 810, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 811, "end": 893, "ctxt": 0 }, "body": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 836, "end": 854, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 840, "end": 844, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 841, "end": 844, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 843, "end": 844, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 843, "end": 844, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 845, "end": 853, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 847, "end": 853, "ctxt": 0 }, "kind": "string" } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 836, "end": 839, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 837, "end": 838, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 837, "end": 838, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] } } ] } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 897, "end": 1912, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 904, "end": 927, "ctxt": 0 }, "value": "MemberWithCallSignature", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 928, "end": 1912, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 934, "end": 1194, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 944, "end": 948, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 949, "end": 1194, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 979, "end": 1052, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 979, "end": 980, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 980, "end": 1052, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 982, "end": 1052, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 996, "end": 1011, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 997, "end": 1003, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 998, "end": 1003, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1000, "end": 1003, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1000, "end": 1003, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1004, "end": 1010, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1006, "end": 1010, "ctxt": 0 }, "kind": "void" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1024, "end": 1042, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1025, "end": 1034, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1026, "end": 1034, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1028, "end": 1034, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1035, "end": 1041, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1037, "end": 1041, "ctxt": 0 }, "kind": "void" } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1061, "end": 1157, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1061, "end": 1063, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1063, "end": 1157, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1065, "end": 1157, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1079, "end": 1105, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1080, "end": 1086, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1081, "end": 1086, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1083, "end": 1086, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1083, "end": 1086, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } }, { "type": "Identifier", "span": { "start": 1088, "end": 1097, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1089, "end": 1097, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1091, "end": 1097, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1098, "end": 1104, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1100, "end": 1104, "ctxt": 0 }, "kind": "void" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1118, "end": 1147, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1119, "end": 1128, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1120, "end": 1128, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1122, "end": 1128, "ctxt": 0 }, "kind": "string" } } }, { "type": "Identifier", "span": { "start": 1130, "end": 1139, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1131, "end": 1139, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1133, "end": 1139, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1140, "end": 1146, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1142, "end": 1146, "ctxt": 0 }, "kind": "void" } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1166, "end": 1188, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1166, "end": 1168, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1168, "end": 1187, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1170, "end": 1187, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1174, "end": 1178, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1175, "end": 1178, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1177, "end": 1178, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1177, "end": 1178, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1170, "end": 1173, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1171, "end": 1172, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1171, "end": 1172, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1180, "end": 1187, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1183, "end": 1187, "ctxt": 0 }, "kind": "void" } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1211, "end": 1468, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1221, "end": 1222, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1231, "end": 1235, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1231, "end": 1235, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1236, "end": 1468, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1261, "end": 1286, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1261, "end": 1262, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1262, "end": 1285, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1264, "end": 1285, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1265, "end": 1274, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1266, "end": 1274, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1268, "end": 1274, "ctxt": 0 }, "kind": "string" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1276, "end": 1285, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1279, "end": 1285, "ctxt": 0 }, "kind": "number" } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1327, "end": 1365, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1327, "end": 1329, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1329, "end": 1364, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1331, "end": 1364, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1332, "end": 1341, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1333, "end": 1341, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1335, "end": 1341, "ctxt": 0 }, "kind": "string" } } }, { "type": "Identifier", "span": { "start": 1343, "end": 1352, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1344, "end": 1352, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1346, "end": 1352, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1354, "end": 1364, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1357, "end": 1364, "ctxt": 0 }, "kind": "boolean" } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1406, "end": 1430, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1406, "end": 1408, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1408, "end": 1429, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1410, "end": 1429, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1414, "end": 1418, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1415, "end": 1418, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1417, "end": 1418, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1417, "end": 1418, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1410, "end": 1413, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1411, "end": 1412, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1411, "end": 1412, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1420, "end": 1429, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1423, "end": 1429, "ctxt": 0 }, "kind": "string" } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1474, "end": 1631, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1484, "end": 1489, "ctxt": 0 }, "value": "Base2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 1490, "end": 1631, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1520, "end": 1597, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1520, "end": 1521, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1521, "end": 1597, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1523, "end": 1597, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1537, "end": 1554, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1538, "end": 1544, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1539, "end": 1544, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1541, "end": 1544, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1541, "end": 1544, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1545, "end": 1553, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1547, "end": 1553, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1567, "end": 1587, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1568, "end": 1577, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1569, "end": 1577, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1571, "end": 1577, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1578, "end": 1586, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1580, "end": 1586, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1606, "end": 1625, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1606, "end": 1608, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1608, "end": 1624, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1610, "end": 1624, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1614, "end": 1618, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1615, "end": 1618, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1617, "end": 1618, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1617, "end": 1618, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1610, "end": 1613, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1611, "end": 1612, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1611, "end": 1612, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1620, "end": 1624, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1623, "end": 1624, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1623, "end": 1624, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1648, "end": 1771, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1658, "end": 1660, "ctxt": 0 }, "value": "I2", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1669, "end": 1674, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1669, "end": 1674, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1675, "end": 1771, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1700, "end": 1725, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1700, "end": 1701, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1701, "end": 1724, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1703, "end": 1724, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1704, "end": 1713, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1705, "end": 1713, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1707, "end": 1713, "ctxt": 0 }, "kind": "string" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1715, "end": 1724, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1718, "end": 1724, "ctxt": 0 }, "kind": "string" } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1788, "end": 1910, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1798, "end": 1800, "ctxt": 0 }, "value": "I3", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1809, "end": 1814, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1809, "end": 1814, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1815, "end": 1910, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1840, "end": 1864, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1840, "end": 1842, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1842, "end": 1863, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1844, "end": 1863, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1848, "end": 1852, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1849, "end": 1852, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1851, "end": 1852, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1851, "end": 1852, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "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 }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1854, "end": 1863, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1857, "end": 1863, "ctxt": 0 }, "kind": "string" } } } }, "typeParams": null } ] } } ] } } ], "interpreter": null }