{ "type": "File", "start":0,"end":25,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":25}}, "program": { "type": "Program", "start":0,"end":25,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":25}}, "sourceType": "module", "interpreter": null, "body": [ { "type": "TypeAlias", "start":0,"end":25,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":25}}, "id": { "type": "Identifier", "start":5,"end":6,"loc":{"start":{"line":1,"column":5},"end":{"line":1,"column":6},"identifierName":"T"}, "name": "T" }, "typeParameters": null, "right": { "type": "ObjectTypeAnnotation", "start":9,"end":25,"loc":{"start":{"line":1,"column":9},"end":{"line":1,"column":25}}, "callProperties": [], "properties": [], "indexers": [], "internalSlots": [ { "type": "ObjectTypeInternalSlot", "start":11,"end":23,"loc":{"start":{"line":1,"column":11},"end":{"line":1,"column":23}}, "static": false, "id": { "type": "Identifier", "start":13,"end":16,"loc":{"start":{"line":1,"column":13},"end":{"line":1,"column":16},"identifierName":"foo"}, "name": "foo" }, "method": true, "optional": false, "value": { "type": "FunctionTypeAnnotation", "start":11,"end":23,"loc":{"start":{"line":1,"column":11},"end":{"line":1,"column":23}}, "params": [], "rest": null, "typeParameters": null, "returnType": { "type": "GenericTypeAnnotation", "start":22,"end":23,"loc":{"start":{"line":1,"column":22},"end":{"line":1,"column":23}}, "typeParameters": null, "id": { "type": "Identifier", "start":22,"end":23,"loc":{"start":{"line":1,"column":22},"end":{"line":1,"column":23},"identifierName":"X"}, "name": "X" } } } } ], "exact": false, "inexact": false } } ], "directives": [] } }