{ "type": "File", "start": 0, "end": 30, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 30 } }, "range": [ 0, 30 ], "program": { "type": "Program", "start": 0, "end": 30, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 30 } }, "range": [ 0, 30 ], "sourceType": "module", "body": [ { "type": "VariableDeclaration", "start": 0, "end": 30, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 30 } }, "range": [ 0, 30 ], "declarations": [ { "type": "VariableDeclarator", "start": 4, "end": 30, "loc": { "start": { "line": 1, "column": 4 }, "end": { "line": 1, "column": 30 } }, "range": [ 4, 30 ], "id": { "type": "Identifier", "start": 4, "end": 30, "loc": { "start": { "line": 1, "column": 4 }, "end": { "line": 1, "column": 30 } }, "range": [ 4, 30 ], "name": "a", "typeAnnotation": { "type": "TypeAnnotation", "start": 6, "end": 30, "loc": { "start": { "line": 1, "column": 6 }, "end": { "line": 1, "column": 30 } }, "range": [ 6, 30 ], "typeAnnotation": { "type": "ObjectTypeAnnotation", "start": 8, "end": 30, "loc": { "start": { "line": 1, "column": 8 }, "end": { "line": 1, "column": 30 } }, "range": [ 8, 30 ], "callProperties": [ { "type": "ObjectTypeCallProperty", "start": 10, "end": 28, "loc": { "start": { "line": 1, "column": 10 }, "end": { "line": 1, "column": 28 } }, "range": [ 10, 28 ], "value": { "type": "FunctionTypeAnnotation", "start": 10, "end": 27, "loc": { "start": { "line": 1, "column": 10 }, "end": { "line": 1, "column": 27 } }, "range": [ 10, 27 ], "params": [ { "type": "FunctionTypeParam", "start": 14, "end": 18, "loc": { "start": { "line": 1, "column": 14 }, "end": { "line": 1, "column": 18 } }, "range": [ 14, 18 ], "name": { "type": "Identifier", "start": 14, "end": 15, "loc": { "start": { "line": 1, "column": 14 }, "end": { "line": 1, "column": 15 } }, "range": [ 14, 15 ], "name": "x" }, "optional": false, "typeAnnotation": { "type": "GenericTypeAnnotation", "start": 17, "end": 18, "loc": { "start": { "line": 1, "column": 17 }, "end": { "line": 1, "column": 18 } }, "range": [ 17, 18 ], "typeParameters": null, "id": { "type": "Identifier", "start": 17, "end": 18, "loc": { "start": { "line": 1, "column": 17 }, "end": { "line": 1, "column": 18 } }, "range": [ 17, 18 ], "name": "T" } } } ], "rest": null, "typeParameters": { "type": "TypeParameterDeclaration", "start": 10, "end": 13, "loc": { "start": { "line": 1, "column": 10 }, "end": { "line": 1, "column": 13 } }, "range": [ 10, 13 ], "params": [ { "type": "Identifier", "start": 11, "end": 12, "loc": { "start": { "line": 1, "column": 11 }, "end": { "line": 1, "column": 12 } }, "range": [ 11, 12 ], "name": "T" } ] }, "returnType": { "type": "NumberTypeAnnotation", "start": 21, "end": 27, "loc": { "start": { "line": 1, "column": 21 }, "end": { "line": 1, "column": 27 } }, "range": [ 21, 27 ] } } } ], "properties": [], "indexers": [] } } }, "init": null } ], "kind": "var" } ] } }