{ "type": "Script", "span": { "start": 0, "end": 1586, "ctxt": 0 }, "body": [ { "type": "TsModuleDeclaration", "span": { "start": 0, "end": 732, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 7, "end": 20, "ctxt": 0 }, "value": "CallSignature", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 21, "end": 732, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 27, "end": 134, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 37, "end": 41, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 42, "end": 134, "ctxt": 0 }, "body": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 72, "end": 90, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 73, "end": 82, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 74, "end": 82, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 76, "end": 82, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 83, "end": 89, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 85, "end": 89, "ctxt": 0 }, "kind": "void" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 99, "end": 128, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 100, "end": 109, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 101, "end": 109, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 103, "end": 109, "ctxt": 0 }, "kind": "number" } } }, { "type": "Identifier", "span": { "start": 111, "end": 120, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 112, "end": 120, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 114, "end": 120, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 121, "end": 127, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 123, "end": 127, "ctxt": 0 }, "kind": "void" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 151, "end": 391, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 161, "end": 162, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 171, "end": 175, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 171, "end": 175, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 176, "end": 391, "ctxt": 0 }, "body": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 201, "end": 221, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 202, "end": 211, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 203, "end": 211, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 205, "end": 211, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 212, "end": 220, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 214, "end": 220, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 262, "end": 294, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 263, "end": 272, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 264, "end": 272, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 266, "end": 272, "ctxt": 0 }, "kind": "number" } } }, { "type": "Identifier", "span": { "start": 274, "end": 283, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 275, "end": 283, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 277, "end": 283, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 284, "end": 293, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 286, "end": 293, "ctxt": 0 }, "kind": "boolean" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 335, "end": 353, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 339, "end": 343, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 340, "end": 343, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 342, "end": 343, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 342, "end": 343, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 344, "end": 352, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 346, "end": 352, "ctxt": 0 }, "kind": "string" } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 335, "end": 338, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 336, "end": 337, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 336, "end": 337, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] } } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 397, "end": 469, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 407, "end": 412, "ctxt": 0 }, "value": "Base2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 413, "end": 469, "ctxt": 0 }, "body": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 443, "end": 463, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 444, "end": 453, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 445, "end": 453, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 447, "end": 453, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 454, "end": 462, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 456, "end": 462, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 486, "end": 604, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 496, "end": 498, "ctxt": 0 }, "value": "I2", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 507, "end": 512, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 507, "end": 512, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 513, "end": 604, "ctxt": 0 }, "body": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 538, "end": 558, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 539, "end": 548, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 540, "end": 548, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 542, "end": 548, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 549, "end": 557, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 551, "end": 557, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 621, "end": 730, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 631, "end": 633, "ctxt": 0 }, "value": "I3", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 642, "end": 647, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 642, "end": 647, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 648, "end": 730, "ctxt": 0 }, "body": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 673, "end": 691, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 677, "end": 681, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 678, "end": 681, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 680, "end": 681, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 680, "end": 681, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 682, "end": 690, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 684, "end": 690, "ctxt": 0 }, "kind": "string" } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 673, "end": 676, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 674, "end": 675, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 674, "end": 675, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] } } ] } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 734, "end": 1586, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 741, "end": 764, "ctxt": 0 }, "value": "MemberWithCallSignature", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 765, "end": 1586, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 771, "end": 920, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 781, "end": 785, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 786, "end": 920, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 816, "end": 839, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 816, "end": 817, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 817, "end": 838, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 819, "end": 838, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 820, "end": 829, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 821, "end": 829, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 823, "end": 829, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 831, "end": 838, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 834, "end": 838, "ctxt": 0 }, "kind": "void" } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 848, "end": 883, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 848, "end": 850, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 850, "end": 882, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 852, "end": 882, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 853, "end": 862, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 854, "end": 862, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 856, "end": 862, "ctxt": 0 }, "kind": "number" } } }, { "type": "Identifier", "span": { "start": 864, "end": 873, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 865, "end": 873, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 867, "end": 873, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 875, "end": 882, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 878, "end": 882, "ctxt": 0 }, "kind": "void" } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 892, "end": 914, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 892, "end": 894, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 894, "end": 913, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 896, "end": 913, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 900, "end": 904, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 901, "end": 904, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 903, "end": 904, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 903, "end": 904, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 896, "end": 899, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 897, "end": 898, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 897, "end": 898, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 906, "end": 913, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 909, "end": 913, "ctxt": 0 }, "kind": "void" } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 937, "end": 1194, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 947, "end": 948, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 957, "end": 961, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 957, "end": 961, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 962, "end": 1194, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 987, "end": 1012, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 987, "end": 988, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 988, "end": 1011, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 990, "end": 1011, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 991, "end": 1000, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 992, "end": 1000, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 994, "end": 1000, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1002, "end": 1011, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1005, "end": 1011, "ctxt": 0 }, "kind": "number" } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1053, "end": 1091, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1053, "end": 1055, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1055, "end": 1090, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1057, "end": 1090, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1058, "end": 1067, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1059, "end": 1067, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1061, "end": 1067, "ctxt": 0 }, "kind": "number" } } }, { "type": "Identifier", "span": { "start": 1069, "end": 1078, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1070, "end": 1078, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1072, "end": 1078, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1080, "end": 1090, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1083, "end": 1090, "ctxt": 0 }, "kind": "boolean" } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1132, "end": 1156, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1132, "end": 1134, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1134, "end": 1155, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1136, "end": 1155, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1140, "end": 1144, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1141, "end": 1144, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1143, "end": 1144, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1143, "end": 1144, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1136, "end": 1139, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1137, "end": 1138, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1137, "end": 1138, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1146, "end": 1155, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1149, "end": 1155, "ctxt": 0 }, "kind": "string" } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1200, "end": 1305, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1210, "end": 1215, "ctxt": 0 }, "value": "Base2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 1216, "end": 1305, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1246, "end": 1271, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1246, "end": 1247, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1247, "end": 1270, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1249, "end": 1270, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1250, "end": 1259, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1251, "end": 1259, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1253, "end": 1259, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1261, "end": 1270, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1264, "end": 1270, "ctxt": 0 }, "kind": "number" } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1280, "end": 1299, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1280, "end": 1282, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1282, "end": 1298, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1284, "end": 1298, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1288, "end": 1292, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1289, "end": 1292, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1291, "end": 1292, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1291, "end": 1292, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1284, "end": 1287, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1285, "end": 1286, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1285, "end": 1286, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1294, "end": 1298, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1297, "end": 1298, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1297, "end": 1298, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1322, "end": 1445, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1332, "end": 1334, "ctxt": 0 }, "value": "I2", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1343, "end": 1348, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1343, "end": 1348, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1349, "end": 1445, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1374, "end": 1399, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1374, "end": 1375, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1375, "end": 1398, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1377, "end": 1398, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1378, "end": 1387, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1379, "end": 1387, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1381, "end": 1387, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1389, "end": 1398, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1392, "end": 1398, "ctxt": 0 }, "kind": "string" } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1462, "end": 1584, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1472, "end": 1474, "ctxt": 0 }, "value": "I3", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1483, "end": 1488, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1483, "end": 1488, "ctxt": 0 }, "value": "Base2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1489, "end": 1584, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1514, "end": 1538, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1514, "end": 1516, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1516, "end": 1537, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1518, "end": 1537, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1522, "end": 1526, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1523, "end": 1526, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1525, "end": 1526, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1525, "end": 1526, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1518, "end": 1521, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1519, "end": 1520, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1519, "end": 1520, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1528, "end": 1537, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1531, "end": 1537, "ctxt": 0 }, "kind": "string" } } } }, "typeParams": null } ] } } ] } } ], "interpreter": null }