{ "type": "File", "start":0,"end":45,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":45}}, "program": { "type": "Program", "start":0,"end":45,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":45}}, "sourceType": "module", "interpreter": null, "body": [ { "type": "DeclareClass", "start":0,"end":45,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":45}}, "id": { "type": "Identifier", "start":14,"end":15,"loc":{"start":{"line":1,"column":14},"end":{"line":1,"column":15},"identifierName":"A"}, "name": "A" }, "typeParameters": { "type": "TypeParameterDeclaration", "start":15,"end":18,"loc":{"start":{"line":1,"column":15},"end":{"line":1,"column":18}}, "params": [ { "type": "TypeParameter", "start":16,"end":17,"loc":{"start":{"line":1,"column":16},"end":{"line":1,"column":17}}, "name": "T", "variance": null } ] }, "extends": [ { "type": "InterfaceExtends", "start":27,"end":31,"loc":{"start":{"line":1,"column":27},"end":{"line":1,"column":31}}, "id": { "type": "Identifier", "start":27,"end":28,"loc":{"start":{"line":1,"column":27},"end":{"line":1,"column":28},"identifierName":"B"}, "name": "B" }, "typeParameters": { "type": "TypeParameterInstantiation", "start":28,"end":31,"loc":{"start":{"line":1,"column":28},"end":{"line":1,"column":31}}, "params": [ { "type": "GenericTypeAnnotation", "start":29,"end":30,"loc":{"start":{"line":1,"column":29},"end":{"line":1,"column":30}}, "typeParameters": null, "id": { "type": "Identifier", "start":29,"end":30,"loc":{"start":{"line":1,"column":29},"end":{"line":1,"column":30},"identifierName":"T"}, "name": "T" } } ] } } ], "implements": [], "mixins": [], "body": { "type": "ObjectTypeAnnotation", "start":32,"end":45,"loc":{"start":{"line":1,"column":32},"end":{"line":1,"column":45}}, "callProperties": [], "properties": [ { "type": "ObjectTypeProperty", "start":34,"end":43,"loc":{"start":{"line":1,"column":34},"end":{"line":1,"column":43}}, "key": { "type": "Identifier", "start":34,"end":35,"loc":{"start":{"line":1,"column":34},"end":{"line":1,"column":35},"identifierName":"x"}, "name": "x" }, "static": false, "proto": false, "kind": "init", "method": false, "value": { "type": "NumberTypeAnnotation", "start":37,"end":43,"loc":{"start":{"line":1,"column":37},"end":{"line":1,"column":43}} }, "variance": null, "optional": false } ], "indexers": [], "internalSlots": [], "exact": false } } ], "directives": [] } }