{ "type": "Script", "span": { "start": 50, "end": 863, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 50, "end": 133, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 60, "end": 63, "ctxt": 0 }, "value": "Foo", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 64, "end": 133, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 70, "end": 80, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 70, "end": 71, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 71, "end": 79, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 73, "end": 79, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 85, "end": 96, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 85, "end": 86, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 87, "end": 95, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 89, "end": 95, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsMethodSignature", "span": { "start": 101, "end": 113, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 101, "end": 102, "ctxt": 0 }, "value": "f", "optional": false }, "computed": false, "optional": false, "params": [], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 104, "end": 112, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 106, "end": 112, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsMethodSignature", "span": { "start": 118, "end": 131, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 118, "end": 119, "ctxt": 0 }, "value": "g", "optional": false }, "computed": false, "optional": true, "params": [], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 122, "end": 130, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 124, "end": 130, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 144, "end": 149, "ctxt": 0 }, "value": "test1", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 150, "end": 156, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 150, "end": 156, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 151, "end": 156, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 153, "end": 156, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 153, "end": 156, "ctxt": 0 }, "value": "Foo", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 135, "end": 274, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 158, "end": 274, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 164, "end": 168, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 164, "end": 167, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 164, "end": 165, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 166, "end": 167, "ctxt": 0 }, "value": "a", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 173, "end": 177, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 173, "end": 176, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 173, "end": 174, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 175, "end": 176, "ctxt": 0 }, "value": "b", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 182, "end": 186, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 182, "end": 185, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 182, "end": 183, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 184, "end": 185, "ctxt": 0 }, "value": "f", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 191, "end": 195, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 191, "end": 194, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 191, "end": 192, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 193, "end": 194, "ctxt": 0 }, "value": "g", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 200, "end": 215, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 204, "end": 214, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 204, "end": 206, "ctxt": 0 }, "value": "f1", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 209, "end": 214, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 209, "end": 212, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 209, "end": 210, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 211, "end": 212, "ctxt": 0 }, "value": "f", "optional": false } }, "arguments": [], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 220, "end": 242, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 224, "end": 241, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 224, "end": 226, "ctxt": 0 }, "value": "g1", "optional": false, "typeAnnotation": null }, "init": { "type": "BinaryExpression", "span": { "start": 229, "end": 241, "ctxt": 0 }, "operator": "&&", "left": { "type": "MemberExpression", "span": { "start": 229, "end": 232, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 229, "end": 230, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 231, "end": 232, "ctxt": 0 }, "value": "g", "optional": false } }, "right": { "type": "CallExpression", "span": { "start": 236, "end": 241, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 236, "end": 239, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 236, "end": 237, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 238, "end": 239, "ctxt": 0 }, "value": "g", "optional": false } }, "arguments": [], "typeArguments": null } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 247, "end": 272, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 251, "end": 271, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 251, "end": 253, "ctxt": 0 }, "value": "g2", "optional": false, "typeAnnotation": null }, "init": { "type": "ConditionalExpression", "span": { "start": 256, "end": 271, "ctxt": 0 }, "test": { "type": "MemberExpression", "span": { "start": 256, "end": 259, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 256, "end": 257, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 258, "end": 259, "ctxt": 0 }, "value": "g", "optional": false } }, "consequent": { "type": "CallExpression", "span": { "start": 262, "end": 267, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 262, "end": 265, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 262, "end": 263, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 264, "end": 265, "ctxt": 0 }, "value": "g", "optional": false } }, "arguments": [], "typeArguments": null }, "alternate": { "type": "NumericLiteral", "span": { "start": 270, "end": 271, "ctxt": 0 }, "value": 0.0 } }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 282, "end": 285, "ctxt": 0 }, "value": "Bar", "optional": false }, "declare": false, "span": { "start": 276, "end": 515, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 292, "end": 302, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 292, "end": 293, "ctxt": 0 }, "value": "a", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 293, "end": 301, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 295, "end": 301, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 307, "end": 318, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 307, "end": 308, "ctxt": 0 }, "value": "b", "optional": true }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 309, "end": 317, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 311, "end": 317, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": true, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 323, "end": 330, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 323, "end": 324, "ctxt": 0 }, "value": "c", "optional": true }, "value": { "type": "NumericLiteral", "span": { "start": 328, "end": 329, "ctxt": 0 }, "value": 2.0 }, "typeAnnotation": null, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": true, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "Constructor", "span": { "start": 335, "end": 383, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 335, "end": 346, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "TsParameterProperty", "span": { "start": 347, "end": 364, "ctxt": 0 }, "decorators": [], "accessibility": "public", "override": false, "readonly": false, "param": { "type": "Identifier", "span": { "start": 354, "end": 364, "ctxt": 0 }, "value": "d", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 356, "end": 364, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 358, "end": 364, "ctxt": 0 }, "kind": "number" } } } }, { "type": "TsParameterProperty", "span": { "start": 366, "end": 379, "ctxt": 0 }, "decorators": [], "accessibility": "public", "override": false, "readonly": false, "param": { "type": "AssignmentPattern", "span": { "start": 373, "end": 379, "ctxt": 0 }, "left": { "type": "Identifier", "span": { "start": 373, "end": 374, "ctxt": 0 }, "value": "e", "optional": false, "typeAnnotation": null }, "right": { "type": "NumericLiteral", "span": { "start": 377, "end": 379, "ctxt": 0 }, "value": 10.0 }, "typeAnnotation": null } } ], "body": { "type": "BlockStatement", "span": { "start": 381, "end": 383, "ctxt": 0 }, "stmts": [] }, "accessibility": null, "isOptional": false }, { "type": "ClassMethod", "span": { "start": 388, "end": 417, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 388, "end": 389, "ctxt": 0 }, "value": "f", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 388, "end": 417, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 392, "end": 417, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 402, "end": 411, "ctxt": 0 }, "argument": { "type": "NumericLiteral", "span": { "start": 409, "end": 410, "ctxt": 0 }, "value": 1.0 } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassMethod", "span": { "start": 422, "end": 435, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 422, "end": 423, "ctxt": 0 }, "value": "g", "optional": true }, "function": { "params": [], "decorators": [], "span": { "start": 422, "end": 435, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 426, "end": 434, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 428, "end": 434, "ctxt": 0 }, "kind": "number" } } }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": true, "isOverride": false }, { "type": "ClassMethod", "span": { "start": 483, "end": 513, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 483, "end": 484, "ctxt": 0 }, "value": "h", "optional": true }, "function": { "params": [], "decorators": [], "span": { "start": 483, "end": 513, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 488, "end": 513, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 498, "end": 507, "ctxt": 0 }, "argument": { "type": "NumericLiteral", "span": { "start": 505, "end": 506, "ctxt": 0 }, "value": 2.0 } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": true, "isOverride": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 526, "end": 531, "ctxt": 0 }, "value": "test2", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 532, "end": 538, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 532, "end": 538, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 533, "end": 538, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 535, "end": 538, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 535, "end": 538, "ctxt": 0 }, "value": "Bar", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 517, "end": 740, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 540, "end": 740, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 546, "end": 550, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 546, "end": 549, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 546, "end": 547, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 548, "end": 549, "ctxt": 0 }, "value": "a", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 555, "end": 559, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 555, "end": 558, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 555, "end": 556, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 557, "end": 558, "ctxt": 0 }, "value": "b", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 564, "end": 568, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 564, "end": 567, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 564, "end": 565, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 566, "end": 567, "ctxt": 0 }, "value": "c", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 573, "end": 577, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 573, "end": 576, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 573, "end": 574, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 575, "end": 576, "ctxt": 0 }, "value": "d", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 582, "end": 586, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 582, "end": 585, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 582, "end": 583, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 584, "end": 585, "ctxt": 0 }, "value": "e", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 591, "end": 595, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 591, "end": 594, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 591, "end": 592, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 593, "end": 594, "ctxt": 0 }, "value": "f", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 600, "end": 604, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 600, "end": 603, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 600, "end": 601, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 602, "end": 603, "ctxt": 0 }, "value": "g", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 609, "end": 624, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 613, "end": 623, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 613, "end": 615, "ctxt": 0 }, "value": "f1", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 618, "end": 623, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 618, "end": 621, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 618, "end": 619, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 620, "end": 621, "ctxt": 0 }, "value": "f", "optional": false } }, "arguments": [], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 629, "end": 651, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 633, "end": 650, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 633, "end": 635, "ctxt": 0 }, "value": "g1", "optional": false, "typeAnnotation": null }, "init": { "type": "BinaryExpression", "span": { "start": 638, "end": 650, "ctxt": 0 }, "operator": "&&", "left": { "type": "MemberExpression", "span": { "start": 638, "end": 641, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 638, "end": 639, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 640, "end": 641, "ctxt": 0 }, "value": "g", "optional": false } }, "right": { "type": "CallExpression", "span": { "start": 645, "end": 650, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 645, "end": 648, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 645, "end": 646, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 647, "end": 648, "ctxt": 0 }, "value": "g", "optional": false } }, "arguments": [], "typeArguments": null } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 656, "end": 681, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 660, "end": 680, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 660, "end": 662, "ctxt": 0 }, "value": "g2", "optional": false, "typeAnnotation": null }, "init": { "type": "ConditionalExpression", "span": { "start": 665, "end": 680, "ctxt": 0 }, "test": { "type": "MemberExpression", "span": { "start": 665, "end": 668, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 665, "end": 666, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 667, "end": 668, "ctxt": 0 }, "value": "g", "optional": false } }, "consequent": { "type": "CallExpression", "span": { "start": 671, "end": 676, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 671, "end": 674, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 671, "end": 672, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 673, "end": 674, "ctxt": 0 }, "value": "g", "optional": false } }, "arguments": [], "typeArguments": null }, "alternate": { "type": "NumericLiteral", "span": { "start": 679, "end": 680, "ctxt": 0 }, "value": 0.0 } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 686, "end": 708, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 690, "end": 707, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 690, "end": 692, "ctxt": 0 }, "value": "h1", "optional": false, "typeAnnotation": null }, "init": { "type": "BinaryExpression", "span": { "start": 695, "end": 707, "ctxt": 0 }, "operator": "&&", "left": { "type": "MemberExpression", "span": { "start": 695, "end": 698, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 695, "end": 696, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 697, "end": 698, "ctxt": 0 }, "value": "h", "optional": false } }, "right": { "type": "CallExpression", "span": { "start": 702, "end": 707, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 702, "end": 705, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 702, "end": 703, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 704, "end": 705, "ctxt": 0 }, "value": "h", "optional": false } }, "arguments": [], "typeArguments": null } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 713, "end": 738, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 717, "end": 737, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 717, "end": 719, "ctxt": 0 }, "value": "h2", "optional": false, "typeAnnotation": null }, "init": { "type": "ConditionalExpression", "span": { "start": 722, "end": 737, "ctxt": 0 }, "test": { "type": "MemberExpression", "span": { "start": 722, "end": 725, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 722, "end": 723, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 724, "end": 725, "ctxt": 0 }, "value": "h", "optional": false } }, "consequent": { "type": "CallExpression", "span": { "start": 728, "end": 733, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 728, "end": 731, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 728, "end": 729, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 730, "end": 731, "ctxt": 0 }, "value": "h", "optional": false } }, "arguments": [], "typeArguments": null }, "alternate": { "type": "NumericLiteral", "span": { "start": 736, "end": 737, "ctxt": 0 }, "value": 0.0 } }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 748, "end": 752, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 742, "end": 790, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 759, "end": 770, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 759, "end": 760, "ctxt": 0 }, "value": "a", "optional": true }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 761, "end": 769, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 763, "end": 769, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": true, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassMethod", "span": { "start": 775, "end": 788, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 775, "end": 776, "ctxt": 0 }, "value": "f", "optional": true }, "function": { "params": [], "decorators": [], "span": { "start": 775, "end": 788, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 779, "end": 787, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 781, "end": 787, "ctxt": 0 }, "kind": "number" } } }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": true, "isOverride": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 798, "end": 805, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "span": { "start": 792, "end": 863, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 825, "end": 831, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 825, "end": 826, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 829, "end": 830, "ctxt": 0 }, "value": 1.0 }, "typeAnnotation": null, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassMethod", "span": { "start": 836, "end": 861, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 836, "end": 837, "ctxt": 0 }, "value": "f", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 836, "end": 861, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 848, "end": 861, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 850, "end": 859, "ctxt": 0 }, "argument": { "type": "NumericLiteral", "span": { "start": 857, "end": 858, "ctxt": 0 }, "value": 1.0 } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 839, "end": 847, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 841, "end": 847, "ctxt": 0 }, "kind": "number" } } }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false } ], "superClass": { "type": "Identifier", "span": { "start": 814, "end": 818, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] } ], "interpreter": null }