{ "type": "Script", "span": { "start": 0, "end": 592, "ctxt": 0 }, "body": [ { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 17, "end": 19, "ctxt": 0 }, "value": "f1", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 23, "end": 36, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 23, "end": 36, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 24, "end": 36, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 26, "end": 36, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 26, "end": 27, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 26, "end": 27, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 30, "end": 36, "ctxt": 0 }, "kind": "string" } ] } } } } ], "decorators": [], "span": { "start": 0, "end": 41, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 19, "end": 22, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 20, "end": 21, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 20, "end": 21, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 37, "end": 40, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 39, "end": 40, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 39, "end": 40, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "VariableDeclaration", "span": { "start": 43, "end": 58, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 47, "end": 57, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 47, "end": 49, "ctxt": 0 }, "value": "a1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 49, "end": 57, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 51, "end": 57, "ctxt": 0 }, "kind": "string" } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 59, "end": 85, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 63, "end": 84, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 63, "end": 65, "ctxt": 0 }, "value": "b1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 65, "end": 84, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 67, "end": 84, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 67, "end": 73, "ctxt": 0 }, "kind": "string" }, { "type": "TsArrayType", "span": { "start": 76, "end": 84, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 76, "end": 82, "ctxt": 0 }, "kind": "string" } } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 86, "end": 112, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 90, "end": 111, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 90, "end": 92, "ctxt": 0 }, "value": "c1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 92, "end": 111, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 94, "end": 111, "ctxt": 0 }, "types": [ { "type": "TsArrayType", "span": { "start": 94, "end": 102, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 94, "end": 100, "ctxt": 0 }, "kind": "string" } }, { "type": "TsKeywordType", "span": { "start": 105, "end": 111, "ctxt": 0 }, "kind": "string" } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 113, "end": 147, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 117, "end": 146, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 117, "end": 119, "ctxt": 0 }, "value": "d1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 119, "end": 146, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 121, "end": 146, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 121, "end": 127, "ctxt": 0 }, "kind": "string" }, { "type": "TsTypeLiteral", "span": { "start": 130, "end": 146, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 132, "end": 144, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 132, "end": 136, "ctxt": 0 }, "value": "name", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 136, "end": 144, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 138, "end": 144, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 148, "end": 182, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 152, "end": 181, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 152, "end": 154, "ctxt": 0 }, "value": "e1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 154, "end": 181, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 156, "end": 181, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 156, "end": 162, "ctxt": 0 }, "kind": "number" }, { "type": "TsKeywordType", "span": { "start": 165, "end": 171, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 174, "end": 181, "ctxt": 0 }, "kind": "boolean" } ] } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 183, "end": 190, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 183, "end": 189, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 183, "end": 185, "ctxt": 0 }, "value": "f1", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 186, "end": 188, "ctxt": 0 }, "value": "a1", "optional": false } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 201, "end": 208, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 201, "end": 207, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 201, "end": 203, "ctxt": 0 }, "value": "f1", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 204, "end": 206, "ctxt": 0 }, "value": "b1", "optional": false } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 221, "end": 228, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 221, "end": 227, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 221, "end": 223, "ctxt": 0 }, "value": "f1", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 224, "end": 226, "ctxt": 0 }, "value": "c1", "optional": false } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 241, "end": 248, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 241, "end": 247, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 241, "end": 243, "ctxt": 0 }, "value": "f1", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 244, "end": 246, "ctxt": 0 }, "value": "d1", "optional": false } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 269, "end": 276, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 269, "end": 275, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 269, "end": 271, "ctxt": 0 }, "value": "f1", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 272, "end": 274, "ctxt": 0 }, "value": "e1", "optional": false } } ], "typeArguments": null } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 315, "end": 317, "ctxt": 0 }, "value": "f2", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 321, "end": 344, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 321, "end": 344, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 322, "end": 344, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 324, "end": 344, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 324, "end": 325, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 324, "end": 325, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeLiteral", "span": { "start": 328, "end": 344, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 330, "end": 342, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 330, "end": 334, "ctxt": 0 }, "value": "name", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 334, "end": 342, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 336, "end": 342, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } ] } } } } ], "decorators": [], "span": { "start": 298, "end": 349, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 317, "end": 320, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 318, "end": 319, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 318, "end": 319, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 345, "end": 348, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 347, "end": 348, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 347, "end": 348, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "VariableDeclaration", "span": { "start": 351, "end": 385, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 355, "end": 384, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 355, "end": 357, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 357, "end": 384, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 359, "end": 384, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 359, "end": 365, "ctxt": 0 }, "kind": "string" }, { "type": "TsTypeLiteral", "span": { "start": 368, "end": 384, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 370, "end": 382, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 370, "end": 374, "ctxt": 0 }, "value": "name", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 374, "end": 382, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 376, "end": 382, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 386, "end": 422, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 390, "end": 421, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 390, "end": 392, "ctxt": 0 }, "value": "b2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 392, "end": 421, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 394, "end": 421, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 394, "end": 410, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 396, "end": 408, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 396, "end": 400, "ctxt": 0 }, "value": "name", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 400, "end": 408, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 402, "end": 408, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] }, { "type": "TsArrayType", "span": { "start": 413, "end": 421, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 413, "end": 419, "ctxt": 0 }, "kind": "string" } } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 423, "end": 466, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 427, "end": 465, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 427, "end": 429, "ctxt": 0 }, "value": "c2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 429, "end": 465, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 431, "end": 465, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 431, "end": 437, "ctxt": 0 }, "kind": "string" }, { "type": "TsTypeLiteral", "span": { "start": 440, "end": 456, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 442, "end": 454, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 442, "end": 446, "ctxt": 0 }, "value": "name", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 446, "end": 454, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 448, "end": 454, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] }, { "type": "TsKeywordType", "span": { "start": 459, "end": 465, "ctxt": 0 }, "kind": "number" } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 467, "end": 529, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 471, "end": 528, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 471, "end": 473, "ctxt": 0 }, "value": "d2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 473, "end": 528, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 475, "end": 528, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 475, "end": 481, "ctxt": 0 }, "kind": "string" }, { "type": "TsTypeLiteral", "span": { "start": 484, "end": 500, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 486, "end": 498, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 486, "end": 490, "ctxt": 0 }, "value": "name", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 490, "end": 498, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 492, "end": 498, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] }, { "type": "TsKeywordType", "span": { "start": 503, "end": 509, "ctxt": 0 }, "kind": "number" }, { "type": "TsTypeLiteral", "span": { "start": 512, "end": 528, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 514, "end": 526, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 514, "end": 518, "ctxt": 0 }, "value": "name", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 518, "end": 526, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 520, "end": 526, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } ] } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 530, "end": 537, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 530, "end": 536, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 530, "end": 532, "ctxt": 0 }, "value": "f2", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 533, "end": 535, "ctxt": 0 }, "value": "a2", "optional": false } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 548, "end": 555, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 548, "end": 554, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 548, "end": 550, "ctxt": 0 }, "value": "f2", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 551, "end": 553, "ctxt": 0 }, "value": "b2", "optional": false } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 568, "end": 575, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 568, "end": 574, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 568, "end": 570, "ctxt": 0 }, "value": "f2", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 571, "end": 573, "ctxt": 0 }, "value": "c2", "optional": false } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 585, "end": 592, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 585, "end": 591, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 585, "end": 587, "ctxt": 0 }, "value": "f2", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 588, "end": 590, "ctxt": 0 }, "value": "d2", "optional": false } } ], "typeArguments": null } } ], "interpreter": null }