{ "type": "Script", "span": { "start": 19, "end": 999, "ctxt": 0 }, "body": [ { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 36, "end": 38, "ctxt": 0 }, "value": "f1", "optional": false }, "declare": true, "params": [], "decorators": [], "span": { "start": 19, "end": 62, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 38, "end": 56, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 39, "end": 55, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 39, "end": 40, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsKeywordType", "span": { "start": 49, "end": 55, "ctxt": 0 }, "kind": "string" }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 58, "end": 61, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 60, "end": 61, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 60, "end": 61, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 80, "end": 82, "ctxt": 0 }, "value": "f2", "optional": false }, "declare": true, "params": [], "decorators": [], "span": { "start": 63, "end": 108, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 82, "end": 100, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 83, "end": 99, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 83, "end": 84, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsKeywordType", "span": { "start": 93, "end": 99, "ctxt": 0 }, "kind": "string" }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 102, "end": 107, "ctxt": 0 }, "typeAnnotation": { "type": "TsTupleType", "span": { "start": 104, "end": 107, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 105, "end": 106, "ctxt": 0 }, "label": null, "ty": { "type": "TsTypeReference", "span": { "start": 105, "end": 106, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 105, "end": 106, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } ] } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 126, "end": 128, "ctxt": 0 }, "value": "f3", "optional": false }, "declare": true, "params": [], "decorators": [], "span": { "start": 109, "end": 159, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 128, "end": 146, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 129, "end": 145, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 129, "end": 130, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsKeywordType", "span": { "start": 139, "end": 145, "ctxt": 0 }, "kind": "string" }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 148, "end": 158, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 150, "end": 158, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 152, "end": 156, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 152, "end": 153, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 153, "end": 156, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 155, "end": 156, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 155, "end": 156, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } }, { "type": "VariableDeclaration", "span": { "start": 161, "end": 175, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 165, "end": 174, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 165, "end": 167, "ctxt": 0 }, "value": "x1", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 170, "end": 174, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 170, "end": 172, "ctxt": 0 }, "value": "f1", "optional": false }, "arguments": [], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 194, "end": 210, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 198, "end": 209, "ctxt": 0 }, "id": { "type": "ArrayPattern", "span": { "start": 198, "end": 202, "ctxt": 0 }, "elements": [ { "type": "Identifier", "span": { "start": 199, "end": 201, "ctxt": 0 }, "value": "x2", "optional": false, "typeAnnotation": null } ], "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 205, "end": 209, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 205, "end": 207, "ctxt": 0 }, "value": "f2", "optional": false }, "arguments": [], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 227, "end": 248, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 231, "end": 247, "ctxt": 0 }, "id": { "type": "ObjectPattern", "span": { "start": 231, "end": 240, "ctxt": 0 }, "properties": [ { "type": "KeyValuePatternProperty", "key": { "type": "Identifier", "span": { "start": 233, "end": 234, "ctxt": 0 }, "value": "x", "optional": false }, "value": { "type": "Identifier", "span": { "start": 236, "end": 238, "ctxt": 0 }, "value": "x3", "optional": false, "typeAnnotation": null } } ], "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 243, "end": 247, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 243, "end": 245, "ctxt": 0 }, "value": "f3", "optional": false }, "arguments": [], "typeArguments": null }, "definite": false } ] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 292, "end": 295, "ctxt": 0 }, "value": "foo", "optional": false }, "declare": false, "params": [], "decorators": [], "span": { "start": 283, "end": 338, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 315, "end": 338, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 318, "end": 336, "ctxt": 0 }, "argument": { "type": "ArrayExpression", "span": { "start": 325, "end": 336, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "TsAsExpression", "span": { "start": 326, "end": 335, "ctxt": 0 }, "expression": { "type": "NumericLiteral", "span": { "start": 326, "end": 328, "ctxt": 0 }, "value": 42.0, "raw": "42" }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 332, "end": 335, "ctxt": 0 }, "kind": "any" } } } ] } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 295, "end": 307, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 296, "end": 306, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 296, "end": 297, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": { "type": "TsKeywordType", "span": { "start": 300, "end": 306, "ctxt": 0 }, "kind": "number" } } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 309, "end": 314, "ctxt": 0 }, "typeAnnotation": { "type": "TsTupleType", "span": { "start": 311, "end": 314, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 312, "end": 313, "ctxt": 0 }, "label": null, "ty": { "type": "TsTypeReference", "span": { "start": 312, "end": 313, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 312, "end": 313, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } ] } } }, { "type": "VariableDeclaration", "span": { "start": 339, "end": 357, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 345, "end": 356, "ctxt": 0 }, "id": { "type": "ArrayPattern", "span": { "start": 345, "end": 348, "ctxt": 0 }, "elements": [ { "type": "Identifier", "span": { "start": 346, "end": 347, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null } ], "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 351, "end": 356, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 351, "end": 354, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [], "typeArguments": null }, "definite": false } ] }, { "type": "TsInterfaceDeclaration", "span": { "start": 394, "end": 453, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 404, "end": 415, "ctxt": 0 }, "value": "SelectProps", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 415, "end": 421, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 416, "end": 417, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 416, "end": 417, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 419, "end": 420, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 419, "end": 420, "ctxt": 0 }, "value": "K", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 422, "end": 453, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 426, "end": 451, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 426, "end": 434, "ctxt": 0 }, "value": "selector", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 435, "end": 450, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 437, "end": 450, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 438, "end": 444, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 441, "end": 444, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 443, "end": 444, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 443, "end": 444, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 446, "end": 450, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 449, "end": 450, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 449, "end": 450, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 455, "end": 488, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 460, "end": 472, "ctxt": 0 }, "value": "SelectResult", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 472, "end": 478, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 473, "end": 474, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 473, "end": 474, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 476, "end": 477, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 476, "end": 477, "ctxt": 0 }, "value": "K", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTupleType", "span": { "start": 481, "end": 487, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 482, "end": 483, "ctxt": 0 }, "label": null, "ty": { "type": "TsTypeReference", "span": { "start": 482, "end": 483, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 482, "end": 483, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } }, { "type": "TsTupleElement", "span": { "start": 485, "end": 486, "ctxt": 0 }, "label": null, "ty": { "type": "TsTypeReference", "span": { "start": 485, "end": 486, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 485, "end": 486, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 490, "end": 545, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 500, "end": 506, "ctxt": 0 }, "value": "Person", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 507, "end": 545, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 511, "end": 524, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 511, "end": 515, "ctxt": 0 }, "value": "name", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 515, "end": 523, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 517, "end": 523, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 527, "end": 543, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 527, "end": 534, "ctxt": 0 }, "value": "surname", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 534, "end": 542, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 536, "end": 542, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 564, "end": 574, "ctxt": 0 }, "value": "selectJohn", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 587, "end": 617, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 587, "end": 617, "ctxt": 0 }, "value": "props", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 593, "end": 617, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 595, "end": 617, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 595, "end": 606, "ctxt": 0 }, "value": "SelectProps", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 606, "end": 617, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 607, "end": 613, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 607, "end": 613, "ctxt": 0 }, "value": "Person", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 615, "end": 616, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 615, "end": 616, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } ] } } } } } ], "decorators": [], "span": { "start": 547, "end": 644, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 574, "end": 586, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 575, "end": 585, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 575, "end": 576, "ctxt": 0 }, "value": "K", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": { "type": "TsTypeReference", "span": { "start": 579, "end": 585, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 579, "end": 585, "ctxt": 0 }, "value": "Person", "optional": false }, "typeParams": null } } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 618, "end": 643, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 620, "end": 643, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 620, "end": 632, "ctxt": 0 }, "value": "SelectResult", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 632, "end": 643, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 633, "end": 639, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 633, "end": 639, "ctxt": 0 }, "value": "Person", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 641, "end": 642, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 641, "end": 642, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } ] } } } }, { "type": "VariableDeclaration", "span": { "start": 646, "end": 676, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 652, "end": 675, "ctxt": 0 }, "id": { "type": "ArrayPattern", "span": { "start": 652, "end": 660, "ctxt": 0 }, "elements": [ { "type": "Identifier", "span": { "start": 653, "end": 659, "ctxt": 0 }, "value": "person", "optional": false, "typeAnnotation": null } ], "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 663, "end": 675, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 663, "end": 673, "ctxt": 0 }, "value": "selectJohn", "optional": false }, "arguments": [], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 677, "end": 714, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 683, "end": 713, "ctxt": 0 }, "id": { "type": "ArrayPattern", "span": { "start": 683, "end": 698, "ctxt": 0 }, "elements": [ { "type": "Identifier", "span": { "start": 684, "end": 687, "ctxt": 0 }, "value": "any", "optional": false, "typeAnnotation": null }, { "type": "Identifier", "span": { "start": 689, "end": 697, "ctxt": 0 }, "value": "whatever", "optional": false, "typeAnnotation": null } ], "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 701, "end": 713, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 701, "end": 711, "ctxt": 0 }, "value": "selectJohn", "optional": false }, "arguments": [], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 715, "end": 741, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 721, "end": 740, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 721, "end": 725, "ctxt": 0 }, "value": "john", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 728, "end": 740, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 728, "end": 738, "ctxt": 0 }, "value": "selectJohn", "optional": false }, "arguments": [], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 742, "end": 783, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 748, "end": 782, "ctxt": 0 }, "id": { "type": "ArrayPattern", "span": { "start": 748, "end": 775, "ctxt": 0 }, "elements": [ { "type": "Identifier", "span": { "start": 749, "end": 760, "ctxt": 0 }, "value": "personAgain", "optional": false, "typeAnnotation": null }, { "type": "Identifier", "span": { "start": 762, "end": 774, "ctxt": 0 }, "value": "nufinspecial", "optional": false, "typeAnnotation": null } ], "optional": false, "typeAnnotation": null }, "init": { "type": "Identifier", "span": { "start": 778, "end": 782, "ctxt": 0 }, "value": "john", "optional": false }, "definite": false } ] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 824, "end": 833, "ctxt": 0 }, "value": "makeTuple", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 838, "end": 845, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 838, "end": 845, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 841, "end": 845, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 843, "end": 845, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 843, "end": 845, "ctxt": 0 }, "value": "T1", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 807, "end": 853, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 833, "end": 837, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 834, "end": 836, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 834, "end": 836, "ctxt": 0 }, "value": "T1", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 846, "end": 852, "ctxt": 0 }, "typeAnnotation": { "type": "TsTupleType", "span": { "start": 848, "end": 852, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 849, "end": 851, "ctxt": 0 }, "label": null, "ty": { "type": "TsTypeReference", "span": { "start": 849, "end": 851, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 849, "end": 851, "ctxt": 0 }, "value": "T1", "optional": false }, "typeParams": null } } ] } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 871, "end": 878, "ctxt": 0 }, "value": "stringy", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 891, "end": 898, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 891, "end": 898, "ctxt": 0 }, "value": "arg", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 895, "end": 898, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 897, "end": 898, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 897, "end": 898, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 854, "end": 903, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 878, "end": 890, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 879, "end": 889, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 879, "end": 880, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": { "type": "TsKeywordType", "span": { "start": 883, "end": 889, "ctxt": 0 }, "kind": "string" } } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 899, "end": 902, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 901, "end": 902, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 901, "end": 902, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "VariableDeclaration", "span": { "start": 905, "end": 948, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 911, "end": 947, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 911, "end": 924, "ctxt": 0 }, "value": "isStringTuple", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 927, "end": 947, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 927, "end": 936, "ctxt": 0 }, "value": "makeTuple", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "CallExpression", "span": { "start": 937, "end": 946, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 937, "end": 944, "ctxt": 0 }, "value": "stringy", "optional": false }, "arguments": [], "typeArguments": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 962, "end": 999, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 968, "end": 998, "ctxt": 0 }, "id": { "type": "ArrayPattern", "span": { "start": 968, "end": 975, "ctxt": 0 }, "elements": [ { "type": "Identifier", "span": { "start": 969, "end": 974, "ctxt": 0 }, "value": "isAny", "optional": false, "typeAnnotation": null } ], "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 978, "end": 998, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 978, "end": 987, "ctxt": 0 }, "value": "makeTuple", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "CallExpression", "span": { "start": 988, "end": 997, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 988, "end": 995, "ctxt": 0 }, "value": "stringy", "optional": false }, "arguments": [], "typeArguments": null } } ], "typeArguments": null }, "definite": false } ] } ], "interpreter": null }