{ "type": "Script", "span": { "start": 140, "end": 1233, "ctxt": 0 }, "body": [ { "type": "TsModuleDeclaration", "span": { "start": 140, "end": 692, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 147, "end": 158, "ctxt": 0 }, "value": "SimpleTypes", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 159, "end": 692, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 171, "end": 172, "ctxt": 0 }, "value": "S", "optional": false }, "declare": false, "span": { "start": 165, "end": 189, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 175, "end": 187, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 175, "end": 178, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 178, "end": 186, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 180, "end": 186, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 200, "end": 201, "ctxt": 0 }, "value": "T", "optional": false }, "declare": false, "span": { "start": 194, "end": 218, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 204, "end": 216, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 204, "end": 207, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 207, "end": 215, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 209, "end": 215, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "VariableDeclaration", "span": { "start": 223, "end": 232, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 227, "end": 231, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 227, "end": 228, "ctxt": 0 }, "value": "s", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 228, "end": 231, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 230, "end": 231, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 230, "end": 231, "ctxt": 0 }, "value": "S", "optional": false }, "typeParams": null } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 237, "end": 246, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 241, "end": 245, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 241, "end": 242, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 242, "end": 245, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 244, "end": 245, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 244, "end": 245, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "init": null, "definite": false } ] }, { "type": "TsInterfaceDeclaration", "span": { "start": 252, "end": 281, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 262, "end": 264, "ctxt": 0 }, "value": "S2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 265, "end": 281, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 267, "end": 279, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 267, "end": 270, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 270, "end": 278, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 272, "end": 278, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 286, "end": 315, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 296, "end": 298, "ctxt": 0 }, "value": "T2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 299, "end": 315, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 301, "end": 313, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 301, "end": 304, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 304, "end": 312, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 306, "end": 312, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "VariableDeclaration", "span": { "start": 320, "end": 331, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 324, "end": 330, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 324, "end": 326, "ctxt": 0 }, "value": "s2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 326, "end": 330, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 328, "end": 330, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 328, "end": 330, "ctxt": 0 }, "value": "S2", "optional": false }, "typeParams": null } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 336, "end": 347, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 340, "end": 346, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 340, "end": 342, "ctxt": 0 }, "value": "t2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 342, "end": 346, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 344, "end": 346, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 344, "end": 346, "ctxt": 0 }, "value": "T2", "optional": false }, "typeParams": null } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 353, "end": 376, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 357, "end": 376, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 357, "end": 358, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 358, "end": 376, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 360, "end": 376, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 362, "end": 374, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 362, "end": 365, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 365, "end": 373, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 367, "end": 373, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 381, "end": 404, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 385, "end": 404, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 385, "end": 386, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 386, "end": 404, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 388, "end": 404, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 390, "end": 402, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 390, "end": 393, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 393, "end": 401, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 395, "end": 401, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 410, "end": 431, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 414, "end": 430, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 414, "end": 416, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": null }, "init": { "type": "ObjectExpression", "span": { "start": 419, "end": 430, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 421, "end": 424, "ctxt": 0 }, "value": "foo", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 426, "end": 428, "ctxt": 0 }, "value": "", "raw": "''" } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 436, "end": 457, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 440, "end": 456, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 440, "end": 442, "ctxt": 0 }, "value": "b2", "optional": false, "typeAnnotation": null }, "init": { "type": "ObjectExpression", "span": { "start": 445, "end": 456, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 447, "end": 450, "ctxt": 0 }, "value": "foo", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 452, "end": 454, "ctxt": 0 }, "value": "", "raw": "''" } } ] }, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 463, "end": 469, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 463, "end": 468, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 463, "end": 464, "ctxt": 0 }, "value": "s", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 467, "end": 468, "ctxt": 0 }, "value": "t", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 474, "end": 480, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 474, "end": 479, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 474, "end": 475, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 478, "end": 479, "ctxt": 0 }, "value": "s", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 485, "end": 492, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 485, "end": 491, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 485, "end": 486, "ctxt": 0 }, "value": "s", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 489, "end": 491, "ctxt": 0 }, "value": "s2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 497, "end": 504, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 497, "end": 503, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 497, "end": 498, "ctxt": 0 }, "value": "s", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 501, "end": 503, "ctxt": 0 }, "value": "a2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 510, "end": 518, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 510, "end": 517, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 510, "end": 512, "ctxt": 0 }, "value": "s2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 515, "end": 517, "ctxt": 0 }, "value": "t2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 523, "end": 531, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 523, "end": 530, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 523, "end": 525, "ctxt": 0 }, "value": "t2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 528, "end": 530, "ctxt": 0 }, "value": "s2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 536, "end": 543, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 536, "end": 542, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 536, "end": 538, "ctxt": 0 }, "value": "s2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 541, "end": 542, "ctxt": 0 }, "value": "t", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 548, "end": 555, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 548, "end": 554, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 548, "end": 550, "ctxt": 0 }, "value": "s2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 553, "end": 554, "ctxt": 0 }, "value": "b", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 560, "end": 568, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 560, "end": 567, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 560, "end": 562, "ctxt": 0 }, "value": "s2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 565, "end": 567, "ctxt": 0 }, "value": "a2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 574, "end": 580, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 574, "end": 579, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 574, "end": 575, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 578, "end": 579, "ctxt": 0 }, "value": "b", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 585, "end": 591, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 585, "end": 590, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 585, "end": 586, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 589, "end": 590, "ctxt": 0 }, "value": "a", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 596, "end": 602, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 596, "end": 601, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 596, "end": 597, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 600, "end": 601, "ctxt": 0 }, "value": "s", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 607, "end": 614, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 607, "end": 613, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 607, "end": 608, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 611, "end": 613, "ctxt": 0 }, "value": "s2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 619, "end": 626, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 619, "end": 625, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 619, "end": 620, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 623, "end": 625, "ctxt": 0 }, "value": "a2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 632, "end": 640, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 632, "end": 639, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 632, "end": 634, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 637, "end": 639, "ctxt": 0 }, "value": "b2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 645, "end": 653, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 645, "end": 652, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 645, "end": 647, "ctxt": 0 }, "value": "b2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 650, "end": 652, "ctxt": 0 }, "value": "a2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 658, "end": 665, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 658, "end": 664, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 658, "end": 660, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 663, "end": 664, "ctxt": 0 }, "value": "b", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 670, "end": 678, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 670, "end": 677, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 670, "end": 672, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 675, "end": 677, "ctxt": 0 }, "value": "t2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 683, "end": 690, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 683, "end": 689, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 683, "end": 685, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 688, "end": 689, "ctxt": 0 }, "value": "t", "optional": false } } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 694, "end": 1233, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 701, "end": 712, "ctxt": 0 }, "value": "ObjectTypes", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 713, "end": 1233, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 725, "end": 726, "ctxt": 0 }, "value": "S", "optional": false }, "declare": false, "span": { "start": 719, "end": 738, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 729, "end": 736, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 729, "end": 732, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 732, "end": 735, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 734, "end": 735, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 734, "end": 735, "ctxt": 0 }, "value": "S", "optional": false }, "typeParams": null } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 749, "end": 750, "ctxt": 0 }, "value": "T", "optional": false }, "declare": false, "span": { "start": 743, "end": 762, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 753, "end": 760, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 753, "end": 756, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 756, "end": 759, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 758, "end": 759, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 758, "end": 759, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "VariableDeclaration", "span": { "start": 767, "end": 776, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 771, "end": 775, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 771, "end": 772, "ctxt": 0 }, "value": "s", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 772, "end": 775, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 774, "end": 775, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 774, "end": 775, "ctxt": 0 }, "value": "S", "optional": false }, "typeParams": null } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 781, "end": 790, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 785, "end": 789, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 785, "end": 786, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 786, "end": 789, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 788, "end": 789, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 788, "end": 789, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "init": null, "definite": false } ] }, { "type": "TsInterfaceDeclaration", "span": { "start": 796, "end": 821, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 806, "end": 808, "ctxt": 0 }, "value": "S2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 809, "end": 821, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 811, "end": 819, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 811, "end": 814, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 814, "end": 818, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 816, "end": 818, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 816, "end": 818, "ctxt": 0 }, "value": "S2", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 826, "end": 851, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 836, "end": 838, "ctxt": 0 }, "value": "T2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 839, "end": 851, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 841, "end": 849, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 841, "end": 844, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 844, "end": 848, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 846, "end": 848, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 846, "end": 848, "ctxt": 0 }, "value": "T2", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "VariableDeclaration", "span": { "start": 856, "end": 867, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 860, "end": 866, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 860, "end": 862, "ctxt": 0 }, "value": "s2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 862, "end": 866, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 864, "end": 866, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 864, "end": 866, "ctxt": 0 }, "value": "S2", "optional": false }, "typeParams": null } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 872, "end": 883, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 876, "end": 882, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 876, "end": 878, "ctxt": 0 }, "value": "t2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 878, "end": 882, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 880, "end": 882, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 880, "end": 882, "ctxt": 0 }, "value": "T2", "optional": false }, "typeParams": null } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 889, "end": 914, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 893, "end": 914, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 893, "end": 894, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 894, "end": 914, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 896, "end": 914, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 898, "end": 912, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 898, "end": 901, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 901, "end": 911, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 903, "end": 911, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 910, "end": 911, "ctxt": 0 }, "value": "a", "optional": false }, "typeArguments": null } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 919, "end": 944, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 923, "end": 944, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 923, "end": 924, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 924, "end": 944, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 926, "end": 944, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 928, "end": 942, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 928, "end": 931, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 931, "end": 941, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 933, "end": 941, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 940, "end": 941, "ctxt": 0 }, "value": "b", "optional": false }, "typeArguments": null } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 950, "end": 971, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 954, "end": 970, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 954, "end": 956, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": null }, "init": { "type": "ObjectExpression", "span": { "start": 959, "end": 970, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 961, "end": 964, "ctxt": 0 }, "value": "foo", "optional": false }, "value": { "type": "Identifier", "span": { "start": 966, "end": 968, "ctxt": 0 }, "value": "a2", "optional": false } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 976, "end": 997, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 980, "end": 996, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 980, "end": 982, "ctxt": 0 }, "value": "b2", "optional": false, "typeAnnotation": null }, "init": { "type": "ObjectExpression", "span": { "start": 985, "end": 996, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 987, "end": 990, "ctxt": 0 }, "value": "foo", "optional": false }, "value": { "type": "Identifier", "span": { "start": 992, "end": 994, "ctxt": 0 }, "value": "b2", "optional": false } } ] }, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 1003, "end": 1009, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1003, "end": 1008, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1003, "end": 1004, "ctxt": 0 }, "value": "s", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1007, "end": 1008, "ctxt": 0 }, "value": "t", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1014, "end": 1020, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1014, "end": 1019, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1014, "end": 1015, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1018, "end": 1019, "ctxt": 0 }, "value": "s", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1025, "end": 1032, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1025, "end": 1031, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1025, "end": 1026, "ctxt": 0 }, "value": "s", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1029, "end": 1031, "ctxt": 0 }, "value": "s2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1037, "end": 1044, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1037, "end": 1043, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1037, "end": 1038, "ctxt": 0 }, "value": "s", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1041, "end": 1043, "ctxt": 0 }, "value": "a2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1050, "end": 1058, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1050, "end": 1057, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1050, "end": 1052, "ctxt": 0 }, "value": "s2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1055, "end": 1057, "ctxt": 0 }, "value": "t2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1063, "end": 1071, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1063, "end": 1070, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1063, "end": 1065, "ctxt": 0 }, "value": "t2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1068, "end": 1070, "ctxt": 0 }, "value": "s2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1076, "end": 1083, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1076, "end": 1082, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1076, "end": 1078, "ctxt": 0 }, "value": "s2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1081, "end": 1082, "ctxt": 0 }, "value": "t", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1088, "end": 1095, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1088, "end": 1094, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1088, "end": 1090, "ctxt": 0 }, "value": "s2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1093, "end": 1094, "ctxt": 0 }, "value": "b", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1100, "end": 1108, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1100, "end": 1107, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1100, "end": 1102, "ctxt": 0 }, "value": "s2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1105, "end": 1107, "ctxt": 0 }, "value": "a2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1114, "end": 1120, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1114, "end": 1119, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1114, "end": 1115, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1118, "end": 1119, "ctxt": 0 }, "value": "b", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1125, "end": 1131, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1125, "end": 1130, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1125, "end": 1126, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1129, "end": 1130, "ctxt": 0 }, "value": "a", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1136, "end": 1142, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1136, "end": 1141, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1136, "end": 1137, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1140, "end": 1141, "ctxt": 0 }, "value": "s", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1147, "end": 1154, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1147, "end": 1153, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1147, "end": 1148, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1151, "end": 1153, "ctxt": 0 }, "value": "s2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1159, "end": 1166, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1159, "end": 1165, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1159, "end": 1160, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1163, "end": 1165, "ctxt": 0 }, "value": "a2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1172, "end": 1180, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1172, "end": 1179, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1172, "end": 1174, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1177, "end": 1179, "ctxt": 0 }, "value": "b2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1185, "end": 1193, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1185, "end": 1192, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1185, "end": 1187, "ctxt": 0 }, "value": "b2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1190, "end": 1192, "ctxt": 0 }, "value": "a2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1198, "end": 1205, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1198, "end": 1204, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1198, "end": 1200, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1203, "end": 1204, "ctxt": 0 }, "value": "b", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1210, "end": 1218, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1210, "end": 1217, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1210, "end": 1212, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1215, "end": 1217, "ctxt": 0 }, "value": "t2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1223, "end": 1230, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1223, "end": 1229, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1223, "end": 1225, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1228, "end": 1229, "ctxt": 0 }, "value": "t", "optional": false } } } ] } } ], "interpreter": null }