{ "type": "Script", "span": { "start": 64, "end": 4037, "ctxt": 0 }, "body": [ { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 81, "end": 87, "ctxt": 0 }, "value": "callIt", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 91, "end": 158, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 91, "end": 158, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 94, "end": 158, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 96, "end": 158, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 102, "end": 128, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 102, "end": 109, "ctxt": 0 }, "value": "produce", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 109, "end": 127, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 111, "end": 127, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 112, "end": 121, "ctxt": 0 }, "value": "n", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 113, "end": 121, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 115, "end": 121, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 123, "end": 127, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 126, "end": 127, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 126, "end": 127, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 133, "end": 156, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 133, "end": 140, "ctxt": 0 }, "value": "consume", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 140, "end": 156, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 142, "end": 156, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 143, "end": 147, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 144, "end": 147, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 146, "end": 147, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 146, "end": 147, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 149, "end": 156, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 152, "end": 156, "ctxt": 0 }, "kind": "void" } } } }, "typeParams": null } ] } } } } ], "decorators": [], "span": { "start": 64, "end": 166, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 87, "end": 90, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 88, "end": 89, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 88, "end": 89, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 159, "end": 165, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 161, "end": 165, "ctxt": 0 }, "kind": "void" } } }, { "type": "ExpressionStatement", "span": { "start": 168, "end": 232, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 168, "end": 231, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 168, "end": 174, "ctxt": 0 }, "value": "callIt", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 175, "end": 230, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 181, "end": 188, "ctxt": 0 }, "value": "produce", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 190, "end": 197, "ctxt": 0 }, "params": [], "body": { "type": "NumericLiteral", "span": { "start": 196, "end": 197, "ctxt": 0 }, "value": 0.0, "raw": "0" }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 203, "end": 210, "ctxt": 0 }, "value": "consume", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 212, "end": 228, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 212, "end": 213, "ctxt": 0 }, "value": "n", "optional": false, "typeAnnotation": null } ], "body": { "type": "CallExpression", "span": { "start": 217, "end": 228, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 217, "end": 226, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 217, "end": 218, "ctxt": 0 }, "value": "n", "optional": false }, "property": { "type": "Identifier", "span": { "start": 219, "end": 226, "ctxt": 0 }, "value": "toFixed", "optional": false } }, "arguments": [], "typeArguments": null }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 234, "end": 299, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 234, "end": 298, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 234, "end": 240, "ctxt": 0 }, "value": "callIt", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 241, "end": 297, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 247, "end": 254, "ctxt": 0 }, "value": "produce", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 256, "end": 263, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 256, "end": 258, "ctxt": 0 }, "value": "_a", "optional": false, "typeAnnotation": null } ], "body": { "type": "NumericLiteral", "span": { "start": 262, "end": 263, "ctxt": 0 }, "value": 0.0, "raw": "0" }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 269, "end": 276, "ctxt": 0 }, "value": "consume", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 278, "end": 294, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 278, "end": 279, "ctxt": 0 }, "value": "n", "optional": false, "typeAnnotation": null } ], "body": { "type": "CallExpression", "span": { "start": 283, "end": 294, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 283, "end": 292, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 283, "end": 284, "ctxt": 0 }, "value": "n", "optional": false }, "property": { "type": "Identifier", "span": { "start": 285, "end": 292, "ctxt": 0 }, "value": "toFixed", "optional": false } }, "arguments": [], "typeArguments": null }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 301, "end": 384, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 301, "end": 383, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 301, "end": 307, "ctxt": 0 }, "value": "callIt", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 308, "end": 382, "ctxt": 0 }, "properties": [ { "type": "MethodProperty", "key": { "type": "Identifier", "span": { "start": 314, "end": 321, "ctxt": 0 }, "value": "produce", "optional": false }, "params": [], "decorators": [], "span": { "start": 314, "end": 349, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 324, "end": 349, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 334, "end": 343, "ctxt": 0 }, "argument": { "type": "NumericLiteral", "span": { "start": 341, "end": 342, "ctxt": 0 }, "value": 0.0, "raw": "0" } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 355, "end": 362, "ctxt": 0 }, "value": "consume", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 364, "end": 380, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 364, "end": 365, "ctxt": 0 }, "value": "n", "optional": false, "typeAnnotation": null } ], "body": { "type": "CallExpression", "span": { "start": 369, "end": 380, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 369, "end": 378, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 369, "end": 370, "ctxt": 0 }, "value": "n", "optional": false }, "property": { "type": "Identifier", "span": { "start": 371, "end": 378, "ctxt": 0 }, "value": "toFixed", "optional": false } }, "arguments": [], "typeArguments": null }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] } } ], "typeArguments": null } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 403, "end": 410, "ctxt": 0 }, "value": "callItT", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 414, "end": 453, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 414, "end": 453, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 417, "end": 453, "ctxt": 0 }, "typeAnnotation": { "type": "TsTupleType", "span": { "start": 419, "end": 453, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 420, "end": 436, "ctxt": 0 }, "label": null, "ty": { "type": "TsFunctionType", "span": { "start": 420, "end": 436, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 421, "end": 430, "ctxt": 0 }, "value": "n", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 422, "end": 430, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 424, "end": 430, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 432, "end": 436, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 435, "end": 436, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 435, "end": 436, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "TsTupleElement", "span": { "start": 438, "end": 452, "ctxt": 0 }, "label": null, "ty": { "type": "TsFunctionType", "span": { "start": 438, "end": 452, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 439, "end": 443, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 440, "end": 443, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 442, "end": 443, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 442, "end": 443, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 445, "end": 452, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 448, "end": 452, "ctxt": 0 }, "kind": "void" } } } } ] } } } } ], "decorators": [], "span": { "start": 386, "end": 461, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 410, "end": 413, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 411, "end": 412, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 411, "end": 412, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 454, "end": 460, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 456, "end": 460, "ctxt": 0 }, "kind": "void" } } }, { "type": "ExpressionStatement", "span": { "start": 463, "end": 500, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 463, "end": 499, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 463, "end": 470, "ctxt": 0 }, "value": "callItT", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ArrayExpression", "span": { "start": 471, "end": 498, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 472, "end": 479, "ctxt": 0 }, "params": [], "body": { "type": "NumericLiteral", "span": { "start": 478, "end": 479, "ctxt": 0 }, "value": 0.0, "raw": "0" }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 481, "end": 497, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 481, "end": 482, "ctxt": 0 }, "value": "n", "optional": false, "typeAnnotation": null } ], "body": { "type": "CallExpression", "span": { "start": 486, "end": 497, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 486, "end": 495, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 486, "end": 487, "ctxt": 0 }, "value": "n", "optional": false }, "property": { "type": "Identifier", "span": { "start": 488, "end": 495, "ctxt": 0 }, "value": "toFixed", "optional": false } }, "arguments": [], "typeArguments": null }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 501, "end": 538, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 501, "end": 537, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 501, "end": 508, "ctxt": 0 }, "value": "callItT", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ArrayExpression", "span": { "start": 509, "end": 536, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 510, "end": 517, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 510, "end": 512, "ctxt": 0 }, "value": "_a", "optional": false, "typeAnnotation": null } ], "body": { "type": "NumericLiteral", "span": { "start": 516, "end": 517, "ctxt": 0 }, "value": 0.0, "raw": "0" }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 519, "end": 535, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 519, "end": 520, "ctxt": 0 }, "value": "n", "optional": false, "typeAnnotation": null } ], "body": { "type": "CallExpression", "span": { "start": 524, "end": 535, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 524, "end": 533, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 524, "end": 525, "ctxt": 0 }, "value": "n", "optional": false }, "property": { "type": "Identifier", "span": { "start": 526, "end": 533, "ctxt": 0 }, "value": "toFixed", "optional": false } }, "arguments": [], "typeArguments": null }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] } } ], "typeArguments": null } }, { "type": "TsInterfaceDeclaration", "span": { "start": 562, "end": 684, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 572, "end": 583, "ctxt": 0 }, "value": "MyInterface", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 583, "end": 586, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 584, "end": 585, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 584, "end": 585, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 587, "end": 684, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 593, "end": 635, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 593, "end": 608, "ctxt": 0 }, "value": "retrieveGeneric", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 608, "end": 634, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 610, "end": 634, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 611, "end": 628, "ctxt": 0 }, "value": "parameter", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 620, "end": 628, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 622, "end": 628, "ctxt": 0 }, "kind": "string" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 630, "end": 634, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 633, "end": 634, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 633, "end": 634, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 640, "end": 682, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 640, "end": 658, "ctxt": 0 }, "value": "operateWithGeneric", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 658, "end": 682, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 660, "end": 682, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 661, "end": 671, "ctxt": 0 }, "value": "generic", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 668, "end": 671, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 670, "end": 671, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 670, "end": 671, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 673, "end": 682, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 676, "end": 682, "ctxt": 0 }, "kind": "string" } } } }, "typeParams": null } ] } }, { "type": "VariableDeclaration", "span": { "start": 686, "end": 746, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 692, "end": 745, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 692, "end": 703, "ctxt": 0 }, "value": "inferTypeFn", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 706, "end": 745, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 710, "end": 733, "ctxt": 0 }, "value": "generic", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 717, "end": 733, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 719, "end": 733, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 719, "end": 730, "ctxt": 0 }, "value": "MyInterface", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 730, "end": 733, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 731, "end": 732, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 731, "end": 732, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } } } ], "body": { "type": "Identifier", "span": { "start": 738, "end": 745, "ctxt": 0 }, "value": "generic", "optional": false }, "async": false, "generator": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 706, "end": 709, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 707, "end": 708, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 707, "end": 708, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 748, "end": 873, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 754, "end": 872, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 754, "end": 763, "ctxt": 0 }, "value": "myGeneric", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 766, "end": 872, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 766, "end": 777, "ctxt": 0 }, "value": "inferTypeFn", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 778, "end": 871, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 784, "end": 799, "ctxt": 0 }, "value": "retrieveGeneric", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 801, "end": 815, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 801, "end": 810, "ctxt": 0 }, "value": "parameter", "optional": false, "typeAnnotation": null } ], "body": { "type": "NumericLiteral", "span": { "start": 814, "end": 815, "ctxt": 0 }, "value": 5.0, "raw": "5" }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 821, "end": 839, "ctxt": 0 }, "value": "operateWithGeneric", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 841, "end": 869, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 841, "end": 848, "ctxt": 0 }, "value": "generic", "optional": false, "typeAnnotation": null } ], "body": { "type": "CallExpression", "span": { "start": 852, "end": 869, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 852, "end": 867, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 852, "end": 859, "ctxt": 0 }, "value": "generic", "optional": false }, "property": { "type": "Identifier", "span": { "start": 860, "end": 867, "ctxt": 0 }, "value": "toFixed", "optional": false } }, "arguments": [], "typeArguments": null }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] } } ], "typeArguments": null }, "definite": false } ] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 901, "end": 905, "ctxt": 0 }, "value": "make", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 909, "end": 953, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 909, "end": 953, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 910, "end": 953, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 912, "end": 953, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 914, "end": 927, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 914, "end": 923, "ctxt": 0 }, "value": "mutations", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 923, "end": 926, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 925, "end": 926, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 925, "end": 926, "ctxt": 0 }, "value": "M", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 929, "end": 951, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 929, "end": 935, "ctxt": 0 }, "value": "action", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 935, "end": 951, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 937, "end": 951, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 938, "end": 942, "ctxt": 0 }, "value": "m", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 939, "end": 942, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 941, "end": 942, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 941, "end": 942, "ctxt": 0 }, "value": "M", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 944, "end": 951, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 947, "end": 951, "ctxt": 0 }, "kind": "void" } } } }, "typeParams": null } ] } } } } ], "decorators": [], "span": { "start": 892, "end": 958, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 955, "end": 958, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 905, "end": 908, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 906, "end": 907, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 906, "end": 907, "ctxt": 0 }, "value": "M", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "ExpressionStatement", "span": { "start": 960, "end": 1039, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 960, "end": 1038, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 960, "end": 964, "ctxt": 0 }, "value": "make", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 965, "end": 1037, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 970, "end": 979, "ctxt": 0 }, "value": "mutations", "optional": false }, "value": { "type": "ObjectExpression", "span": { "start": 981, "end": 1004, "ctxt": 0 }, "properties": [ { "type": "MethodProperty", "key": { "type": "Identifier", "span": { "start": 990, "end": 993, "ctxt": 0 }, "value": "foo", "optional": false }, "params": [], "decorators": [], "span": { "start": 990, "end": 999, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 996, "end": 999, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null } ] } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 1009, "end": 1015, "ctxt": 0 }, "value": "action", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 1017, "end": 1035, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1018, "end": 1019, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null } ], "body": { "type": "BlockStatement", "span": { "start": 1024, "end": 1035, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1026, "end": 1033, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1026, "end": 1033, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 1026, "end": 1031, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1026, "end": 1027, "ctxt": 0 }, "value": "a", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1028, "end": 1031, "ctxt": 0 }, "value": "foo", "optional": false } }, "arguments": [], "typeArguments": null } } ] }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] } } ], "typeArguments": null } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1080, "end": 1083, "ctxt": 0 }, "value": "foo", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 1087, "end": 1123, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1087, "end": 1123, "ctxt": 0 }, "value": "options", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1094, "end": 1123, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1096, "end": 1123, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1098, "end": 1103, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1098, "end": 1099, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1099, "end": 1102, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1101, "end": 1102, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1101, "end": 1102, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1104, "end": 1121, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1104, "end": 1105, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1105, "end": 1121, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1107, "end": 1121, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1108, "end": 1112, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1109, "end": 1112, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1111, "end": 1112, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1111, "end": 1112, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1114, "end": 1121, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1117, "end": 1121, "ctxt": 0 }, "kind": "void" } } } }, "typeParams": null } ] } } } } ], "decorators": [], "span": { "start": 1063, "end": 1131, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 1083, "end": 1086, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1084, "end": 1085, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1084, "end": 1085, "ctxt": 0 }, "value": "A", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 1124, "end": 1130, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1126, "end": 1130, "ctxt": 0 }, "kind": "void" } } }, { "type": "ExpressionStatement", "span": { "start": 1133, "end": 1183, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1133, "end": 1182, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1133, "end": 1136, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 1137, "end": 1181, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 1143, "end": 1144, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 1146, "end": 1165, "ctxt": 0 }, "params": [], "body": { "type": "BlockStatement", "span": { "start": 1152, "end": 1165, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 1154, "end": 1163, "ctxt": 0 }, "argument": { "type": "NumericLiteral", "span": { "start": 1161, "end": 1163, "ctxt": 0 }, "value": 42.0, "raw": "42" } } ] }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "type": "MethodProperty", "key": { "type": "Identifier", "span": { "start": 1171, "end": 1172, "ctxt": 0 }, "value": "b", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 1173, "end": 1174, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1173, "end": 1174, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null } } ], "decorators": [], "span": { "start": 1171, "end": 1178, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1176, "end": 1178, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null } ] } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 1185, "end": 1241, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1185, "end": 1240, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1185, "end": 1188, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 1189, "end": 1239, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 1195, "end": 1196, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "FunctionExpression", "identifier": null, "params": [], "decorators": [], "span": { "start": 1198, "end": 1223, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1210, "end": 1223, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 1212, "end": 1221, "ctxt": 0 }, "argument": { "type": "NumericLiteral", "span": { "start": 1219, "end": 1221, "ctxt": 0 }, "value": 42.0, "raw": "42" } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null } }, { "type": "MethodProperty", "key": { "type": "Identifier", "span": { "start": 1229, "end": 1230, "ctxt": 0 }, "value": "b", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 1231, "end": 1232, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1231, "end": 1232, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null } } ], "decorators": [], "span": { "start": 1229, "end": 1236, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1234, "end": 1236, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null } ] } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 1243, "end": 1288, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1243, "end": 1287, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1243, "end": 1246, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 1247, "end": 1286, "ctxt": 0 }, "properties": [ { "type": "MethodProperty", "key": { "type": "Identifier", "span": { "start": 1253, "end": 1254, "ctxt": 0 }, "value": "a", "optional": false }, "params": [], "decorators": [], "span": { "start": 1253, "end": 1270, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1257, "end": 1270, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 1259, "end": 1268, "ctxt": 0 }, "argument": { "type": "NumericLiteral", "span": { "start": 1266, "end": 1268, "ctxt": 0 }, "value": 42.0, "raw": "42" } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "MethodProperty", "key": { "type": "Identifier", "span": { "start": 1276, "end": 1277, "ctxt": 0 }, "value": "b", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 1278, "end": 1279, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1278, "end": 1279, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null } } ], "decorators": [], "span": { "start": 1276, "end": 1283, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1281, "end": 1283, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null } ] } } ], "typeArguments": null } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1312, "end": 1388, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1317, "end": 1322, "ctxt": 0 }, "value": "Chain", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1322, "end": 1330, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1323, "end": 1325, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1323, "end": 1325, "ctxt": 0 }, "value": "R1", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1327, "end": 1329, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1327, "end": 1329, "ctxt": 0 }, "value": "R2", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1333, "end": 1387, "ctxt": 0 }, "members": [ { "type": "TsMethodSignature", "span": { "start": 1339, "end": 1347, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1339, "end": 1340, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "params": [], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 1342, "end": 1346, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1344, "end": 1346, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1344, "end": 1346, "ctxt": 0 }, "value": "R1", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsMethodSignature", "span": { "start": 1352, "end": 1365, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1352, "end": 1353, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 1354, "end": 1359, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1355, "end": 1359, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1357, "end": 1359, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1357, "end": 1359, "ctxt": 0 }, "value": "R1", "optional": false }, "typeParams": null } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 1360, "end": 1364, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1362, "end": 1364, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1362, "end": 1364, "ctxt": 0 }, "value": "R2", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsMethodSignature", "span": { "start": 1370, "end": 1385, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1370, "end": 1371, "ctxt": 0 }, "value": "c", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 1372, "end": 1377, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1373, "end": 1377, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1375, "end": 1377, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1375, "end": 1377, "ctxt": 0 }, "value": "R2", "optional": false }, "typeParams": null } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 1378, "end": 1384, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1380, "end": 1384, "ctxt": 0 }, "kind": "void" } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1399, "end": 1403, "ctxt": 0 }, "value": "test", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 1412, "end": 1430, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1412, "end": 1430, "ctxt": 0 }, "value": "foo", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1415, "end": 1430, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1417, "end": 1430, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1417, "end": 1422, "ctxt": 0 }, "value": "Chain", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1422, "end": 1430, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1423, "end": 1425, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1423, "end": 1425, "ctxt": 0 }, "value": "R1", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 1427, "end": 1429, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1427, "end": 1429, "ctxt": 0 }, "value": "R2", "optional": false }, "typeParams": null } ] } } } } } ], "decorators": [], "span": { "start": 1390, "end": 1434, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1432, "end": 1434, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 1403, "end": 1411, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1404, "end": 1406, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1404, "end": 1406, "ctxt": 0 }, "value": "R1", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1408, "end": 1410, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1408, "end": 1410, "ctxt": 0 }, "value": "R2", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "ExpressionStatement", "span": { "start": 1436, "end": 1532, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1436, "end": 1531, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1436, "end": 1440, "ctxt": 0 }, "value": "test", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 1441, "end": 1530, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 1447, "end": 1448, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 1450, "end": 1457, "ctxt": 0 }, "params": [], "body": { "type": "NumericLiteral", "span": { "start": 1456, "end": 1457, "ctxt": 0 }, "value": 0.0, "raw": "0" }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 1463, "end": 1464, "ctxt": 0 }, "value": "b", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 1466, "end": 1476, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1467, "end": 1468, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null } ], "body": { "type": "StringLiteral", "span": { "start": 1473, "end": 1476, "ctxt": 0 }, "value": "a", "raw": "'a'" }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 1482, "end": 1483, "ctxt": 0 }, "value": "c", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 1485, "end": 1528, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1486, "end": 1487, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null } ], "body": { "type": "BlockStatement", "span": { "start": 1492, "end": 1528, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 1502, "end": 1522, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1508, "end": 1521, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1508, "end": 1509, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1509, "end": 1517, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1511, "end": 1517, "ctxt": 0 }, "kind": "string" } } }, "init": { "type": "Identifier", "span": { "start": 1520, "end": 1521, "ctxt": 0 }, "value": "b", "optional": false }, "definite": false } ] } ] }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 1534, "end": 1628, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1534, "end": 1627, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1534, "end": 1538, "ctxt": 0 }, "value": "test", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 1539, "end": 1626, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 1545, "end": 1546, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 1548, "end": 1555, "ctxt": 0 }, "params": [], "body": { "type": "NumericLiteral", "span": { "start": 1554, "end": 1555, "ctxt": 0 }, "value": 0.0, "raw": "0" }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 1561, "end": 1562, "ctxt": 0 }, "value": "b", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 1564, "end": 1572, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1565, "end": 1566, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null } ], "body": { "type": "Identifier", "span": { "start": 1571, "end": 1572, "ctxt": 0 }, "value": "a", "optional": false }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 1578, "end": 1579, "ctxt": 0 }, "value": "c", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 1581, "end": 1624, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1582, "end": 1583, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null } ], "body": { "type": "BlockStatement", "span": { "start": 1588, "end": 1624, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 1598, "end": 1618, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1604, "end": 1617, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1604, "end": 1605, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1605, "end": 1613, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1607, "end": 1613, "ctxt": 0 }, "kind": "number" } } }, "init": { "type": "Identifier", "span": { "start": 1616, "end": 1617, "ctxt": 0 }, "value": "b", "optional": false }, "definite": false } ] } ] }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] } } ], "typeArguments": null } }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1658, "end": 1665, "ctxt": 0 }, "value": "Wrapper", "optional": false }, "declare": false, "span": { "start": 1652, "end": 1700, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 1681, "end": 1698, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1688, "end": 1693, "ctxt": 0 }, "value": "value", "optional": true }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1694, "end": 1697, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1696, "end": 1697, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1696, "end": 1697, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isStatic": false, "decorators": [], "accessibility": "public", "isAbstract": false, "isOptional": true, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1665, "end": 1674, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1666, "end": 1673, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1666, "end": 1667, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": { "type": "TsKeywordType", "span": { "start": 1670, "end": 1673, "ctxt": 0 }, "kind": "any" } } ] }, "superTypeParams": null, "implements": [] }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1702, "end": 1744, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1707, "end": 1717, "ctxt": 0 }, "value": "WrappedMap", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1720, "end": 1743, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1720, "end": 1726, "ctxt": 0 }, "value": "Record", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1726, "end": 1743, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 1727, "end": 1733, "ctxt": 0 }, "kind": "string" }, { "type": "TsTypeReference", "span": { "start": 1735, "end": 1742, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1735, "end": 1742, "ctxt": 0 }, "value": "Wrapper", "optional": false }, "typeParams": null } ] } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1745, "end": 1848, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1750, "end": 1756, "ctxt": 0 }, "value": "Unwrap", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1756, "end": 1778, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1757, "end": 1777, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1757, "end": 1758, "ctxt": 0 }, "value": "D", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1767, "end": 1777, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1767, "end": 1777, "ctxt": 0 }, "value": "WrappedMap", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsMappedType", "span": { "start": 1781, "end": 1847, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 1788, "end": 1800, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1788, "end": 1789, "ctxt": 0 }, "value": "K", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeOperator", "span": { "start": 1793, "end": 1800, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1799, "end": 1800, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1799, "end": 1800, "ctxt": 0 }, "value": "D", "optional": false }, "typeParams": null } }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsConditionalType", "span": { "start": 1803, "end": 1844, "ctxt": 0 }, "checkType": { "type": "TsIndexedAccessType", "span": { "start": 1803, "end": 1807, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 1803, "end": 1804, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1803, "end": 1804, "ctxt": 0 }, "value": "D", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 1805, "end": 1806, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1805, "end": 1806, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } }, "extendsType": { "type": "TsTypeReference", "span": { "start": 1816, "end": 1832, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1816, "end": 1823, "ctxt": 0 }, "value": "Wrapper", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1823, "end": 1832, "ctxt": 0 }, "params": [ { "type": "TsInferType", "span": { "start": 1824, "end": 1831, "ctxt": 0 }, "typeParam": { "type": "TsTypeParameter", "span": { "start": 1830, "end": 1831, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1830, "end": 1831, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } } ] } }, "trueType": { "type": "TsTypeReference", "span": { "start": 1835, "end": 1836, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1835, "end": 1836, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "falseType": { "type": "TsKeywordType", "span": { "start": 1839, "end": 1844, "ctxt": 0 }, "kind": "never" } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1850, "end": 2006, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1855, "end": 1871, "ctxt": 0 }, "value": "MappingComponent", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1871, "end": 1915, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1872, "end": 1892, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1872, "end": 1873, "ctxt": 0 }, "value": "I", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1882, "end": 1892, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1882, "end": 1892, "ctxt": 0 }, "value": "WrappedMap", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1894, "end": 1914, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1894, "end": 1895, "ctxt": 0 }, "value": "O", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeReference", "span": { "start": 1904, "end": 1914, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1904, "end": 1914, "ctxt": 0 }, "value": "WrappedMap", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1918, "end": 2005, "ctxt": 0 }, "members": [ { "type": "TsMethodSignature", "span": { "start": 1924, "end": 1959, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1924, "end": 1929, "ctxt": 0 }, "value": "setup", "optional": false }, "computed": false, "optional": false, "params": [], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 1931, "end": 1958, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1933, "end": 1958, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1935, "end": 1945, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1935, "end": 1941, "ctxt": 0 }, "value": "inputs", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1941, "end": 1944, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1943, "end": 1944, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1943, "end": 1944, "ctxt": 0 }, "value": "I", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1946, "end": 1956, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1946, "end": 1953, "ctxt": 0 }, "value": "outputs", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1953, "end": 1956, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1955, "end": 1956, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1955, "end": 1956, "ctxt": 0 }, "value": "O", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1964, "end": 2003, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1964, "end": 1967, "ctxt": 0 }, "value": "map", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1968, "end": 2002, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1970, "end": 2002, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1971, "end": 1988, "ctxt": 0 }, "value": "inputs", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1977, "end": 1988, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1979, "end": 1988, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1979, "end": 1985, "ctxt": 0 }, "value": "Unwrap", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1985, "end": 1988, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1986, "end": 1987, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1986, "end": 1987, "ctxt": 0 }, "value": "I", "optional": false }, "typeParams": null } ] } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1990, "end": 2002, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1993, "end": 2002, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1993, "end": 1999, "ctxt": 0 }, "value": "Unwrap", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1999, "end": 2002, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2000, "end": 2001, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2000, "end": 2001, "ctxt": 0 }, "value": "O", "optional": false }, "typeParams": null } ] } } } } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 2025, "end": 2047, "ctxt": 0 }, "value": "createMappingComponent", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 2092, "end": 2119, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2092, "end": 2119, "ctxt": 0 }, "value": "def", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2095, "end": 2119, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2097, "end": 2119, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2097, "end": 2113, "ctxt": 0 }, "value": "MappingComponent", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2113, "end": 2119, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2114, "end": 2115, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2114, "end": 2115, "ctxt": 0 }, "value": "I", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 2117, "end": 2118, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2117, "end": 2118, "ctxt": 0 }, "value": "O", "optional": false }, "typeParams": null } ] } } } } } ], "decorators": [], "span": { "start": 2008, "end": 2127, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 2047, "end": 2091, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2048, "end": 2068, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2048, "end": 2049, "ctxt": 0 }, "value": "I", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2058, "end": 2068, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2058, "end": 2068, "ctxt": 0 }, "value": "WrappedMap", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2070, "end": 2090, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2070, "end": 2071, "ctxt": 0 }, "value": "O", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2080, "end": 2090, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2080, "end": 2090, "ctxt": 0 }, "value": "WrappedMap", "optional": false }, "typeParams": null }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 2120, "end": 2126, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2122, "end": 2126, "ctxt": 0 }, "kind": "void" } } }, { "type": "ExpressionStatement", "span": { "start": 2129, "end": 2591, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 2129, "end": 2590, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2129, "end": 2151, "ctxt": 0 }, "value": "createMappingComponent", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 2152, "end": 2589, "ctxt": 0 }, "properties": [ { "type": "MethodProperty", "key": { "type": "Identifier", "span": { "start": 2158, "end": 2163, "ctxt": 0 }, "value": "setup", "optional": false }, "params": [], "decorators": [], "span": { "start": 2158, "end": 2451, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 2166, "end": 2451, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 2176, "end": 2445, "ctxt": 0 }, "argument": { "type": "ObjectExpression", "span": { "start": 2183, "end": 2444, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 2197, "end": 2203, "ctxt": 0 }, "value": "inputs", "optional": false }, "value": { "type": "ObjectExpression", "span": { "start": 2205, "end": 2307, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 2223, "end": 2226, "ctxt": 0 }, "value": "num", "optional": false }, "value": { "type": "NewExpression", "span": { "start": 2228, "end": 2249, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2232, "end": 2239, "ctxt": 0 }, "value": "Wrapper", "optional": false }, "arguments": [], "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 2239, "end": 2247, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 2240, "end": 2246, "ctxt": 0 }, "kind": "number" } ] } } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 2267, "end": 2270, "ctxt": 0 }, "value": "str", "optional": false }, "value": { "type": "NewExpression", "span": { "start": 2272, "end": 2293, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2276, "end": 2283, "ctxt": 0 }, "value": "Wrapper", "optional": false }, "arguments": [], "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 2283, "end": 2291, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 2284, "end": 2290, "ctxt": 0 }, "kind": "string" } ] } } } ] } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 2321, "end": 2328, "ctxt": 0 }, "value": "outputs", "optional": false }, "value": { "type": "ObjectExpression", "span": { "start": 2330, "end": 2434, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 2348, "end": 2352, "ctxt": 0 }, "value": "bool", "optional": false }, "value": { "type": "NewExpression", "span": { "start": 2354, "end": 2376, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2358, "end": 2365, "ctxt": 0 }, "value": "Wrapper", "optional": false }, "arguments": [], "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 2365, "end": 2374, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 2366, "end": 2373, "ctxt": 0 }, "kind": "boolean" } ] } } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 2394, "end": 2397, "ctxt": 0 }, "value": "str", "optional": false }, "value": { "type": "NewExpression", "span": { "start": 2399, "end": 2420, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2403, "end": 2410, "ctxt": 0 }, "value": "Wrapper", "optional": false }, "arguments": [], "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 2410, "end": 2418, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 2411, "end": 2417, "ctxt": 0 }, "kind": "string" } ] } } } ] } } ] } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "MethodProperty", "key": { "type": "Identifier", "span": { "start": 2457, "end": 2460, "ctxt": 0 }, "value": "map", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 2461, "end": 2467, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2461, "end": 2467, "ctxt": 0 }, "value": "inputs", "optional": false, "typeAnnotation": null } } ], "decorators": [], "span": { "start": 2457, "end": 2587, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 2469, "end": 2587, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 2479, "end": 2581, "ctxt": 0 }, "argument": { "type": "ObjectExpression", "span": { "start": 2486, "end": 2581, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 2500, "end": 2504, "ctxt": 0 }, "value": "bool", "optional": false }, "value": { "type": "MemberExpression", "span": { "start": 2506, "end": 2524, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2506, "end": 2512, "ctxt": 0 }, "value": "inputs", "optional": false }, "property": { "type": "Identifier", "span": { "start": 2513, "end": 2524, "ctxt": 0 }, "value": "nonexistent", "optional": false } } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 2538, "end": 2541, "ctxt": 0 }, "value": "str", "optional": false }, "value": { "type": "MemberExpression", "span": { "start": 2543, "end": 2553, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2543, "end": 2549, "ctxt": 0 }, "value": "inputs", "optional": false }, "property": { "type": "Identifier", "span": { "start": 2550, "end": 2553, "ctxt": 0 }, "value": "num", "optional": false } } } ] } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null } ] } } ], "typeArguments": null } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 2624, "end": 2634, "ctxt": 0 }, "value": "simplified", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 2638, "end": 2692, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2638, "end": 2692, "ctxt": 0 }, "value": "props", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2643, "end": 2692, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2645, "end": 2692, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2647, "end": 2666, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2647, "end": 2656, "ctxt": 0 }, "value": "generator", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2656, "end": 2665, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2658, "end": 2665, "ctxt": 0 }, "params": [], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2661, "end": 2665, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2664, "end": 2665, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2664, "end": 2665, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2667, "end": 2690, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2667, "end": 2675, "ctxt": 0 }, "value": "receiver", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2675, "end": 2690, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2677, "end": 2690, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2678, "end": 2682, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2679, "end": 2682, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2681, "end": 2682, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2681, "end": 2682, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2684, "end": 2690, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2687, "end": 2690, "ctxt": 0 }, "kind": "any" } } } }, "typeParams": null } ] } } } } ], "decorators": [], "span": { "start": 2615, "end": 2696, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 2694, "end": 2696, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 2634, "end": 2637, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2635, "end": 2636, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2635, "end": 2636, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 2707, "end": 2716, "ctxt": 0 }, "value": "whatIWant", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 2720, "end": 2782, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2720, "end": 2782, "ctxt": 0 }, "value": "props", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2725, "end": 2782, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2727, "end": 2782, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2729, "end": 2756, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2729, "end": 2738, "ctxt": 0 }, "value": "generator", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2738, "end": 2755, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2740, "end": 2755, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2741, "end": 2749, "ctxt": 0 }, "value": "bob", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2744, "end": 2749, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2746, "end": 2749, "ctxt": 0 }, "kind": "any" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2751, "end": 2755, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2754, "end": 2755, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2754, "end": 2755, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2757, "end": 2780, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2757, "end": 2765, "ctxt": 0 }, "value": "receiver", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2765, "end": 2780, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2767, "end": 2780, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2768, "end": 2772, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2769, "end": 2772, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2771, "end": 2772, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2771, "end": 2772, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2774, "end": 2780, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2777, "end": 2780, "ctxt": 0 }, "kind": "any" } } } }, "typeParams": null } ] } } } } ], "decorators": [], "span": { "start": 2698, "end": 2786, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 2784, "end": 2786, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 2716, "end": 2719, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2717, "end": 2718, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2717, "end": 2718, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 2797, "end": 2806, "ctxt": 0 }, "value": "nonObject", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 2810, "end": 2836, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2810, "end": 2836, "ctxt": 0 }, "value": "generator", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2819, "end": 2836, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2821, "end": 2836, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2822, "end": 2830, "ctxt": 0 }, "value": "bob", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2825, "end": 2830, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2827, "end": 2830, "ctxt": 0 }, "kind": "any" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2832, "end": 2836, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2835, "end": 2836, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2835, "end": 2836, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } }, { "type": "Parameter", "span": { "start": 2838, "end": 2861, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2838, "end": 2861, "ctxt": 0 }, "value": "receiver", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2846, "end": 2861, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2848, "end": 2861, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2849, "end": 2853, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2850, "end": 2853, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2852, "end": 2853, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2852, "end": 2853, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2855, "end": 2861, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2858, "end": 2861, "ctxt": 0 }, "kind": "any" } } } } } } ], "decorators": [], "span": { "start": 2788, "end": 2865, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 2863, "end": 2865, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 2806, "end": 2809, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2807, "end": 2808, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2807, "end": 2808, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "ExpressionStatement", "span": { "start": 2867, "end": 2940, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 2867, "end": 2940, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2867, "end": 2877, "ctxt": 0 }, "value": "simplified", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 2878, "end": 2939, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 2880, "end": 2889, "ctxt": 0 }, "value": "generator", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 2891, "end": 2900, "ctxt": 0 }, "params": [], "body": { "type": "NumericLiteral", "span": { "start": 2897, "end": 2900, "ctxt": 0 }, "value": 123.0, "raw": "123" }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 2902, "end": 2910, "ctxt": 0 }, "value": "receiver", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 2912, "end": 2937, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2913, "end": 2914, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": null } ], "body": { "type": "CallExpression", "span": { "start": 2919, "end": 2937, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 2919, "end": 2930, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2919, "end": 2926, "ctxt": 0 }, "value": "console", "optional": false }, "property": { "type": "Identifier", "span": { "start": 2927, "end": 2930, "ctxt": 0 }, "value": "log", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "BinaryExpression", "span": { "start": 2931, "end": 2936, "ctxt": 0 }, "operator": "+", "left": { "type": "Identifier", "span": { "start": 2931, "end": 2932, "ctxt": 0 }, "value": "t", "optional": false }, "right": { "type": "NumericLiteral", "span": { "start": 2935, "end": 2936, "ctxt": 0 }, "value": 2.0, "raw": "2" } } } ], "typeArguments": null }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 2941, "end": 3024, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 2941, "end": 3024, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2941, "end": 2950, "ctxt": 0 }, "value": "whatIWant", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 2951, "end": 3023, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 2953, "end": 2962, "ctxt": 0 }, "value": "generator", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 2964, "end": 2984, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2965, "end": 2968, "ctxt": 0 }, "value": "bob", "optional": false, "typeAnnotation": null } ], "body": { "type": "ConditionalExpression", "span": { "start": 2973, "end": 2984, "ctxt": 0 }, "test": { "type": "Identifier", "span": { "start": 2973, "end": 2976, "ctxt": 0 }, "value": "bob", "optional": false }, "consequent": { "type": "NumericLiteral", "span": { "start": 2979, "end": 2980, "ctxt": 0 }, "value": 1.0, "raw": "1" }, "alternate": { "type": "NumericLiteral", "span": { "start": 2983, "end": 2984, "ctxt": 0 }, "value": 2.0, "raw": "2" } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 2986, "end": 2994, "ctxt": 0 }, "value": "receiver", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 2996, "end": 3021, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2997, "end": 2998, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": null } ], "body": { "type": "CallExpression", "span": { "start": 3003, "end": 3021, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 3003, "end": 3014, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3003, "end": 3010, "ctxt": 0 }, "value": "console", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3011, "end": 3014, "ctxt": 0 }, "value": "log", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "BinaryExpression", "span": { "start": 3015, "end": 3020, "ctxt": 0 }, "operator": "+", "left": { "type": "Identifier", "span": { "start": 3015, "end": 3016, "ctxt": 0 }, "value": "t", "optional": false }, "right": { "type": "NumericLiteral", "span": { "start": 3019, "end": 3020, "ctxt": 0 }, "value": 2.0, "raw": "2" } } } ], "typeArguments": null }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 3025, "end": 3083, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 3025, "end": 3083, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3025, "end": 3034, "ctxt": 0 }, "value": "nonObject", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 3035, "end": 3055, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3036, "end": 3039, "ctxt": 0 }, "value": "bob", "optional": false, "typeAnnotation": null } ], "body": { "type": "ConditionalExpression", "span": { "start": 3044, "end": 3055, "ctxt": 0 }, "test": { "type": "Identifier", "span": { "start": 3044, "end": 3047, "ctxt": 0 }, "value": "bob", "optional": false }, "consequent": { "type": "NumericLiteral", "span": { "start": 3050, "end": 3051, "ctxt": 0 }, "value": 1.0, "raw": "1" }, "alternate": { "type": "NumericLiteral", "span": { "start": 3054, "end": 3055, "ctxt": 0 }, "value": 2.0, "raw": "2" } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 3057, "end": 3082, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3058, "end": 3059, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": null } ], "body": { "type": "CallExpression", "span": { "start": 3064, "end": 3082, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 3064, "end": 3075, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3064, "end": 3071, "ctxt": 0 }, "value": "console", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3072, "end": 3075, "ctxt": 0 }, "value": "log", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "BinaryExpression", "span": { "start": 3076, "end": 3081, "ctxt": 0 }, "operator": "+", "left": { "type": "Identifier", "span": { "start": 3076, "end": 3077, "ctxt": 0 }, "value": "t", "optional": false }, "right": { "type": "NumericLiteral", "span": { "start": 3080, "end": 3081, "ctxt": 0 }, "value": 2.0, "raw": "2" } } } ], "typeArguments": null }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null } }, { "type": "TsInterfaceDeclaration", "span": { "start": 3107, "end": 3236, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3117, "end": 3121, "ctxt": 0 }, "value": "Opts", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3121, "end": 3146, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3122, "end": 3129, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3122, "end": 3129, "ctxt": 0 }, "value": "TParams", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 3131, "end": 3136, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3131, "end": 3136, "ctxt": 0 }, "value": "TDone", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 3138, "end": 3145, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3138, "end": 3145, "ctxt": 0 }, "value": "TMapped", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 3147, "end": 3236, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3153, "end": 3200, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3153, "end": 3158, "ctxt": 0 }, "value": "fetch", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3158, "end": 3199, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3160, "end": 3199, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3161, "end": 3176, "ctxt": 0 }, "value": "params", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3167, "end": 3176, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3169, "end": 3176, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3169, "end": 3176, "ctxt": 0 }, "value": "TParams", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 3178, "end": 3189, "ctxt": 0 }, "value": "foo", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3181, "end": 3189, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3183, "end": 3189, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3191, "end": 3199, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3194, "end": 3199, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3194, "end": 3199, "ctxt": 0 }, "value": "TDone", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3205, "end": 3234, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3205, "end": 3208, "ctxt": 0 }, "value": "map", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3208, "end": 3234, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3210, "end": 3234, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3211, "end": 3222, "ctxt": 0 }, "value": "data", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3215, "end": 3222, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3217, "end": 3222, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3217, "end": 3222, "ctxt": 0 }, "value": "TDone", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3224, "end": 3234, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3227, "end": 3234, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3227, "end": 3234, "ctxt": 0 }, "value": "TMapped", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3247, "end": 3254, "ctxt": 0 }, "value": "example", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 3280, "end": 3318, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3280, "end": 3318, "ctxt": 0 }, "value": "options", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3287, "end": 3318, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3289, "end": 3318, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3289, "end": 3293, "ctxt": 0 }, "value": "Opts", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3293, "end": 3318, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3294, "end": 3301, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3294, "end": 3301, "ctxt": 0 }, "value": "TParams", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 3303, "end": 3308, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3303, "end": 3308, "ctxt": 0 }, "value": "TDone", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 3310, "end": 3317, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3310, "end": 3317, "ctxt": 0 }, "value": "TMapped", "optional": false }, "typeParams": null } ] } } } } } ], "decorators": [], "span": { "start": 3238, "end": 3444, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3320, "end": 3444, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 3326, "end": 3442, "ctxt": 0 }, "argument": { "type": "ArrowFunctionExpression", "span": { "start": 3333, "end": 3442, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3334, "end": 3349, "ctxt": 0 }, "value": "params", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3340, "end": 3349, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3342, "end": 3349, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3342, "end": 3349, "ctxt": 0 }, "value": "TParams", "optional": false }, "typeParams": null } } } ], "body": { "type": "BlockStatement", "span": { "start": 3354, "end": 3442, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 3364, "end": 3403, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3370, "end": 3403, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3370, "end": 3374, "ctxt": 0 }, "value": "data", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 3377, "end": 3403, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 3377, "end": 3390, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3377, "end": 3384, "ctxt": 0 }, "value": "options", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3385, "end": 3390, "ctxt": 0 }, "value": "fetch", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3391, "end": 3397, "ctxt": 0 }, "value": "params", "optional": false } }, { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 3399, "end": 3402, "ctxt": 0 }, "value": 123.0, "raw": "123" } } ], "typeArguments": null }, "definite": false } ] }, { "type": "ReturnStatement", "span": { "start": 3412, "end": 3436, "ctxt": 0 }, "argument": { "type": "CallExpression", "span": { "start": 3419, "end": 3436, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 3419, "end": 3430, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3419, "end": 3426, "ctxt": 0 }, "value": "options", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3427, "end": 3430, "ctxt": 0 }, "value": "map", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3431, "end": 3435, "ctxt": 0 }, "value": "data", "optional": false } } ], "typeArguments": null } } ] }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3254, "end": 3279, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3255, "end": 3262, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3255, "end": 3262, "ctxt": 0 }, "value": "TParams", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 3264, "end": 3269, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3264, "end": 3269, "ctxt": 0 }, "value": "TDone", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 3271, "end": 3278, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3271, "end": 3278, "ctxt": 0 }, "value": "TMapped", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "TsInterfaceDeclaration", "span": { "start": 3446, "end": 3498, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3456, "end": 3462, "ctxt": 0 }, "value": "Params", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 3463, "end": 3498, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3469, "end": 3480, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3469, "end": 3472, "ctxt": 0 }, "value": "one", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3472, "end": 3480, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3474, "end": 3480, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3485, "end": 3496, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3485, "end": 3488, "ctxt": 0 }, "value": "two", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3488, "end": 3496, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3490, "end": 3496, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "ExpressionStatement", "span": { "start": 3500, "end": 3585, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 3500, "end": 3584, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3500, "end": 3507, "ctxt": 0 }, "value": "example", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 3508, "end": 3583, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 3514, "end": 3519, "ctxt": 0 }, "value": "fetch", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 3521, "end": 3544, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3522, "end": 3536, "ctxt": 0 }, "value": "params", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3528, "end": 3536, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3530, "end": 3536, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3530, "end": 3536, "ctxt": 0 }, "value": "Params", "optional": false }, "typeParams": null } } } ], "body": { "type": "NumericLiteral", "span": { "start": 3541, "end": 3544, "ctxt": 0 }, "value": 123.0, "raw": "123" }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 3550, "end": 3553, "ctxt": 0 }, "value": "map", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 3555, "end": 3581, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3556, "end": 3562, "ctxt": 0 }, "value": "number", "optional": false, "typeAnnotation": null } ], "body": { "type": "CallExpression", "span": { "start": 3567, "end": 3581, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3567, "end": 3573, "ctxt": 0 }, "value": "String", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3574, "end": 3580, "ctxt": 0 }, "value": "number", "optional": false } } ], "typeArguments": null }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 3587, "end": 3685, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 3587, "end": 3684, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3587, "end": 3594, "ctxt": 0 }, "value": "example", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 3595, "end": 3683, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 3601, "end": 3606, "ctxt": 0 }, "value": "fetch", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 3608, "end": 3644, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3609, "end": 3623, "ctxt": 0 }, "value": "params", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3615, "end": 3623, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3617, "end": 3623, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3617, "end": 3623, "ctxt": 0 }, "value": "Params", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 3625, "end": 3636, "ctxt": 0 }, "value": "foo", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3628, "end": 3636, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3630, "end": 3636, "ctxt": 0 }, "kind": "number" } } } ], "body": { "type": "NumericLiteral", "span": { "start": 3641, "end": 3644, "ctxt": 0 }, "value": 123.0, "raw": "123" }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 3650, "end": 3653, "ctxt": 0 }, "value": "map", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 3655, "end": 3681, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3656, "end": 3662, "ctxt": 0 }, "value": "number", "optional": false, "typeAnnotation": null } ], "body": { "type": "CallExpression", "span": { "start": 3667, "end": 3681, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3667, "end": 3673, "ctxt": 0 }, "value": "String", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3674, "end": 3680, "ctxt": 0 }, "value": "number", "optional": false } } ], "typeArguments": null }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 3687, "end": 3777, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 3687, "end": 3776, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3687, "end": 3694, "ctxt": 0 }, "value": "example", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 3695, "end": 3775, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 3701, "end": 3706, "ctxt": 0 }, "value": "fetch", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 3708, "end": 3736, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3709, "end": 3723, "ctxt": 0 }, "value": "params", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3715, "end": 3723, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3717, "end": 3723, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3717, "end": 3723, "ctxt": 0 }, "value": "Params", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 3725, "end": 3728, "ctxt": 0 }, "value": "foo", "optional": false, "typeAnnotation": null } ], "body": { "type": "NumericLiteral", "span": { "start": 3733, "end": 3736, "ctxt": 0 }, "value": 123.0, "raw": "123" }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 3742, "end": 3745, "ctxt": 0 }, "value": "map", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 3747, "end": 3773, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3748, "end": 3754, "ctxt": 0 }, "value": "number", "optional": false, "typeAnnotation": null } ], "body": { "type": "CallExpression", "span": { "start": 3759, "end": 3773, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3759, "end": 3765, "ctxt": 0 }, "value": "String", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3766, "end": 3772, "ctxt": 0 }, "value": "number", "optional": false } } ], "typeArguments": null }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] } } ], "typeArguments": null } }, { "type": "VariableDeclaration", "span": { "start": 3801, "end": 3909, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3815, "end": 3909, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3815, "end": 3821, "ctxt": 0 }, "value": "branch", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3821, "end": 3909, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3825, "end": 3909, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3842, "end": 3900, "ctxt": 0 }, "value": "_", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3843, "end": 3900, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 3845, "end": 3900, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 3847, "end": 3855, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3847, "end": 3851, "ctxt": 0 }, "value": "test", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3851, "end": 3854, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3853, "end": 3854, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3853, "end": 3854, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3856, "end": 3877, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3856, "end": 3858, "ctxt": 0 }, "value": "if", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3858, "end": 3876, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3860, "end": 3876, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3861, "end": 3865, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3862, "end": 3865, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3864, "end": 3865, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3864, "end": 3865, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3867, "end": 3876, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypePredicate", "span": { "start": 3870, "end": 3876, "ctxt": 0 }, "asserts": false, "paramName": { "type": "Identifier", "span": { "start": 3870, "end": 3871, "ctxt": 0 }, "value": "t", "optional": false }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3875, "end": 3876, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3875, "end": 3876, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3875, "end": 3876, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3878, "end": 3898, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3878, "end": 3882, "ctxt": 0 }, "value": "then", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3882, "end": 3898, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3884, "end": 3898, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3885, "end": 3889, "ctxt": 0 }, "value": "u", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3886, "end": 3889, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3888, "end": 3889, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3888, "end": 3889, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3891, "end": 3898, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3894, "end": 3898, "ctxt": 0 }, "kind": "void" } } } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3825, "end": 3841, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3826, "end": 3827, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3826, "end": 3827, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 3829, "end": 3840, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3829, "end": 3830, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeReference", "span": { "start": 3839, "end": 3840, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3839, "end": 3840, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3902, "end": 3909, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3905, "end": 3909, "ctxt": 0 }, "kind": "void" } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3911, "end": 3937, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3925, "end": 3937, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3925, "end": 3926, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3926, "end": 3937, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 3928, "end": 3937, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 3928, "end": 3931, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 3928, "end": 3931, "ctxt": 0 }, "value": "a", "raw": "\"a\"" } }, { "type": "TsLiteralType", "span": { "start": 3934, "end": 3937, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 3934, "end": 3937, "ctxt": 0 }, "value": "b", "raw": "\"b\"" } } ] } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 3939, "end": 4037, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 3939, "end": 4037, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3939, "end": 3945, "ctxt": 0 }, "value": "branch", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 3946, "end": 4036, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 3950, "end": 3954, "ctxt": 0 }, "value": "test", "optional": false }, "value": { "type": "Identifier", "span": { "start": 3956, "end": 3957, "ctxt": 0 }, "value": "x", "optional": false } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 3961, "end": 3963, "ctxt": 0 }, "value": "if", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 3965, "end": 3991, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3966, "end": 3967, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": null } ], "body": { "type": "BinaryExpression", "span": { "start": 3982, "end": 3991, "ctxt": 0 }, "operator": "===", "left": { "type": "Identifier", "span": { "start": 3982, "end": 3983, "ctxt": 0 }, "value": "t", "optional": false }, "right": { "type": "StringLiteral", "span": { "start": 3988, "end": 3991, "ctxt": 0 }, "value": "a", "raw": "\"a\"" } }, "async": false, "generator": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 3968, "end": 3978, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypePredicate", "span": { "start": 3970, "end": 3978, "ctxt": 0 }, "asserts": false, "paramName": { "type": "Identifier", "span": { "start": 3970, "end": 3971, "ctxt": 0 }, "value": "t", "optional": false }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3975, "end": 3978, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 3975, "end": 3978, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 3975, "end": 3978, "ctxt": 0 }, "value": "a", "raw": "\"a\"" } } } } } } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 3995, "end": 3999, "ctxt": 0 }, "value": "then", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 4001, "end": 4034, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4001, "end": 4002, "ctxt": 0 }, "value": "u", "optional": false, "typeAnnotation": null } ], "body": { "type": "BlockStatement", "span": { "start": 4006, "end": 4034, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 4012, "end": 4030, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4016, "end": 4030, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4016, "end": 4021, "ctxt": 0 }, "value": "test1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4021, "end": 4026, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 4023, "end": 4026, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 4023, "end": 4026, "ctxt": 0 }, "value": "a", "raw": "\"a\"" } } } }, "init": { "type": "Identifier", "span": { "start": 4029, "end": 4030, "ctxt": 0 }, "value": "u", "optional": false }, "definite": false } ] } ] }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] } } ], "typeArguments": null } } ], "interpreter": null }