{ "type": "Script", "span": { "start": 68, "end": 1600, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 68, "end": 99, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 78, "end": 82, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 83, "end": 99, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 85, "end": 97, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 85, "end": 88, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 88, "end": 96, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 90, "end": 96, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 100, "end": 147, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 110, "end": 117, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 126, "end": 130, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 126, "end": 130, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 131, "end": 147, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 133, "end": 145, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 133, "end": 136, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 136, "end": 144, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 138, "end": 144, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 148, "end": 199, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 158, "end": 166, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 175, "end": 182, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 175, "end": 182, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 183, "end": 199, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 185, "end": 197, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 185, "end": 188, "ctxt": 0 }, "value": "baz", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 188, "end": 196, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 190, "end": 196, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 811, "end": 842, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 821, "end": 822, "ctxt": 0 }, "value": "T", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 823, "end": 842, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 829, "end": 840, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 829, "end": 832, "ctxt": 0 }, "value": "Foo", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 833, "end": 839, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 835, "end": 839, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 835, "end": 839, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 844, "end": 886, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 854, "end": 855, "ctxt": 0 }, "value": "S", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 864, "end": 865, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 864, "end": 865, "ctxt": 0 }, "value": "T", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 866, "end": 886, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 872, "end": 884, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 872, "end": 875, "ctxt": 0 }, "value": "Foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 875, "end": 884, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 877, "end": 884, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 877, "end": 884, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 888, "end": 919, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 898, "end": 900, "ctxt": 0 }, "value": "T2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 901, "end": 919, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 907, "end": 916, "ctxt": 0 }, "readonly": false, "key": { "type": "NumericLiteral", "span": { "start": 907, "end": 908, "ctxt": 0 }, "value": 1.0 }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 909, "end": 915, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 911, "end": 915, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 911, "end": 915, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 921, "end": 964, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 931, "end": 933, "ctxt": 0 }, "value": "S2", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 942, "end": 944, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 942, "end": 944, "ctxt": 0 }, "value": "T2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 945, "end": 964, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 951, "end": 962, "ctxt": 0 }, "readonly": false, "key": { "type": "NumericLiteral", "span": { "start": 951, "end": 952, "ctxt": 0 }, "value": 1.0 }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 952, "end": 961, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 954, "end": 961, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 954, "end": 961, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 966, "end": 998, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 976, "end": 978, "ctxt": 0 }, "value": "T3", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 979, "end": 998, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 985, "end": 996, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 985, "end": 988, "ctxt": 0 }, "value": "1", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 989, "end": 995, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 991, "end": 995, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 991, "end": 995, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1000, "end": 1046, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1010, "end": 1012, "ctxt": 0 }, "value": "S3", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1021, "end": 1023, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1021, "end": 1023, "ctxt": 0 }, "value": "T3", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1024, "end": 1046, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1030, "end": 1044, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 1030, "end": 1034, "ctxt": 0 }, "value": "1.", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1034, "end": 1043, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1036, "end": 1043, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1036, "end": 1043, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "VariableDeclaration", "span": { "start": 1071, "end": 1094, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1075, "end": 1093, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1075, "end": 1076, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1076, "end": 1093, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1078, "end": 1093, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1080, "end": 1091, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1080, "end": 1083, "ctxt": 0 }, "value": "Foo", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1084, "end": 1090, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1086, "end": 1090, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1086, "end": 1090, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1095, "end": 1126, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1099, "end": 1125, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1099, "end": 1100, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null }, "init": { "type": "ObjectExpression", "span": { "start": 1103, "end": 1125, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 1105, "end": 1108, "ctxt": 0 }, "value": "Foo", "optional": false }, "value": { "type": "TsTypeAssertion", "span": { "start": 1110, "end": 1123, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 1119, "end": 1123, "ctxt": 0 } }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1111, "end": 1118, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1111, "end": 1118, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1127, "end": 1148, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1131, "end": 1147, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1131, "end": 1132, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": null }, "init": { "type": "ConditionalExpression", "span": { "start": 1135, "end": 1147, "ctxt": 0 }, "test": { "type": "BooleanLiteral", "span": { "start": 1135, "end": 1139, "ctxt": 0 }, "value": true }, "consequent": { "type": "Identifier", "span": { "start": 1142, "end": 1143, "ctxt": 0 }, "value": "a", "optional": false }, "alternate": { "type": "Identifier", "span": { "start": 1146, "end": 1147, "ctxt": 0 }, "value": "b", "optional": false } }, "definite": false } ] }, { "type": "TsModuleDeclaration", "span": { "start": 1150, "end": 1600, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 1157, "end": 1166, "ctxt": 0 }, "value": "TwoLevels", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 1167, "end": 1600, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 1173, "end": 1212, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1183, "end": 1184, "ctxt": 0 }, "value": "T", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 1185, "end": 1212, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1195, "end": 1206, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1195, "end": 1198, "ctxt": 0 }, "value": "Foo", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1199, "end": 1205, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1201, "end": 1205, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1201, "end": 1205, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1218, "end": 1270, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1228, "end": 1229, "ctxt": 0 }, "value": "S", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1238, "end": 1239, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1238, "end": 1239, "ctxt": 0 }, "value": "T", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1240, "end": 1270, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1250, "end": 1263, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1250, "end": 1253, "ctxt": 0 }, "value": "Foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1253, "end": 1263, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1255, "end": 1263, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1255, "end": 1263, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1276, "end": 1314, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1286, "end": 1288, "ctxt": 0 }, "value": "T2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 1289, "end": 1314, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1299, "end": 1308, "ctxt": 0 }, "readonly": false, "key": { "type": "NumericLiteral", "span": { "start": 1299, "end": 1300, "ctxt": 0 }, "value": 1.0 }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1301, "end": 1307, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1303, "end": 1307, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1303, "end": 1307, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1320, "end": 1372, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1330, "end": 1332, "ctxt": 0 }, "value": "S2", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1341, "end": 1343, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1341, "end": 1343, "ctxt": 0 }, "value": "T2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1344, "end": 1372, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1354, "end": 1366, "ctxt": 0 }, "readonly": false, "key": { "type": "NumericLiteral", "span": { "start": 1354, "end": 1355, "ctxt": 0 }, "value": 1.0 }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1355, "end": 1365, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1357, "end": 1365, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1357, "end": 1365, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1378, "end": 1418, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1388, "end": 1390, "ctxt": 0 }, "value": "T3", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 1391, "end": 1418, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1401, "end": 1412, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 1401, "end": 1404, "ctxt": 0 }, "value": "1", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1405, "end": 1411, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1407, "end": 1411, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1407, "end": 1411, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1424, "end": 1479, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1434, "end": 1436, "ctxt": 0 }, "value": "S3", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1445, "end": 1447, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1445, "end": 1447, "ctxt": 0 }, "value": "T3", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1448, "end": 1479, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1458, "end": 1473, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 1458, "end": 1462, "ctxt": 0 }, "value": "1.", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1462, "end": 1472, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1464, "end": 1472, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1464, "end": 1472, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "VariableDeclaration", "span": { "start": 1512, "end": 1535, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1516, "end": 1534, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1516, "end": 1517, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1517, "end": 1534, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1519, "end": 1534, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1521, "end": 1532, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1521, "end": 1524, "ctxt": 0 }, "value": "Foo", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1525, "end": 1531, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1527, "end": 1531, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1527, "end": 1531, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1540, "end": 1572, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1544, "end": 1571, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1544, "end": 1545, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null }, "init": { "type": "ObjectExpression", "span": { "start": 1548, "end": 1571, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 1550, "end": 1553, "ctxt": 0 }, "value": "Foo", "optional": false }, "value": { "type": "TsTypeAssertion", "span": { "start": 1555, "end": 1569, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 1565, "end": 1569, "ctxt": 0 } }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1556, "end": 1564, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1556, "end": 1564, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1577, "end": 1598, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1581, "end": 1597, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1581, "end": 1582, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": null }, "init": { "type": "ConditionalExpression", "span": { "start": 1585, "end": 1597, "ctxt": 0 }, "test": { "type": "BooleanLiteral", "span": { "start": 1585, "end": 1589, "ctxt": 0 }, "value": true }, "consequent": { "type": "Identifier", "span": { "start": 1592, "end": 1593, "ctxt": 0 }, "value": "a", "optional": false }, "alternate": { "type": "Identifier", "span": { "start": 1596, "end": 1597, "ctxt": 0 }, "value": "b", "optional": false } }, "definite": false } ] } ] } } ], "interpreter": null }