{ "type": "File", "start": 0, "end": 54, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 54 } }, "range": [ 0, 54 ], "program": { "type": "Program", "start": 0, "end": 54, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 54 } }, "range": [ 0, 54 ], "sourceType": "module", "body": [ { "type": "VariableDeclaration", "start": 0, "end": 54, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 54 } }, "range": [ 0, 54 ], "declarations": [ { "type": "VariableDeclarator", "start": 4, "end": 54, "loc": { "start": { "line": 1, "column": 4 }, "end": { "line": 1, "column": 54 } }, "range": [ 4, 54 ], "id": { "type": "Identifier", "start": 4, "end": 54, "loc": { "start": { "line": 1, "column": 4 }, "end": { "line": 1, "column": 54 } }, "range": [ 4, 54 ], "name": "a", "typeAnnotation": { "type": "TypeAnnotation", "start": 6, "end": 54, "loc": { "start": { "line": 1, "column": 6 }, "end": { "line": 1, "column": 54 } }, "range": [ 6, 54 ], "typeAnnotation": { "type": "ObjectTypeAnnotation", "start": 8, "end": 54, "loc": { "start": { "line": 1, "column": 8 }, "end": { "line": 1, "column": 54 } }, "range": [ 8, 54 ], "callProperties": [ { "type": "ObjectTypeCallProperty", "start": 10, "end": 21, "loc": { "start": { "line": 1, "column": 10 }, "end": { "line": 1, "column": 21 } }, "range": [ 10, 21 ], "value": { "type": "FunctionTypeAnnotation", "start": 10, "end": 20, "loc": { "start": { "line": 1, "column": 10 }, "end": { "line": 1, "column": 20 } }, "range": [ 10, 20 ], "params": [], "rest": null, "typeParameters": null, "returnType": { "type": "NumberTypeAnnotation", "start": 14, "end": 20, "loc": { "start": { "line": 1, "column": 14 }, "end": { "line": 1, "column": 20 } }, "range": [ 14, 20 ] } } }, { "type": "ObjectTypeCallProperty", "start": 33, "end": 52, "loc": { "start": { "line": 1, "column": 33 }, "end": { "line": 1, "column": 52 } }, "range": [ 33, 52 ], "value": { "type": "FunctionTypeAnnotation", "start": 33, "end": 52, "loc": { "start": { "line": 1, "column": 33 }, "end": { "line": 1, "column": 52 } }, "range": [ 33, 52 ], "params": [ { "type": "FunctionTypeParam", "start": 34, "end": 43, "loc": { "start": { "line": 1, "column": 34 }, "end": { "line": 1, "column": 43 } }, "range": [ 34, 43 ], "name": { "type": "Identifier", "start": 34, "end": 35, "loc": { "start": { "line": 1, "column": 34 }, "end": { "line": 1, "column": 35 } }, "range": [ 34, 35 ], "name": "x" }, "optional": false, "typeAnnotation": { "type": "StringTypeAnnotation", "start": 37, "end": 43, "loc": { "start": { "line": 1, "column": 37 }, "end": { "line": 1, "column": 43 } }, "range": [ 37, 43 ] } } ], "rest": null, "typeParameters": null, "returnType": { "type": "StringTypeAnnotation", "start": 46, "end": 52, "loc": { "start": { "line": 1, "column": 46 }, "end": { "line": 1, "column": 52 } }, "range": [ 46, 52 ] } } } ], "properties": [ { "type": "ObjectTypeProperty", "start": 22, "end": 32, "loc": { "start": { "line": 1, "column": 22 }, "end": { "line": 1, "column": 32 } }, "range": [ 22, 32 ], "key": { "type": "Identifier", "start": 22, "end": 23, "loc": { "start": { "line": 1, "column": 22 }, "end": { "line": 1, "column": 23 } }, "range": [ 22, 23 ], "name": "y" }, "value": { "type": "StringTypeAnnotation", "start": 25, "end": 31, "loc": { "start": { "line": 1, "column": 25 }, "end": { "line": 1, "column": 31 } }, "range": [ 25, 31 ] }, "optional": false } ], "indexers": [] } } }, "init": null } ], "kind": "var" } ] } }