{ "type": "Script", "span": { "start": 1, "end": 593, "ctxt": 0 }, "body": [ { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 18, "end": 20, "ctxt": 0 }, "value": "f1", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 24, "end": 37, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 24, "end": 37, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 25, "end": 37, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 27, "end": 37, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 27, "end": 28, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 27, "end": 28, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 31, "end": 37, "ctxt": 0 }, "kind": "string" } ] } } } } ], "decorators": [], "span": { "start": 1, "end": 42, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 20, "end": 23, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 21, "end": 22, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 21, "end": 22, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 38, "end": 41, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 40, "end": 41, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 40, "end": 41, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "VariableDeclaration", "span": { "start": 44, "end": 59, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 48, "end": 58, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 48, "end": 50, "ctxt": 0 }, "value": "a1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 50, "end": 58, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 52, "end": 58, "ctxt": 0 }, "kind": "string" } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 60, "end": 86, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 64, "end": 85, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 64, "end": 66, "ctxt": 0 }, "value": "b1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 66, "end": 85, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 68, "end": 85, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 68, "end": 74, "ctxt": 0 }, "kind": "string" }, { "type": "TsArrayType", "span": { "start": 77, "end": 85, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 77, "end": 83, "ctxt": 0 }, "kind": "string" } } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 87, "end": 113, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 91, "end": 112, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 91, "end": 93, "ctxt": 0 }, "value": "c1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 93, "end": 112, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 95, "end": 112, "ctxt": 0 }, "types": [ { "type": "TsArrayType", "span": { "start": 95, "end": 103, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 95, "end": 101, "ctxt": 0 }, "kind": "string" } }, { "type": "TsKeywordType", "span": { "start": 106, "end": 112, "ctxt": 0 }, "kind": "string" } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 114, "end": 148, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 118, "end": 147, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 118, "end": 120, "ctxt": 0 }, "value": "d1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 120, "end": 147, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 122, "end": 147, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 122, "end": 128, "ctxt": 0 }, "kind": "string" }, { "type": "TsTypeLiteral", "span": { "start": 131, "end": 147, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 133, "end": 145, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 133, "end": 137, "ctxt": 0 }, "value": "name", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 137, "end": 145, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 139, "end": 145, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 149, "end": 183, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 153, "end": 182, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 153, "end": 155, "ctxt": 0 }, "value": "e1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 155, "end": 182, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 157, "end": 182, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 157, "end": 163, "ctxt": 0 }, "kind": "number" }, { "type": "TsKeywordType", "span": { "start": 166, "end": 172, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 175, "end": 182, "ctxt": 0 }, "kind": "boolean" } ] } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 184, "end": 191, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 184, "end": 190, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 184, "end": 186, "ctxt": 0 }, "value": "f1", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 187, "end": 189, "ctxt": 0 }, "value": "a1", "optional": false } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 202, "end": 209, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 202, "end": 208, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 202, "end": 204, "ctxt": 0 }, "value": "f1", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 205, "end": 207, "ctxt": 0 }, "value": "b1", "optional": false } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 222, "end": 229, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 222, "end": 228, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 222, "end": 224, "ctxt": 0 }, "value": "f1", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 225, "end": 227, "ctxt": 0 }, "value": "c1", "optional": false } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 242, "end": 249, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 242, "end": 248, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 242, "end": 244, "ctxt": 0 }, "value": "f1", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 245, "end": 247, "ctxt": 0 }, "value": "d1", "optional": false } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 270, "end": 277, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 270, "end": 276, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 270, "end": 272, "ctxt": 0 }, "value": "f1", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 273, "end": 275, "ctxt": 0 }, "value": "e1", "optional": false } } ], "typeArguments": null } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 316, "end": 318, "ctxt": 0 }, "value": "f2", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 322, "end": 345, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 322, "end": 345, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 323, "end": 345, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 325, "end": 345, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 325, "end": 326, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 325, "end": 326, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeLiteral", "span": { "start": 329, "end": 345, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 331, "end": 343, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 331, "end": 335, "ctxt": 0 }, "value": "name", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 335, "end": 343, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 337, "end": 343, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } ] } } } } ], "decorators": [], "span": { "start": 299, "end": 350, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 318, "end": 321, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 319, "end": 320, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 319, "end": 320, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 346, "end": 349, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 348, "end": 349, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 348, "end": 349, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "VariableDeclaration", "span": { "start": 352, "end": 386, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 356, "end": 385, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 356, "end": 358, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 358, "end": 385, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 360, "end": 385, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 360, "end": 366, "ctxt": 0 }, "kind": "string" }, { "type": "TsTypeLiteral", "span": { "start": 369, "end": 385, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 371, "end": 383, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 371, "end": 375, "ctxt": 0 }, "value": "name", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 375, "end": 383, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 377, "end": 383, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 387, "end": 423, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 391, "end": 422, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 391, "end": 393, "ctxt": 0 }, "value": "b2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 393, "end": 422, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 395, "end": 422, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 395, "end": 411, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 397, "end": 409, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 397, "end": 401, "ctxt": 0 }, "value": "name", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 401, "end": 409, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 403, "end": 409, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] }, { "type": "TsArrayType", "span": { "start": 414, "end": 422, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 414, "end": 420, "ctxt": 0 }, "kind": "string" } } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 424, "end": 467, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 428, "end": 466, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 428, "end": 430, "ctxt": 0 }, "value": "c2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 430, "end": 466, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 432, "end": 466, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 432, "end": 438, "ctxt": 0 }, "kind": "string" }, { "type": "TsTypeLiteral", "span": { "start": 441, "end": 457, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 443, "end": 455, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 443, "end": 447, "ctxt": 0 }, "value": "name", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 447, "end": 455, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 449, "end": 455, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] }, { "type": "TsKeywordType", "span": { "start": 460, "end": 466, "ctxt": 0 }, "kind": "number" } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 468, "end": 530, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 472, "end": 529, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 472, "end": 474, "ctxt": 0 }, "value": "d2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 474, "end": 529, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 476, "end": 529, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 476, "end": 482, "ctxt": 0 }, "kind": "string" }, { "type": "TsTypeLiteral", "span": { "start": 485, "end": 501, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 487, "end": 499, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 487, "end": 491, "ctxt": 0 }, "value": "name", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 491, "end": 499, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 493, "end": 499, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] }, { "type": "TsKeywordType", "span": { "start": 504, "end": 510, "ctxt": 0 }, "kind": "number" }, { "type": "TsTypeLiteral", "span": { "start": 513, "end": 529, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 515, "end": 527, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 515, "end": 519, "ctxt": 0 }, "value": "name", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 519, "end": 527, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 521, "end": 527, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } ] } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 531, "end": 538, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 531, "end": 537, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 531, "end": 533, "ctxt": 0 }, "value": "f2", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 534, "end": 536, "ctxt": 0 }, "value": "a2", "optional": false } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 549, "end": 556, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 549, "end": 555, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 549, "end": 551, "ctxt": 0 }, "value": "f2", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 552, "end": 554, "ctxt": 0 }, "value": "b2", "optional": false } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 569, "end": 576, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 569, "end": 575, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 569, "end": 571, "ctxt": 0 }, "value": "f2", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 572, "end": 574, "ctxt": 0 }, "value": "c2", "optional": false } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 586, "end": 593, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 586, "end": 592, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 586, "end": 588, "ctxt": 0 }, "value": "f2", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 589, "end": 591, "ctxt": 0 }, "value": "d2", "optional": false } } ], "typeArguments": null } } ], "interpreter": null }