{ "type": "File", "start":0,"end":168,"loc":{"start":{"line":1,"column":0},"end":{"line":6,"column":1}}, "program": { "type": "Program", "start":0,"end":168,"loc":{"start":{"line":1,"column":0},"end":{"line":6,"column":1}}, "sourceType": "module", "interpreter": null, "body": [ { "type": "DeclareClass", "start":0,"end":168,"loc":{"start":{"line":1,"column":0},"end":{"line":6,"column":1}}, "id": { "type": "Identifier", "start":14,"end":15,"loc":{"start":{"line":1,"column":14},"end":{"line":1,"column":15},"identifierName":"A"}, "name": "A" }, "typeParameters": null, "extends": [], "implements": [], "mixins": [], "body": { "type": "ObjectTypeAnnotation", "start":16,"end":168,"loc":{"start":{"line":1,"column":16},"end":{"line":6,"column":1}}, "callProperties": [], "properties": [ { "type": "ObjectTypeProperty", "start":22,"end":69,"loc":{"start":{"line":2,"column":4},"end":{"line":2,"column":51}}, "key": { "type": "Identifier", "start":22,"end":23,"loc":{"start":{"line":2,"column":4},"end":{"line":2,"column":5},"identifierName":"m"}, "name": "m" }, "static": false, "proto": false, "kind": "init", "method": true, "value": { "type": "FunctionTypeAnnotation", "start":22,"end":69,"loc":{"start":{"line":2,"column":4},"end":{"line":2,"column":51}}, "params": [ { "type": "FunctionTypeParam", "start":39,"end":49,"loc":{"start":{"line":2,"column":21},"end":{"line":2,"column":31}}, "name": { "type": "Identifier", "start":39,"end":40,"loc":{"start":{"line":2,"column":21},"end":{"line":2,"column":22},"identifierName":"a"}, "name": "a" }, "optional": false, "typeAnnotation": { "type": "NumberTypeAnnotation", "start":43,"end":49,"loc":{"start":{"line":2,"column":25},"end":{"line":2,"column":31}} } }, { "type": "FunctionTypeParam", "start":51,"end":61,"loc":{"start":{"line":2,"column":33},"end":{"line":2,"column":43}}, "name": { "type": "Identifier", "start":51,"end":52,"loc":{"start":{"line":2,"column":33},"end":{"line":2,"column":34},"identifierName":"b"}, "name": "b" }, "optional": false, "typeAnnotation": { "type": "StringTypeAnnotation", "start":55,"end":61,"loc":{"start":{"line":2,"column":37},"end":{"line":2,"column":43}} } } ], "rest": null, "typeParameters": null, "this": { "type": "FunctionTypeParam", "start":24,"end":37,"loc":{"start":{"line":2,"column":6},"end":{"line":2,"column":19}}, "name": null, "optional": false, "typeAnnotation": { "type": "NumberTypeAnnotation", "start":31,"end":37,"loc":{"start":{"line":2,"column":13},"end":{"line":2,"column":19}} } }, "returnType": { "type": "VoidTypeAnnotation", "start":65,"end":69,"loc":{"start":{"line":2,"column":47},"end":{"line":2,"column":51}} } }, "optional": false }, { "type": "ObjectTypeProperty", "start":75,"end":110,"loc":{"start":{"line":3,"column":4},"end":{"line":3,"column":39}}, "key": { "type": "Identifier", "start":75,"end":76,"loc":{"start":{"line":3,"column":4},"end":{"line":3,"column":5},"identifierName":"n"}, "name": "n" }, "static": false, "proto": false, "kind": "init", "method": true, "value": { "type": "FunctionTypeAnnotation", "start":75,"end":110,"loc":{"start":{"line":3,"column":4},"end":{"line":3,"column":39}}, "params": [], "rest": { "type": "FunctionTypeParam", "start":95,"end":102,"loc":{"start":{"line":3,"column":24},"end":{"line":3,"column":31}}, "name": { "type": "Identifier", "start":95,"end":96,"loc":{"start":{"line":3,"column":24},"end":{"line":3,"column":25},"identifierName":"c"}, "name": "c" }, "optional": false, "typeAnnotation": { "type": "AnyTypeAnnotation", "start":99,"end":102,"loc":{"start":{"line":3,"column":28},"end":{"line":3,"column":31}} } }, "typeParameters": null, "this": { "type": "FunctionTypeParam", "start":77,"end":90,"loc":{"start":{"line":3,"column":6},"end":{"line":3,"column":19}}, "name": null, "optional": false, "typeAnnotation": { "type": "NumberTypeAnnotation", "start":84,"end":90,"loc":{"start":{"line":3,"column":13},"end":{"line":3,"column":19}} } }, "returnType": { "type": "VoidTypeAnnotation", "start":106,"end":110,"loc":{"start":{"line":3,"column":35},"end":{"line":3,"column":39}} } }, "optional": false }, { "type": "ObjectTypeProperty", "start":116,"end":139,"loc":{"start":{"line":4,"column":4},"end":{"line":4,"column":27}}, "key": { "type": "Identifier", "start":116,"end":117,"loc":{"start":{"line":4,"column":4},"end":{"line":4,"column":5},"identifierName":"o"}, "name": "o" }, "static": false, "proto": false, "kind": "init", "method": true, "value": { "type": "FunctionTypeAnnotation", "start":116,"end":139,"loc":{"start":{"line":4,"column":4},"end":{"line":4,"column":27}}, "params": [], "rest": null, "typeParameters": null, "this": { "type": "FunctionTypeParam", "start":118,"end":131,"loc":{"start":{"line":4,"column":6},"end":{"line":4,"column":19}}, "name": null, "optional": false, "typeAnnotation": { "type": "NumberTypeAnnotation", "start":125,"end":131,"loc":{"start":{"line":4,"column":13},"end":{"line":4,"column":19}} } }, "returnType": { "type": "VoidTypeAnnotation", "start":135,"end":139,"loc":{"start":{"line":4,"column":23},"end":{"line":4,"column":27}} } }, "optional": false }, { "type": "ObjectTypeProperty", "start":145,"end":166,"loc":{"start":{"line":5,"column":4},"end":{"line":5,"column":25}}, "key": { "type": "Identifier", "start":145,"end":146,"loc":{"start":{"line":5,"column":4},"end":{"line":5,"column":5},"identifierName":"p"}, "name": "p" }, "static": false, "proto": false, "kind": "init", "method": true, "value": { "type": "FunctionTypeAnnotation", "start":145,"end":166,"loc":{"start":{"line":5,"column":4},"end":{"line":5,"column":25}}, "params": [], "rest": null, "typeParameters": { "type": "TypeParameterDeclaration", "start":146,"end":149,"loc":{"start":{"line":5,"column":5},"end":{"line":5,"column":8}}, "params": [ { "type": "TypeParameter", "start":147,"end":148,"loc":{"start":{"line":5,"column":6},"end":{"line":5,"column":7}}, "name": "T", "variance": null } ] }, "this": { "type": "FunctionTypeParam", "start":150,"end":158,"loc":{"start":{"line":5,"column":9},"end":{"line":5,"column":17}}, "name": null, "optional": false, "typeAnnotation": { "type": "GenericTypeAnnotation", "start":157,"end":158,"loc":{"start":{"line":5,"column":16},"end":{"line":5,"column":17}}, "typeParameters": null, "id": { "type": "Identifier", "start":157,"end":158,"loc":{"start":{"line":5,"column":16},"end":{"line":5,"column":17},"identifierName":"T"}, "name": "T" } } }, "returnType": { "type": "VoidTypeAnnotation", "start":162,"end":166,"loc":{"start":{"line":5,"column":21},"end":{"line":5,"column":25}} } }, "optional": false } ], "indexers": [], "internalSlots": [], "exact": false } } ], "directives": [] } }