{ "type": "Script", "span": { "start": 28, "end": 1105, "ctxt": 0 }, "body": [ { "type": "VariableDeclaration", "span": { "start": 28, "end": 41, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 32, "end": 41, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 32, "end": 33, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 33, "end": 41, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 35, "end": 41, "ctxt": 0 }, "kind": "object" } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 42, "end": 70, "ctxt": 0 }, "kind": "var", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 54, "end": 70, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 54, "end": 55, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 55, "end": 70, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 57, "end": 70, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 57, "end": 63, "ctxt": 0 }, "kind": "object" }, { "type": "TsKeywordType", "span": { "start": 66, "end": 70, "ctxt": 0 }, "kind": "null" } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 71, "end": 104, "ctxt": 0 }, "kind": "var", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 83, "end": 104, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 83, "end": 84, "ctxt": 0 }, "value": "c", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 84, "end": 104, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 86, "end": 104, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 86, "end": 92, "ctxt": 0 }, "kind": "object" }, { "type": "TsKeywordType", "span": { "start": 95, "end": 104, "ctxt": 0 }, "kind": "undefined" } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 105, "end": 145, "ctxt": 0 }, "kind": "var", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 117, "end": 145, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 117, "end": 118, "ctxt": 0 }, "value": "d", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 118, "end": 145, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 120, "end": 145, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 120, "end": 126, "ctxt": 0 }, "kind": "object" }, { "type": "TsKeywordType", "span": { "start": 129, "end": 133, "ctxt": 0 }, "kind": "null" }, { "type": "TsKeywordType", "span": { "start": 136, "end": 145, "ctxt": 0 }, "kind": "undefined" } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 146, "end": 166, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 150, "end": 166, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 150, "end": 151, "ctxt": 0 }, "value": "e", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 151, "end": 166, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 153, "end": 166, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 153, "end": 159, "ctxt": 0 }, "kind": "object" }, { "type": "TsKeywordType", "span": { "start": 162, "end": 166, "ctxt": 0 }, "kind": "null" } ] } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 167, "end": 178, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 167, "end": 177, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 167, "end": 168, "ctxt": 0 }, "value": "a", "optional": false }, "property": { "type": "Identifier", "span": { "start": 169, "end": 177, "ctxt": 0 }, "value": "toString", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 188, "end": 202, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 188, "end": 201, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 188, "end": 189, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 192, "end": 201, "ctxt": 0 }, "value": "undefined", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 212, "end": 221, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 212, "end": 220, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 212, "end": 213, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "NullLiteral", "span": { "start": 216, "end": 220, "ctxt": 0 } } } }, { "type": "ExpressionStatement", "span": { "start": 231, "end": 237, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 231, "end": 236, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 231, "end": 232, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 235, "end": 236, "ctxt": 0 }, "value": "b", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 247, "end": 253, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 247, "end": 252, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 247, "end": 248, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 251, "end": 252, "ctxt": 0 }, "value": "c", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 263, "end": 269, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 263, "end": 268, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 263, "end": 264, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 267, "end": 268, "ctxt": 0 }, "value": "d", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 280, "end": 286, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 280, "end": 285, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 280, "end": 281, "ctxt": 0 }, "value": "e", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 284, "end": 285, "ctxt": 0 }, "value": "a", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 293, "end": 299, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 293, "end": 298, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 293, "end": 294, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 297, "end": 298, "ctxt": 0 }, "value": "e", "optional": false } } }, { "type": "IfStatement", "span": { "start": 307, "end": 371, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 311, "end": 332, "ctxt": 0 }, "operator": "!==", "left": { "type": "UnaryExpression", "span": { "start": 311, "end": 319, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "Identifier", "span": { "start": 318, "end": 319, "ctxt": 0 }, "value": "b", "optional": false } }, "right": { "type": "StringLiteral", "span": { "start": 324, "end": 332, "ctxt": 0 }, "value": "object", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, "consequent": { "type": "BlockStatement", "span": { "start": 334, "end": 371, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 340, "end": 353, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 340, "end": 352, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 340, "end": 350, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 340, "end": 341, "ctxt": 0 }, "value": "b", "optional": false }, "property": { "type": "Identifier", "span": { "start": 342, "end": 350, "ctxt": 0 }, "value": "toString", "optional": false } }, "arguments": [], "typeArguments": null } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 373, "end": 442, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 377, "end": 398, "ctxt": 0 }, "operator": "===", "left": { "type": "UnaryExpression", "span": { "start": 377, "end": 385, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "Identifier", "span": { "start": 384, "end": 385, "ctxt": 0 }, "value": "b", "optional": false } }, "right": { "type": "StringLiteral", "span": { "start": 390, "end": 398, "ctxt": 0 }, "value": "object", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, "consequent": { "type": "BlockStatement", "span": { "start": 400, "end": 442, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 406, "end": 412, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 406, "end": 411, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 406, "end": 407, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 410, "end": 411, "ctxt": 0 }, "value": "b", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 444, "end": 580, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 448, "end": 469, "ctxt": 0 }, "operator": "===", "left": { "type": "UnaryExpression", "span": { "start": 448, "end": 456, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "Identifier", "span": { "start": 455, "end": 456, "ctxt": 0 }, "value": "d", "optional": false } }, "right": { "type": "StringLiteral", "span": { "start": 461, "end": 469, "ctxt": 0 }, "value": "object", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, "consequent": { "type": "BlockStatement", "span": { "start": 471, "end": 533, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 477, "end": 483, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 477, "end": 482, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 477, "end": 478, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 481, "end": 482, "ctxt": 0 }, "value": "d", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 494, "end": 507, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 494, "end": 506, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 494, "end": 504, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 494, "end": 495, "ctxt": 0 }, "value": "d", "optional": false }, "property": { "type": "Identifier", "span": { "start": 496, "end": 504, "ctxt": 0 }, "value": "toString", "optional": false } }, "arguments": [], "typeArguments": null } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 539, "end": 580, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 545, "end": 558, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 545, "end": 557, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 545, "end": 555, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 545, "end": 546, "ctxt": 0 }, "value": "d", "optional": false }, "property": { "type": "Identifier", "span": { "start": 547, "end": 555, "ctxt": 0 }, "value": "toString", "optional": false } }, "arguments": [], "typeArguments": null } } ] } }, { "type": "IfStatement", "span": { "start": 582, "end": 682, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 586, "end": 595, "ctxt": 0 }, "operator": "==", "left": { "type": "Identifier", "span": { "start": 586, "end": 587, "ctxt": 0 }, "value": "d", "optional": false }, "right": { "type": "NullLiteral", "span": { "start": 591, "end": 595, "ctxt": 0 } } }, "consequent": { "type": "BlockStatement", "span": { "start": 597, "end": 645, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 603, "end": 616, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 603, "end": 615, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 603, "end": 613, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 603, "end": 604, "ctxt": 0 }, "value": "d", "optional": false }, "property": { "type": "Identifier", "span": { "start": 605, "end": 613, "ctxt": 0 }, "value": "toString", "optional": false } }, "arguments": [], "typeArguments": null } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 651, "end": 682, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 657, "end": 670, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 657, "end": 669, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 657, "end": 667, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 657, "end": 658, "ctxt": 0 }, "value": "d", "optional": false }, "property": { "type": "Identifier", "span": { "start": 659, "end": 667, "ctxt": 0 }, "value": "toString", "optional": false } }, "arguments": [], "typeArguments": null } } ] } }, { "type": "IfStatement", "span": { "start": 684, "end": 792, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 688, "end": 698, "ctxt": 0 }, "operator": "===", "left": { "type": "Identifier", "span": { "start": 688, "end": 689, "ctxt": 0 }, "value": "d", "optional": false }, "right": { "type": "NullLiteral", "span": { "start": 694, "end": 698, "ctxt": 0 } } }, "consequent": { "type": "BlockStatement", "span": { "start": 700, "end": 736, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 706, "end": 719, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 706, "end": 718, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 706, "end": 716, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 706, "end": 707, "ctxt": 0 }, "value": "d", "optional": false }, "property": { "type": "Identifier", "span": { "start": 708, "end": 716, "ctxt": 0 }, "value": "toString", "optional": false } }, "arguments": [], "typeArguments": null } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 742, "end": 792, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 748, "end": 761, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 748, "end": 760, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 748, "end": 758, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 748, "end": 749, "ctxt": 0 }, "value": "d", "optional": false }, "property": { "type": "Identifier", "span": { "start": 750, "end": 758, "ctxt": 0 }, "value": "toString", "optional": false } }, "arguments": [], "typeArguments": null } } ] } }, { "type": "IfStatement", "span": { "start": 794, "end": 916, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 798, "end": 822, "ctxt": 0 }, "operator": "===", "left": { "type": "UnaryExpression", "span": { "start": 798, "end": 806, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "Identifier", "span": { "start": 805, "end": 806, "ctxt": 0 }, "value": "d", "optional": false } }, "right": { "type": "StringLiteral", "span": { "start": 811, "end": 822, "ctxt": 0 }, "value": "undefined", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, "consequent": { "type": "BlockStatement", "span": { "start": 824, "end": 865, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 830, "end": 843, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 830, "end": 842, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 830, "end": 840, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 830, "end": 831, "ctxt": 0 }, "value": "d", "optional": false }, "property": { "type": "Identifier", "span": { "start": 832, "end": 840, "ctxt": 0 }, "value": "toString", "optional": false } }, "arguments": [], "typeArguments": null } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 871, "end": 916, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 877, "end": 890, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 877, "end": 889, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 877, "end": 887, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 877, "end": 878, "ctxt": 0 }, "value": "d", "optional": false }, "property": { "type": "Identifier", "span": { "start": 879, "end": 887, "ctxt": 0 }, "value": "toString", "optional": false } }, "arguments": [], "typeArguments": null } } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 918, "end": 954, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 928, "end": 933, "ctxt": 0 }, "value": "Proxy", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 933, "end": 951, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 934, "end": 950, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 934, "end": 935, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsKeywordType", "span": { "start": 944, "end": 950, "ctxt": 0 }, "kind": "object" }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 952, "end": 954, "ctxt": 0 }, "body": [] } }, { "type": "VariableDeclaration", "span": { "start": 956, "end": 977, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 960, "end": 976, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 960, "end": 961, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 961, "end": 976, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 963, "end": 976, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 963, "end": 968, "ctxt": 0 }, "value": "Proxy", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 968, "end": 976, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 969, "end": 975, "ctxt": 0 }, "kind": "number" } ] } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 987, "end": 1006, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 991, "end": 1005, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 991, "end": 992, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 992, "end": 1005, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 994, "end": 1005, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 994, "end": 999, "ctxt": 0 }, "value": "Proxy", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 999, "end": 1005, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 1000, "end": 1004, "ctxt": 0 }, "kind": "null" } ] } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1016, "end": 1040, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1020, "end": 1039, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1020, "end": 1021, "ctxt": 0 }, "value": "z", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1021, "end": 1039, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1023, "end": 1039, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1023, "end": 1028, "ctxt": 0 }, "value": "Proxy", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1028, "end": 1039, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 1029, "end": 1038, "ctxt": 0 }, "kind": "undefined" } ] } } } }, "init": null, "definite": false } ] }, { "type": "TsInterfaceDeclaration", "span": { "start": 1051, "end": 1084, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1061, "end": 1065, "ctxt": 0 }, "value": "Blah", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 1066, "end": 1084, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1070, "end": 1082, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1070, "end": 1073, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1073, "end": 1081, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1075, "end": 1081, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, { "type": "VariableDeclaration", "span": { "start": 1086, "end": 1105, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1090, "end": 1104, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1090, "end": 1091, "ctxt": 0 }, "value": "u", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1091, "end": 1104, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1093, "end": 1104, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1093, "end": 1098, "ctxt": 0 }, "value": "Proxy", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1098, "end": 1104, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1099, "end": 1103, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1099, "end": 1103, "ctxt": 0 }, "value": "Blah", "optional": false }, "typeParams": null } ] } } } }, "init": null, "definite": false } ] } ], "interpreter": null }