{ "type": "Script", "span": { "start": 60, "end": 609, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 60, "end": 242, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 70, "end": 71, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 72, "end": 242, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 78, "end": 203, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 78, "end": 81, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 81, "end": 203, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 83, "end": 203, "ctxt": 0 }, "members": [ { "type": "TsMethodSignature", "span": { "start": 93, "end": 156, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 93, "end": 96, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "params": [], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 98, "end": 156, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 100, "end": 156, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 114, "end": 146, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 114, "end": 117, "ctxt": 0 }, "value": "baz", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 117, "end": 146, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 119, "end": 146, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 119, "end": 120, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 119, "end": 120, "ctxt": 0 }, "value": 0.0 } }, { "type": "TsLiteralType", "span": { "start": 123, "end": 124, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 123, "end": 124, "ctxt": 0 }, "value": 1.0 } }, { "type": "TsLiteralType", "span": { "start": 127, "end": 129, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 127, "end": 129, "ctxt": 0 }, "value": 42.0 } }, { "type": "TsKeywordType", "span": { "start": 132, "end": 141, "ctxt": 0 }, "kind": "undefined" }, { "type": "TsLiteralType", "span": { "start": 144, "end": 146, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 144, "end": 146, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 165, "end": 197, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 165, "end": 168, "ctxt": 0 }, "value": "baz", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 168, "end": 197, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 170, "end": 197, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 170, "end": 171, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 170, "end": 171, "ctxt": 0 }, "value": 0.0 } }, { "type": "TsLiteralType", "span": { "start": 174, "end": 175, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 174, "end": 175, "ctxt": 0 }, "value": 1.0 } }, { "type": "TsLiteralType", "span": { "start": 178, "end": 180, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 178, "end": 180, "ctxt": 0 }, "value": 42.0 } }, { "type": "TsKeywordType", "span": { "start": 183, "end": 192, "ctxt": 0 }, "kind": "undefined" }, { "type": "TsLiteralType", "span": { "start": 195, "end": 197, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 195, "end": 197, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 208, "end": 240, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 208, "end": 211, "ctxt": 0 }, "value": "baz", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 211, "end": 240, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 213, "end": 240, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 213, "end": 214, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 213, "end": 214, "ctxt": 0 }, "value": 0.0 } }, { "type": "TsLiteralType", "span": { "start": 217, "end": 218, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 217, "end": 218, "ctxt": 0 }, "value": 1.0 } }, { "type": "TsLiteralType", "span": { "start": 221, "end": 223, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 221, "end": 223, "ctxt": 0 }, "value": 42.0 } }, { "type": "TsKeywordType", "span": { "start": 226, "end": 235, "ctxt": 0 }, "kind": "undefined" }, { "type": "TsLiteralType", "span": { "start": 238, "end": 240, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 238, "end": 240, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } }, "typeParams": null } ] } }, { "type": "VariableDeclaration", "span": { "start": 244, "end": 267, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 258, "end": 267, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 258, "end": 264, "ctxt": 0 }, "value": "result", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 264, "end": 267, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 266, "end": 267, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 266, "end": 267, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 268, "end": 286, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 282, "end": 286, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 282, "end": 283, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 283, "end": 286, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 285, "end": 286, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 285, "end": 286, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 287, "end": 305, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 301, "end": 305, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 301, "end": 302, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 302, "end": 305, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 304, "end": 305, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 304, "end": 305, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 306, "end": 324, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 320, "end": 324, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 320, "end": 321, "ctxt": 0 }, "value": "c", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 321, "end": 324, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 323, "end": 324, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 323, "end": 324, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 326, "end": 346, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 326, "end": 346, "ctxt": 0 }, "operator": "&&=", "left": { "type": "MemberExpression", "span": { "start": 326, "end": 331, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 326, "end": 327, "ctxt": 0 }, "value": "a", "optional": false }, "property": { "type": "Identifier", "span": { "start": 328, "end": 331, "ctxt": 0 }, "value": "baz", "optional": false } }, "right": { "type": "MemberExpression", "span": { "start": 336, "end": 346, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 336, "end": 342, "ctxt": 0 }, "value": "result", "optional": false }, "property": { "type": "Identifier", "span": { "start": 343, "end": 346, "ctxt": 0 }, "value": "baz", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 347, "end": 367, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 347, "end": 367, "ctxt": 0 }, "operator": "||=", "left": { "type": "MemberExpression", "span": { "start": 347, "end": 352, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 347, "end": 348, "ctxt": 0 }, "value": "b", "optional": false }, "property": { "type": "Identifier", "span": { "start": 349, "end": 352, "ctxt": 0 }, "value": "baz", "optional": false } }, "right": { "type": "MemberExpression", "span": { "start": 357, "end": 367, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 357, "end": 363, "ctxt": 0 }, "value": "result", "optional": false }, "property": { "type": "Identifier", "span": { "start": 364, "end": 367, "ctxt": 0 }, "value": "baz", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 368, "end": 388, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 368, "end": 388, "ctxt": 0 }, "operator": "??=", "left": { "type": "MemberExpression", "span": { "start": 368, "end": 373, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 368, "end": 369, "ctxt": 0 }, "value": "c", "optional": false }, "property": { "type": "Identifier", "span": { "start": 370, "end": 373, "ctxt": 0 }, "value": "baz", "optional": false } }, "right": { "type": "MemberExpression", "span": { "start": 378, "end": 388, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 378, "end": 384, "ctxt": 0 }, "value": "result", "optional": false }, "property": { "type": "Identifier", "span": { "start": 385, "end": 388, "ctxt": 0 }, "value": "baz", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 390, "end": 421, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 390, "end": 421, "ctxt": 0 }, "operator": "&&=", "left": { "type": "MemberExpression", "span": { "start": 390, "end": 402, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 390, "end": 395, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 390, "end": 391, "ctxt": 0 }, "value": "a", "optional": false }, "property": { "type": "Identifier", "span": { "start": 392, "end": 395, "ctxt": 0 }, "value": "foo", "optional": false } }, "property": { "type": "Computed", "span": { "start": 395, "end": 402, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 396, "end": 401, "ctxt": 0 }, "value": "baz", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "right": { "type": "MemberExpression", "span": { "start": 407, "end": 421, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 407, "end": 417, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 407, "end": 413, "ctxt": 0 }, "value": "result", "optional": false }, "property": { "type": "Identifier", "span": { "start": 414, "end": 417, "ctxt": 0 }, "value": "foo", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 418, "end": 421, "ctxt": 0 }, "value": "baz", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 422, "end": 453, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 422, "end": 453, "ctxt": 0 }, "operator": "||=", "left": { "type": "MemberExpression", "span": { "start": 422, "end": 434, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 422, "end": 427, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 422, "end": 423, "ctxt": 0 }, "value": "b", "optional": false }, "property": { "type": "Identifier", "span": { "start": 424, "end": 427, "ctxt": 0 }, "value": "foo", "optional": false } }, "property": { "type": "Computed", "span": { "start": 427, "end": 434, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 428, "end": 433, "ctxt": 0 }, "value": "baz", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "right": { "type": "MemberExpression", "span": { "start": 439, "end": 453, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 439, "end": 449, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 439, "end": 445, "ctxt": 0 }, "value": "result", "optional": false }, "property": { "type": "Identifier", "span": { "start": 446, "end": 449, "ctxt": 0 }, "value": "foo", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 450, "end": 453, "ctxt": 0 }, "value": "baz", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 454, "end": 485, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 454, "end": 485, "ctxt": 0 }, "operator": "??=", "left": { "type": "MemberExpression", "span": { "start": 454, "end": 466, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 454, "end": 459, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 454, "end": 455, "ctxt": 0 }, "value": "c", "optional": false }, "property": { "type": "Identifier", "span": { "start": 456, "end": 459, "ctxt": 0 }, "value": "foo", "optional": false } }, "property": { "type": "Computed", "span": { "start": 459, "end": 466, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 460, "end": 465, "ctxt": 0 }, "value": "baz", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "right": { "type": "MemberExpression", "span": { "start": 471, "end": 485, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 471, "end": 481, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 471, "end": 477, "ctxt": 0 }, "value": "result", "optional": false }, "property": { "type": "Identifier", "span": { "start": 478, "end": 481, "ctxt": 0 }, "value": "foo", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 482, "end": 485, "ctxt": 0 }, "value": "baz", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 487, "end": 527, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 487, "end": 527, "ctxt": 0 }, "operator": "&&=", "left": { "type": "MemberExpression", "span": { "start": 487, "end": 502, "ctxt": 0 }, "object": { "type": "CallExpression", "span": { "start": 487, "end": 498, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 487, "end": 496, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 487, "end": 492, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 487, "end": 488, "ctxt": 0 }, "value": "a", "optional": false }, "property": { "type": "Identifier", "span": { "start": 489, "end": 492, "ctxt": 0 }, "value": "foo", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 493, "end": 496, "ctxt": 0 }, "value": "bar", "optional": false } }, "arguments": [], "typeArguments": null }, "property": { "type": "Identifier", "span": { "start": 499, "end": 502, "ctxt": 0 }, "value": "baz", "optional": false } }, "right": { "type": "MemberExpression", "span": { "start": 507, "end": 527, "ctxt": 0 }, "object": { "type": "CallExpression", "span": { "start": 507, "end": 523, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 507, "end": 521, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 507, "end": 517, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 507, "end": 513, "ctxt": 0 }, "value": "result", "optional": false }, "property": { "type": "Identifier", "span": { "start": 514, "end": 517, "ctxt": 0 }, "value": "foo", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 518, "end": 521, "ctxt": 0 }, "value": "bar", "optional": false } }, "arguments": [], "typeArguments": null }, "property": { "type": "Identifier", "span": { "start": 524, "end": 527, "ctxt": 0 }, "value": "baz", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 528, "end": 568, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 528, "end": 568, "ctxt": 0 }, "operator": "||=", "left": { "type": "MemberExpression", "span": { "start": 528, "end": 543, "ctxt": 0 }, "object": { "type": "CallExpression", "span": { "start": 528, "end": 539, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 528, "end": 537, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 528, "end": 533, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 528, "end": 529, "ctxt": 0 }, "value": "b", "optional": false }, "property": { "type": "Identifier", "span": { "start": 530, "end": 533, "ctxt": 0 }, "value": "foo", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 534, "end": 537, "ctxt": 0 }, "value": "bar", "optional": false } }, "arguments": [], "typeArguments": null }, "property": { "type": "Identifier", "span": { "start": 540, "end": 543, "ctxt": 0 }, "value": "baz", "optional": false } }, "right": { "type": "MemberExpression", "span": { "start": 548, "end": 568, "ctxt": 0 }, "object": { "type": "CallExpression", "span": { "start": 548, "end": 564, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 548, "end": 562, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 548, "end": 558, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 548, "end": 554, "ctxt": 0 }, "value": "result", "optional": false }, "property": { "type": "Identifier", "span": { "start": 555, "end": 558, "ctxt": 0 }, "value": "foo", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 559, "end": 562, "ctxt": 0 }, "value": "bar", "optional": false } }, "arguments": [], "typeArguments": null }, "property": { "type": "Identifier", "span": { "start": 565, "end": 568, "ctxt": 0 }, "value": "baz", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 569, "end": 609, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 569, "end": 609, "ctxt": 0 }, "operator": "??=", "left": { "type": "MemberExpression", "span": { "start": 569, "end": 584, "ctxt": 0 }, "object": { "type": "CallExpression", "span": { "start": 569, "end": 580, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 569, "end": 578, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 569, "end": 574, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 569, "end": 570, "ctxt": 0 }, "value": "c", "optional": false }, "property": { "type": "Identifier", "span": { "start": 571, "end": 574, "ctxt": 0 }, "value": "foo", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 575, "end": 578, "ctxt": 0 }, "value": "bar", "optional": false } }, "arguments": [], "typeArguments": null }, "property": { "type": "Identifier", "span": { "start": 581, "end": 584, "ctxt": 0 }, "value": "baz", "optional": false } }, "right": { "type": "MemberExpression", "span": { "start": 589, "end": 609, "ctxt": 0 }, "object": { "type": "CallExpression", "span": { "start": 589, "end": 605, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 589, "end": 603, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 589, "end": 599, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 589, "end": 595, "ctxt": 0 }, "value": "result", "optional": false }, "property": { "type": "Identifier", "span": { "start": 596, "end": 599, "ctxt": 0 }, "value": "foo", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 600, "end": 603, "ctxt": 0 }, "value": "bar", "optional": false } }, "arguments": [], "typeArguments": null }, "property": { "type": "Identifier", "span": { "start": 606, "end": 609, "ctxt": 0 }, "value": "baz", "optional": false } } } } ], "interpreter": null }