{ "type": "Script", "span": { "start": 1, "end": 406, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 1, "end": 60, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 11, "end": 15, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 24, "end": 32, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 24, "end": 32, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 33, "end": 60, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 48, "end": 58, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 48, "end": 49, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 49, "end": 57, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 51, "end": 57, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 62, "end": 111, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 72, "end": 79, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 88, "end": 92, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 88, "end": 92, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 93, "end": 111, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 99, "end": 109, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 99, "end": 100, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 100, "end": 108, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 102, "end": 108, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 113, "end": 166, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 123, "end": 131, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 140, "end": 147, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 140, "end": 147, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 148, "end": 166, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 154, "end": 164, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 154, "end": 155, "ctxt": 0 }, "value": "z", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 155, "end": 163, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 157, "end": 163, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 168, "end": 406, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 175, "end": 182, "ctxt": 0 }, "value": "Generic", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 183, "end": 406, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 189, "end": 262, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 199, "end": 203, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 203, "end": 206, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 204, "end": 205, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 204, "end": 205, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 215, "end": 226, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 215, "end": 223, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 223, "end": 226, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 224, "end": 225, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 224, "end": 225, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 227, "end": 262, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 246, "end": 256, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 246, "end": 247, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 247, "end": 255, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 249, "end": 255, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 268, "end": 331, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 278, "end": 285, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 285, "end": 288, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 286, "end": 287, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 286, "end": 287, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 297, "end": 304, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 297, "end": 301, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 301, "end": 304, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 302, "end": 303, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 302, "end": 303, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 305, "end": 331, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 315, "end": 325, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 315, "end": 316, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 316, "end": 324, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 318, "end": 324, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 337, "end": 404, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 347, "end": 355, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 355, "end": 358, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 356, "end": 357, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 356, "end": 357, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 367, "end": 377, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 367, "end": 374, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 374, "end": 377, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 375, "end": 376, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 375, "end": 376, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 378, "end": 404, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 388, "end": 398, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 388, "end": 389, "ctxt": 0 }, "value": "z", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 389, "end": 397, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 391, "end": 397, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } ] } } ], "interpreter": null }