{ "type": "Script", "span": { "start": 1, "end": 1278, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 1, "end": 36, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 11, "end": 15, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 16, "end": 36, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 22, "end": 34, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 22, "end": 25, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 25, "end": 33, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 27, "end": 33, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 38, "end": 89, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 48, "end": 55, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 64, "end": 68, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 64, "end": 68, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 69, "end": 89, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 75, "end": 87, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 75, "end": 78, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 78, "end": 86, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 80, "end": 86, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 275, "end": 771, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 282, "end": 293, "ctxt": 0 }, "value": "NotOptional", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 294, "end": 771, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 300, "end": 360, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 310, "end": 311, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 312, "end": 360, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 322, "end": 332, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 322, "end": 325, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 325, "end": 331, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 327, "end": 331, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 327, "end": 331, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 341, "end": 354, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 341, "end": 344, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 344, "end": 353, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 346, "end": 353, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 346, "end": 353, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 366, "end": 451, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 376, "end": 377, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 386, "end": 387, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 386, "end": 387, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 388, "end": 451, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 398, "end": 411, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 398, "end": 401, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 401, "end": 410, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 403, "end": 410, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 403, "end": 410, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 426, "end": 436, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 426, "end": 429, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 429, "end": 435, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 431, "end": 435, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 431, "end": 435, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 457, "end": 516, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 467, "end": 469, "ctxt": 0 }, "value": "A2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 470, "end": 516, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 480, "end": 488, "ctxt": 0 }, "readonly": false, "key": { "type": "NumericLiteral", "span": { "start": 480, "end": 481, "ctxt": 0 }, "value": 1.0, "raw": "1" }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 481, "end": 487, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 483, "end": 487, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 483, "end": 487, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 497, "end": 510, "ctxt": 0 }, "readonly": false, "key": { "type": "NumericLiteral", "span": { "start": 497, "end": 500, "ctxt": 0 }, "value": 2.0, "raw": "2.0" }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 500, "end": 509, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 502, "end": 509, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 502, "end": 509, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 522, "end": 605, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 532, "end": 534, "ctxt": 0 }, "value": "B2", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 543, "end": 545, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 543, "end": 545, "ctxt": 0 }, "value": "A2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 546, "end": 605, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 556, "end": 567, "ctxt": 0 }, "readonly": false, "key": { "type": "NumericLiteral", "span": { "start": 556, "end": 557, "ctxt": 0 }, "value": 1.0, "raw": "1" }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 557, "end": 566, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 559, "end": 566, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 559, "end": 566, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 582, "end": 590, "ctxt": 0 }, "readonly": false, "key": { "type": "NumericLiteral", "span": { "start": 582, "end": 583, "ctxt": 0 }, "value": 2.0, "raw": "2" }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 583, "end": 589, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 585, "end": 589, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 585, "end": 589, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 611, "end": 674, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 621, "end": 623, "ctxt": 0 }, "value": "A3", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 624, "end": 674, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 634, "end": 644, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 634, "end": 637, "ctxt": 0 }, "value": "1", "raw": "'1'" }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 637, "end": 643, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 639, "end": 643, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 639, "end": 643, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 653, "end": 668, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 653, "end": 658, "ctxt": 0 }, "value": "2.0", "raw": "'2.0'" }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 658, "end": 667, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 660, "end": 667, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 660, "end": 667, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 680, "end": 769, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 690, "end": 692, "ctxt": 0 }, "value": "B3", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 701, "end": 703, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 701, "end": 703, "ctxt": 0 }, "value": "A3", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 704, "end": 769, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 714, "end": 727, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 714, "end": 717, "ctxt": 0 }, "value": "1", "raw": "'1'" }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 717, "end": 726, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 719, "end": 726, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 719, "end": 726, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 742, "end": 754, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 742, "end": 747, "ctxt": 0 }, "value": "2.0", "raw": "'2.0'" }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 747, "end": 753, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 749, "end": 753, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 749, "end": 753, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 773, "end": 1278, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 780, "end": 788, "ctxt": 0 }, "value": "Optional", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 789, "end": 1278, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 795, "end": 857, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 805, "end": 806, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 807, "end": 857, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 817, "end": 828, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 817, "end": 820, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 821, "end": 827, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 823, "end": 827, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 823, "end": 827, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 837, "end": 851, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 837, "end": 840, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 841, "end": 850, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 843, "end": 850, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 843, "end": 850, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 863, "end": 950, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 873, "end": 874, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 883, "end": 884, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 883, "end": 884, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 885, "end": 950, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 895, "end": 909, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 895, "end": 898, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 899, "end": 908, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 901, "end": 908, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 901, "end": 908, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 924, "end": 935, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 924, "end": 927, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 928, "end": 934, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 930, "end": 934, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 930, "end": 934, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 956, "end": 1017, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 966, "end": 968, "ctxt": 0 }, "value": "A2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 969, "end": 1017, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 979, "end": 988, "ctxt": 0 }, "readonly": false, "key": { "type": "NumericLiteral", "span": { "start": 979, "end": 980, "ctxt": 0 }, "value": 1.0, "raw": "1" }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 981, "end": 987, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 983, "end": 987, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 983, "end": 987, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 997, "end": 1011, "ctxt": 0 }, "readonly": false, "key": { "type": "NumericLiteral", "span": { "start": 997, "end": 1000, "ctxt": 0 }, "value": 2.0, "raw": "2.0" }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1001, "end": 1010, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1003, "end": 1010, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1003, "end": 1010, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1023, "end": 1108, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1033, "end": 1035, "ctxt": 0 }, "value": "B2", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1044, "end": 1046, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1044, "end": 1046, "ctxt": 0 }, "value": "A2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1047, "end": 1108, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1057, "end": 1069, "ctxt": 0 }, "readonly": false, "key": { "type": "NumericLiteral", "span": { "start": 1057, "end": 1058, "ctxt": 0 }, "value": 1.0, "raw": "1" }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1059, "end": 1068, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1061, "end": 1068, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1061, "end": 1068, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1084, "end": 1093, "ctxt": 0 }, "readonly": false, "key": { "type": "NumericLiteral", "span": { "start": 1084, "end": 1085, "ctxt": 0 }, "value": 2.0, "raw": "2" }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1086, "end": 1092, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1088, "end": 1092, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1088, "end": 1092, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1114, "end": 1179, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1124, "end": 1126, "ctxt": 0 }, "value": "A3", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 1127, "end": 1179, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1137, "end": 1148, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 1137, "end": 1140, "ctxt": 0 }, "value": "1", "raw": "'1'" }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1141, "end": 1147, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1143, "end": 1147, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1143, "end": 1147, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1157, "end": 1173, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 1157, "end": 1162, "ctxt": 0 }, "value": "2.0", "raw": "'2.0'" }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1163, "end": 1172, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1165, "end": 1172, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1165, "end": 1172, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1185, "end": 1276, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1195, "end": 1197, "ctxt": 0 }, "value": "B3", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1206, "end": 1208, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1206, "end": 1208, "ctxt": 0 }, "value": "A3", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1209, "end": 1276, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1219, "end": 1233, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 1219, "end": 1222, "ctxt": 0 }, "value": "1", "raw": "'1'" }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1223, "end": 1232, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1225, "end": 1232, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1225, "end": 1232, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1248, "end": 1261, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 1248, "end": 1253, "ctxt": 0 }, "value": "2.0", "raw": "'2.0'" }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1254, "end": 1260, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1256, "end": 1260, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1256, "end": 1260, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } ] } } ], "interpreter": null }