{ "type": "Script", "span": { "start": 20, "end": 3452, "ctxt": 0 }, "body": [ { "type": "VariableDeclaration", "span": { "start": 20, "end": 54, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 34, "end": 53, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 34, "end": 38, "ctxt": 0 }, "value": "sym1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 38, "end": 53, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 40, "end": 53, "ctxt": 0 }, "op": "unique", "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 47, "end": 53, "ctxt": 0 }, "kind": "symbol" } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 55, "end": 89, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 69, "end": 88, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 69, "end": 73, "ctxt": 0 }, "value": "sym2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 73, "end": 88, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 75, "end": 88, "ctxt": 0 }, "op": "unique", "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 82, "end": 88, "ctxt": 0 }, "kind": "symbol" } } } }, "init": null, "definite": false } ] }, { "type": "TsTypeAliasDeclaration", "span": { "start": 91, "end": 114, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 96, "end": 98, "ctxt": 0 }, "value": "T1", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 101, "end": 113, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 101, "end": 107, "ctxt": 0 }, "kind": "string" }, { "type": "TsLiteralType", "span": { "start": 110, "end": 113, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 110, "end": 113, "ctxt": 0 }, "value": "a", "raw": "'a'" } } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 123, "end": 152, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 128, "end": 130, "ctxt": 0 }, "value": "T2", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 133, "end": 151, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 133, "end": 136, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 133, "end": 136, "ctxt": 0 }, "value": "a", "raw": "'a'" } }, { "type": "TsKeywordType", "span": { "start": 139, "end": 145, "ctxt": 0 }, "kind": "string" }, { "type": "TsLiteralType", "span": { "start": 148, "end": 151, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 148, "end": 151, "ctxt": 0 }, "value": "b", "raw": "'b'" } } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 163, "end": 185, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 168, "end": 170, "ctxt": 0 }, "value": "T3", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 173, "end": 184, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 173, "end": 179, "ctxt": 0 }, "kind": "number" }, { "type": "TsLiteralType", "span": { "start": 182, "end": 184, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 182, "end": 184, "ctxt": 0 }, "value": 10.0, "raw": "10" } } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 193, "end": 220, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 198, "end": 200, "ctxt": 0 }, "value": "T4", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 203, "end": 219, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 203, "end": 205, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 203, "end": 205, "ctxt": 0 }, "value": 10.0, "raw": "10" } }, { "type": "TsKeywordType", "span": { "start": 208, "end": 214, "ctxt": 0 }, "kind": "number" }, { "type": "TsLiteralType", "span": { "start": 217, "end": 219, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 217, "end": 219, "ctxt": 0 }, "value": 20.0, "raw": "20" } } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 231, "end": 262, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 236, "end": 238, "ctxt": 0 }, "value": "T5", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 241, "end": 261, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 241, "end": 247, "ctxt": 0 }, "kind": "symbol" }, { "type": "TsTypeQuery", "span": { "start": 250, "end": 261, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 257, "end": 261, "ctxt": 0 }, "value": "sym1", "optional": false }, "typeArguments": null } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 279, "end": 324, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 284, "end": 286, "ctxt": 0 }, "value": "T6", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 289, "end": 323, "ctxt": 0 }, "types": [ { "type": "TsTypeQuery", "span": { "start": 289, "end": 300, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 296, "end": 300, "ctxt": 0 }, "value": "sym1", "optional": false }, "typeArguments": null }, { "type": "TsKeywordType", "span": { "start": 303, "end": 309, "ctxt": 0 }, "kind": "symbol" }, { "type": "TsTypeQuery", "span": { "start": 312, "end": 323, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 319, "end": 323, "ctxt": 0 }, "value": "sym2", "optional": false }, "typeArguments": null } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 335, "end": 395, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 340, "end": 342, "ctxt": 0 }, "value": "T7", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 345, "end": 394, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 345, "end": 351, "ctxt": 0 }, "kind": "string" }, { "type": "TsLiteralType", "span": { "start": 354, "end": 357, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 354, "end": 357, "ctxt": 0 }, "value": "a", "raw": "'a'" } }, { "type": "TsKeywordType", "span": { "start": 360, "end": 366, "ctxt": 0 }, "kind": "number" }, { "type": "TsLiteralType", "span": { "start": 369, "end": 371, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 369, "end": 371, "ctxt": 0 }, "value": 10.0, "raw": "10" } }, { "type": "TsKeywordType", "span": { "start": 374, "end": 380, "ctxt": 0 }, "kind": "symbol" }, { "type": "TsTypeQuery", "span": { "start": 383, "end": 394, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 390, "end": 394, "ctxt": 0 }, "value": "sym1", "optional": false }, "typeArguments": null } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 407, "end": 439, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 412, "end": 415, "ctxt": 0 }, "value": "T10", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 418, "end": 438, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 418, "end": 424, "ctxt": 0 }, "kind": "string" }, { "type": "TsParenthesizedType", "span": { "start": 427, "end": 438, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 428, "end": 437, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 428, "end": 431, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 428, "end": 431, "ctxt": 0 }, "value": "a", "raw": "'a'" } }, { "type": "TsLiteralType", "span": { "start": 434, "end": 437, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 434, "end": 437, "ctxt": 0 }, "value": "b", "raw": "'b'" } } ] } } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 454, "end": 496, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 459, "end": 462, "ctxt": 0 }, "value": "T11", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 465, "end": 495, "ctxt": 0 }, "types": [ { "type": "TsParenthesizedType", "span": { "start": 465, "end": 482, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 466, "end": 481, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 466, "end": 472, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 475, "end": 481, "ctxt": 0 }, "kind": "number" } ] } }, { "type": "TsParenthesizedType", "span": { "start": 485, "end": 495, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 486, "end": 494, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 486, "end": 489, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 486, "end": 489, "ctxt": 0 }, "value": "a", "raw": "'a'" } }, { "type": "TsLiteralType", "span": { "start": 492, "end": 494, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 492, "end": 494, "ctxt": 0 }, "value": 10.0, "raw": "10" } } ] } } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 511, "end": 531, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 516, "end": 518, "ctxt": 0 }, "value": "N1", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 521, "end": 530, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 521, "end": 524, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 521, "end": 524, "ctxt": 0 }, "value": "a", "raw": "'a'" } }, { "type": "TsLiteralType", "span": { "start": 527, "end": 530, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 527, "end": 530, "ctxt": 0 }, "value": "b", "raw": "'b'" } } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 532, "end": 563, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 537, "end": 539, "ctxt": 0 }, "value": "N2", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 542, "end": 562, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 542, "end": 555, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 544, "end": 553, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 544, "end": 545, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 545, "end": 553, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 547, "end": 553, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] }, { "type": "TsKeywordType", "span": { "start": 558, "end": 562, "ctxt": 0 }, "kind": "null" } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 564, "end": 600, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 569, "end": 571, "ctxt": 0 }, "value": "N3", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 574, "end": 599, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 574, "end": 587, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 576, "end": 585, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 576, "end": 577, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 577, "end": 585, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 579, "end": 585, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] }, { "type": "TsKeywordType", "span": { "start": 590, "end": 599, "ctxt": 0 }, "kind": "undefined" } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 601, "end": 627, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 606, "end": 608, "ctxt": 0 }, "value": "N4", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 611, "end": 626, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 611, "end": 617, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 620, "end": 626, "ctxt": 0 }, "kind": "number" } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 628, "end": 654, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 633, "end": 635, "ctxt": 0 }, "value": "N5", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 638, "end": 653, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 638, "end": 644, "ctxt": 0 }, "kind": "number" }, { "type": "TsKeywordType", "span": { "start": 647, "end": 653, "ctxt": 0 }, "kind": "object" } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 655, "end": 681, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 660, "end": 662, "ctxt": 0 }, "value": "N6", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 665, "end": 680, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 665, "end": 671, "ctxt": 0 }, "kind": "symbol" }, { "type": "TsKeywordType", "span": { "start": 674, "end": 680, "ctxt": 0 }, "kind": "string" } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 682, "end": 706, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 687, "end": 689, "ctxt": 0 }, "value": "N7", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 692, "end": 705, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 692, "end": 696, "ctxt": 0 }, "kind": "void" }, { "type": "TsKeywordType", "span": { "start": 699, "end": 705, "ctxt": 0 }, "kind": "string" } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 708, "end": 731, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 713, "end": 714, "ctxt": 0 }, "value": "X", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 717, "end": 730, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 719, "end": 728, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 719, "end": 720, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 720, "end": 728, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 722, "end": 728, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 733, "end": 757, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 738, "end": 740, "ctxt": 0 }, "value": "X1", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 743, "end": 756, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 743, "end": 744, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 743, "end": 744, "ctxt": 0 }, "value": "X", "optional": false }, "typeParams": null }, { "type": "TsIntersectionType", "span": { "start": 747, "end": 756, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 747, "end": 750, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 747, "end": 750, "ctxt": 0 }, "value": "a", "raw": "'a'" } }, { "type": "TsLiteralType", "span": { "start": 753, "end": 756, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 753, "end": 756, "ctxt": 0 }, "value": "b", "raw": "'b'" } } ] } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 758, "end": 793, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 763, "end": 765, "ctxt": 0 }, "value": "X2", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 768, "end": 792, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 768, "end": 769, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 768, "end": 769, "ctxt": 0 }, "value": "X", "optional": false }, "typeParams": null }, { "type": "TsIntersectionType", "span": { "start": 772, "end": 792, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 772, "end": 785, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 774, "end": 783, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 774, "end": 775, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 775, "end": 783, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 777, "end": 783, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] }, { "type": "TsKeywordType", "span": { "start": 788, "end": 792, "ctxt": 0 }, "kind": "null" } ] } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 794, "end": 834, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 799, "end": 801, "ctxt": 0 }, "value": "X3", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 804, "end": 833, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 804, "end": 805, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 804, "end": 805, "ctxt": 0 }, "value": "X", "optional": false }, "typeParams": null }, { "type": "TsIntersectionType", "span": { "start": 808, "end": 833, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 808, "end": 821, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 810, "end": 819, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 810, "end": 811, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 811, "end": 819, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 813, "end": 819, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] }, { "type": "TsKeywordType", "span": { "start": 824, "end": 833, "ctxt": 0 }, "kind": "undefined" } ] } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 835, "end": 865, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 840, "end": 842, "ctxt": 0 }, "value": "X4", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 845, "end": 864, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 845, "end": 846, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 845, "end": 846, "ctxt": 0 }, "value": "X", "optional": false }, "typeParams": null }, { "type": "TsIntersectionType", "span": { "start": 849, "end": 864, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 849, "end": 855, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 858, "end": 864, "ctxt": 0 }, "kind": "number" } ] } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 866, "end": 896, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 871, "end": 873, "ctxt": 0 }, "value": "X5", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 876, "end": 895, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 876, "end": 877, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 876, "end": 877, "ctxt": 0 }, "value": "X", "optional": false }, "typeParams": null }, { "type": "TsIntersectionType", "span": { "start": 880, "end": 895, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 880, "end": 886, "ctxt": 0 }, "kind": "number" }, { "type": "TsKeywordType", "span": { "start": 889, "end": 895, "ctxt": 0 }, "kind": "object" } ] } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 897, "end": 927, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 902, "end": 904, "ctxt": 0 }, "value": "X6", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 907, "end": 926, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 907, "end": 908, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 907, "end": 908, "ctxt": 0 }, "value": "X", "optional": false }, "typeParams": null }, { "type": "TsIntersectionType", "span": { "start": 911, "end": 926, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 911, "end": 917, "ctxt": 0 }, "kind": "symbol" }, { "type": "TsKeywordType", "span": { "start": 920, "end": 926, "ctxt": 0 }, "kind": "string" } ] } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 928, "end": 956, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 933, "end": 935, "ctxt": 0 }, "value": "X7", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 938, "end": 955, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 938, "end": 939, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 938, "end": 939, "ctxt": 0 }, "value": "X", "optional": false }, "typeParams": null }, { "type": "TsIntersectionType", "span": { "start": 942, "end": 955, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 942, "end": 946, "ctxt": 0 }, "kind": "void" }, { "type": "TsKeywordType", "span": { "start": 949, "end": 955, "ctxt": 0 }, "kind": "string" } ] } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 958, "end": 994, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 963, "end": 964, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 967, "end": 993, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 969, "end": 979, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 969, "end": 973, "ctxt": 0 }, "value": "kind", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 973, "end": 978, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 975, "end": 978, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 975, "end": 978, "ctxt": 0 }, "value": "a", "raw": "'a'" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 980, "end": 991, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 980, "end": 983, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 983, "end": 991, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 985, "end": 991, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 995, "end": 1031, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1000, "end": 1001, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1004, "end": 1030, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1006, "end": 1016, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1006, "end": 1010, "ctxt": 0 }, "value": "kind", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1010, "end": 1015, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1012, "end": 1015, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1012, "end": 1015, "ctxt": 0 }, "value": "b", "raw": "'b'" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1017, "end": 1028, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1017, "end": 1020, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1020, "end": 1028, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1022, "end": 1028, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1032, "end": 1068, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1037, "end": 1038, "ctxt": 0 }, "value": "C", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1041, "end": 1067, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1043, "end": 1053, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1043, "end": 1047, "ctxt": 0 }, "value": "kind", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1047, "end": 1052, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1049, "end": 1052, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1049, "end": 1052, "ctxt": 0 }, "value": "c", "raw": "'c'" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1054, "end": 1065, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1054, "end": 1057, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1057, "end": 1065, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1059, "end": 1065, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, { "type": "VariableDeclaration", "span": { "start": 1070, "end": 1092, "ctxt": 0 }, "kind": "let", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1082, "end": 1091, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1082, "end": 1084, "ctxt": 0 }, "value": "ab", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1084, "end": 1091, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 1086, "end": 1091, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1086, "end": 1087, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1086, "end": 1087, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 1090, "end": 1091, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1090, "end": 1091, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 1093, "end": 1101, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1093, "end": 1100, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1093, "end": 1095, "ctxt": 0 }, "value": "ab", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1096, "end": 1100, "ctxt": 0 }, "value": "kind", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 1113, "end": 1140, "ctxt": 0 }, "kind": "let", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1125, "end": 1139, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1125, "end": 1126, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1126, "end": 1139, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 1128, "end": 1139, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1128, "end": 1129, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1128, "end": 1129, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null }, { "type": "TsParenthesizedType", "span": { "start": 1132, "end": 1139, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 1133, "end": 1138, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1133, "end": 1134, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1133, "end": 1134, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 1137, "end": 1138, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1137, "end": 1138, "ctxt": 0 }, "value": "C", "optional": false }, "typeParams": null } ] } } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1147, "end": 1160, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1151, "end": 1159, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1151, "end": 1152, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1152, "end": 1155, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1154, "end": 1155, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1154, "end": 1155, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } } }, "init": { "type": "Identifier", "span": { "start": 1158, "end": 1159, "ctxt": 0 }, "value": "x", "optional": false }, "definite": false } ] }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1162, "end": 1178, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1167, "end": 1169, "ctxt": 0 }, "value": "AB", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 1172, "end": 1177, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1172, "end": 1173, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1172, "end": 1173, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 1176, "end": 1177, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1176, "end": 1177, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": null } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1189, "end": 1205, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1194, "end": 1196, "ctxt": 0 }, "value": "BC", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 1199, "end": 1204, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1199, "end": 1200, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1199, "end": 1200, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 1203, "end": 1204, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1203, "end": 1204, "ctxt": 0 }, "value": "C", "optional": false }, "typeParams": null } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1217, "end": 1242, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1222, "end": 1224, "ctxt": 0 }, "value": "U1", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1227, "end": 1241, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1227, "end": 1234, "ctxt": 0 }, "value": "Partial", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1234, "end": 1241, "ctxt": 0 }, "params": [ { "type": "TsIntersectionType", "span": { "start": 1235, "end": 1240, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1235, "end": 1236, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1235, "end": 1236, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 1239, "end": 1240, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1239, "end": 1240, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": null } ] } ] } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1253, "end": 1279, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1258, "end": 1260, "ctxt": 0 }, "value": "U2", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1263, "end": 1278, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1263, "end": 1271, "ctxt": 0 }, "value": "Readonly", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1271, "end": 1278, "ctxt": 0 }, "params": [ { "type": "TsIntersectionType", "span": { "start": 1272, "end": 1277, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1272, "end": 1273, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1272, "end": 1273, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 1276, "end": 1277, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1276, "end": 1277, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": null } ] } ] } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1290, "end": 1316, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1295, "end": 1297, "ctxt": 0 }, "value": "U3", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1300, "end": 1315, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsParenthesizedType", "span": { "start": 1300, "end": 1307, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 1301, "end": 1306, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1301, "end": 1302, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1301, "end": 1302, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 1305, "end": 1306, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1305, "end": 1306, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": null } ] } }, "indexType": { "type": "TsLiteralType", "span": { "start": 1308, "end": 1314, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1308, "end": 1314, "ctxt": 0 }, "value": "kind", "raw": "'kind'" } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1327, "end": 1351, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1332, "end": 1334, "ctxt": 0 }, "value": "U4", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 1337, "end": 1350, "ctxt": 0 }, "types": [ { "type": "TsIntersectionType", "span": { "start": 1337, "end": 1342, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1337, "end": 1338, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1337, "end": 1338, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 1341, "end": 1342, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1341, "end": 1342, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": null } ] }, { "type": "TsIntersectionType", "span": { "start": 1345, "end": 1350, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1345, "end": 1346, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1345, "end": 1346, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 1349, "end": 1350, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1349, "end": 1350, "ctxt": 0 }, "value": "C", "optional": false }, "typeParams": null } ] } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1362, "end": 1382, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1367, "end": 1369, "ctxt": 0 }, "value": "U5", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 1372, "end": 1381, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1372, "end": 1373, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1372, "end": 1373, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null }, { "type": "TsIntersectionType", "span": { "start": 1376, "end": 1381, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1376, "end": 1377, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1376, "end": 1377, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 1380, "end": 1381, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1380, "end": 1381, "ctxt": 0 }, "value": "C", "optional": false }, "typeParams": null } ] } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1390, "end": 1414, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1395, "end": 1397, "ctxt": 0 }, "value": "K1", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 1400, "end": 1413, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsParenthesizedType", "span": { "start": 1406, "end": 1413, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 1407, "end": 1412, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1407, "end": 1408, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1407, "end": 1408, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 1411, "end": 1412, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1411, "end": 1412, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": null } ] } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1444, "end": 1472, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1449, "end": 1451, "ctxt": 0 }, "value": "K2", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 1454, "end": 1471, "ctxt": 0 }, "types": [ { "type": "TsTypeOperator", "span": { "start": 1454, "end": 1461, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1460, "end": 1461, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1460, "end": 1461, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } }, { "type": "TsTypeOperator", "span": { "start": 1464, "end": 1471, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1470, "end": 1471, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1470, "end": 1471, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": null } } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1493, "end": 1580, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1498, "end": 1504, "ctxt": 0 }, "value": "Merge1", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1504, "end": 1510, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1505, "end": 1506, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1505, "end": 1506, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1508, "end": 1509, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1508, "end": 1509, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsMappedType", "span": { "start": 1513, "end": 1580, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 1516, "end": 1534, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1516, "end": 1517, "ctxt": 0 }, "value": "P", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeOperator", "span": { "start": 1521, "end": 1534, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsParenthesizedType", "span": { "start": 1527, "end": 1534, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 1528, "end": 1533, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1528, "end": 1529, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1528, "end": 1529, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 1532, "end": 1533, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1532, "end": 1533, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } ] } } }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsConditionalType", "span": { "start": 1537, "end": 1578, "ctxt": 0 }, "checkType": { "type": "TsTypeReference", "span": { "start": 1537, "end": 1538, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1537, "end": 1538, "ctxt": 0 }, "value": "P", "optional": false }, "typeParams": null }, "extendsType": { "type": "TsTypeOperator", "span": { "start": 1547, "end": 1554, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1553, "end": 1554, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1553, "end": 1554, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "trueType": { "type": "TsIndexedAccessType", "span": { "start": 1557, "end": 1561, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 1557, "end": 1558, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1557, "end": 1558, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 1559, "end": 1560, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1559, "end": 1560, "ctxt": 0 }, "value": "P", "optional": false }, "typeParams": null } }, "falseType": { "type": "TsIndexedAccessType", "span": { "start": 1564, "end": 1578, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 1564, "end": 1565, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1564, "end": 1565, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null }, "indexType": { "type": "TsIntersectionType", "span": { "start": 1566, "end": 1577, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1566, "end": 1567, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1566, "end": 1567, "ctxt": 0 }, "value": "P", "optional": false }, "typeParams": null }, { "type": "TsTypeOperator", "span": { "start": 1570, "end": 1577, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1576, "end": 1577, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1576, "end": 1577, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } ] } } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1581, "end": 1672, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1586, "end": 1592, "ctxt": 0 }, "value": "Merge2", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1592, "end": 1598, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1593, "end": 1594, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1593, "end": 1594, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1596, "end": 1597, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1596, "end": 1597, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsMappedType", "span": { "start": 1601, "end": 1672, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 1604, "end": 1626, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1604, "end": 1605, "ctxt": 0 }, "value": "P", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsUnionType", "span": { "start": 1609, "end": 1626, "ctxt": 0 }, "types": [ { "type": "TsTypeOperator", "span": { "start": 1609, "end": 1616, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1615, "end": 1616, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1615, "end": 1616, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, { "type": "TsTypeOperator", "span": { "start": 1619, "end": 1626, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1625, "end": 1626, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1625, "end": 1626, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } ] }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsConditionalType", "span": { "start": 1629, "end": 1670, "ctxt": 0 }, "checkType": { "type": "TsTypeReference", "span": { "start": 1629, "end": 1630, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1629, "end": 1630, "ctxt": 0 }, "value": "P", "optional": false }, "typeParams": null }, "extendsType": { "type": "TsTypeOperator", "span": { "start": 1639, "end": 1646, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1645, "end": 1646, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1645, "end": 1646, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "trueType": { "type": "TsIndexedAccessType", "span": { "start": 1649, "end": 1653, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 1649, "end": 1650, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1649, "end": 1650, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 1651, "end": 1652, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1651, "end": 1652, "ctxt": 0 }, "value": "P", "optional": false }, "typeParams": null } }, "falseType": { "type": "TsIndexedAccessType", "span": { "start": 1656, "end": 1670, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 1656, "end": 1657, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1656, "end": 1657, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null }, "indexType": { "type": "TsIntersectionType", "span": { "start": 1658, "end": 1669, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1658, "end": 1659, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1658, "end": 1659, "ctxt": 0 }, "value": "P", "optional": false }, "typeParams": null }, { "type": "TsTypeOperator", "span": { "start": 1662, "end": 1669, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1668, "end": 1669, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1668, "end": 1669, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } ] } } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1674, "end": 1716, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1679, "end": 1681, "ctxt": 0 }, "value": "M1", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 1684, "end": 1715, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 1684, "end": 1698, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1686, "end": 1691, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1686, "end": 1687, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1687, "end": 1690, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1689, "end": 1690, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 1689, "end": 1690, "ctxt": 0 }, "value": 1.0, "raw": "1" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1692, "end": 1696, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1692, "end": 1693, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1693, "end": 1696, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1695, "end": 1696, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 1695, "end": 1696, "ctxt": 0 }, "value": 2.0, "raw": "2" } } }, "typeParams": null } ] }, { "type": "TsTypeLiteral", "span": { "start": 1701, "end": 1715, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1703, "end": 1708, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1703, "end": 1704, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1704, "end": 1707, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1706, "end": 1707, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 1706, "end": 1707, "ctxt": 0 }, "value": 2.0, "raw": "2" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1709, "end": 1713, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1709, "end": 1710, "ctxt": 0 }, "value": "c", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1710, "end": 1713, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1712, "end": 1713, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 1712, "end": 1713, "ctxt": 0 }, "value": 3.0, "raw": "3" } } }, "typeParams": null } ] } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1727, "end": 1776, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1732, "end": 1734, "ctxt": 0 }, "value": "M2", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1737, "end": 1775, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1737, "end": 1743, "ctxt": 0 }, "value": "Merge1", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1743, "end": 1775, "ctxt": 0 }, "params": [ { "type": "TsTypeLiteral", "span": { "start": 1744, "end": 1758, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1746, "end": 1751, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1746, "end": 1747, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1747, "end": 1750, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1749, "end": 1750, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 1749, "end": 1750, "ctxt": 0 }, "value": 1.0, "raw": "1" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1752, "end": 1756, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1752, "end": 1753, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1753, "end": 1756, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1755, "end": 1756, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 1755, "end": 1756, "ctxt": 0 }, "value": 2.0, "raw": "2" } } }, "typeParams": null } ] }, { "type": "TsTypeLiteral", "span": { "start": 1760, "end": 1774, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1762, "end": 1767, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1762, "end": 1763, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1763, "end": 1766, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1765, "end": 1766, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 1765, "end": 1766, "ctxt": 0 }, "value": 2.0, "raw": "2" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1768, "end": 1772, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1768, "end": 1769, "ctxt": 0 }, "value": "c", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1769, "end": 1772, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1771, "end": 1772, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 1771, "end": 1772, "ctxt": 0 }, "value": 3.0, "raw": "3" } } }, "typeParams": null } ] } ] } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1784, "end": 1833, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1789, "end": 1791, "ctxt": 0 }, "value": "M3", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1794, "end": 1832, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1794, "end": 1800, "ctxt": 0 }, "value": "Merge2", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1800, "end": 1832, "ctxt": 0 }, "params": [ { "type": "TsTypeLiteral", "span": { "start": 1801, "end": 1815, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1803, "end": 1808, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1803, "end": 1804, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1804, "end": 1807, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1806, "end": 1807, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 1806, "end": 1807, "ctxt": 0 }, "value": 1.0, "raw": "1" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1809, "end": 1813, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1809, "end": 1810, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1810, "end": 1813, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1812, "end": 1813, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 1812, "end": 1813, "ctxt": 0 }, "value": 2.0, "raw": "2" } } }, "typeParams": null } ] }, { "type": "TsTypeLiteral", "span": { "start": 1817, "end": 1831, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1819, "end": 1824, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1819, "end": 1820, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1820, "end": 1823, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1822, "end": 1823, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 1822, "end": 1823, "ctxt": 0 }, "value": 2.0, "raw": "2" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1825, "end": 1829, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1825, "end": 1826, "ctxt": 0 }, "value": "c", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1826, "end": 1829, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1828, "end": 1829, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 1828, "end": 1829, "ctxt": 0 }, "value": 3.0, "raw": "3" } } }, "typeParams": null } ] } ] } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1860, "end": 1897, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1865, "end": 1866, "ctxt": 0 }, "value": "D", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1869, "end": 1896, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1871, "end": 1881, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1871, "end": 1875, "ctxt": 0 }, "value": "kind", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1875, "end": 1880, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1877, "end": 1880, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1877, "end": 1880, "ctxt": 0 }, "value": "d", "raw": "'d'" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1882, "end": 1894, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1882, "end": 1885, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1885, "end": 1894, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1887, "end": 1894, "ctxt": 0 }, "kind": "unknown" } }, "typeParams": null } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1898, "end": 1935, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1903, "end": 1904, "ctxt": 0 }, "value": "E", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1907, "end": 1934, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1909, "end": 1919, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1909, "end": 1913, "ctxt": 0 }, "value": "kind", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1913, "end": 1918, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1915, "end": 1918, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1915, "end": 1918, "ctxt": 0 }, "value": "e", "raw": "'e'" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1920, "end": 1932, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1920, "end": 1923, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1923, "end": 1932, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1925, "end": 1932, "ctxt": 0 }, "kind": "unknown" } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1954, "end": 1957, "ctxt": 0 }, "value": "f10", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 1961, "end": 1974, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1961, "end": 1974, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1962, "end": 1974, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1964, "end": 1974, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1966, "end": 1972, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1966, "end": 1969, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1969, "end": 1972, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1971, "end": 1972, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1971, "end": 1972, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } } ], "decorators": [], "span": { "start": 1937, "end": 1979, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 1957, "end": 1960, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1958, "end": 1959, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1958, "end": 1959, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 1975, "end": 1978, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1977, "end": 1978, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1977, "end": 1978, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "VariableDeclaration", "span": { "start": 1981, "end": 2003, "ctxt": 0 }, "kind": "let", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1993, "end": 2002, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1993, "end": 1995, "ctxt": 0 }, "value": "a1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1995, "end": 2002, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 1997, "end": 2002, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1997, "end": 1998, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1997, "end": 1998, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 2001, "end": 2002, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2001, "end": 2002, "ctxt": 0 }, "value": "D", "optional": false }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2004, "end": 2030, "ctxt": 0 }, "kind": "let", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2016, "end": 2029, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2016, "end": 2018, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2018, "end": 2029, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 2020, "end": 2029, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 2020, "end": 2021, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2020, "end": 2021, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null }, { "type": "TsIntersectionType", "span": { "start": 2024, "end": 2029, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 2024, "end": 2025, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2024, "end": 2025, "ctxt": 0 }, "value": "D", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 2028, "end": 2029, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2028, "end": 2029, "ctxt": 0 }, "value": "E", "optional": false }, "typeParams": null } ] } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2032, "end": 2049, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2036, "end": 2048, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2036, "end": 2038, "ctxt": 0 }, "value": "r1", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 2041, "end": 2048, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2041, "end": 2044, "ctxt": 0 }, "value": "f10", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2045, "end": 2047, "ctxt": 0 }, "value": "a1", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2062, "end": 2079, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2066, "end": 2078, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2066, "end": 2068, "ctxt": 0 }, "value": "r2", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 2071, "end": 2078, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2071, "end": 2074, "ctxt": 0 }, "value": "f10", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2075, "end": 2077, "ctxt": 0 }, "value": "a2", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2114, "end": 2145, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2120, "end": 2144, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2120, "end": 2122, "ctxt": 0 }, "value": "x1", "optional": false, "typeAnnotation": null }, "init": { "type": "ObjectExpression", "span": { "start": 2125, "end": 2144, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 2127, "end": 2128, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 2130, "end": 2135, "ctxt": 0 }, "value": "foo", "raw": "'foo'" } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 2137, "end": 2138, "ctxt": 0 }, "value": "b", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 2140, "end": 2142, "ctxt": 0 }, "value": 42.0, "raw": "42" } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2146, "end": 2179, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2152, "end": 2178, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2152, "end": 2154, "ctxt": 0 }, "value": "x2", "optional": false, "typeAnnotation": null }, "init": { "type": "ObjectExpression", "span": { "start": 2157, "end": 2178, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 2159, "end": 2160, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 2162, "end": 2167, "ctxt": 0 }, "value": "foo", "raw": "'foo'" } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 2169, "end": 2170, "ctxt": 0 }, "value": "b", "optional": false }, "value": { "type": "BooleanLiteral", "span": { "start": 2172, "end": 2176, "ctxt": 0 }, "value": true } } ] }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2181, "end": 2206, "ctxt": 0 }, "kind": "let", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2193, "end": 2205, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2193, "end": 2194, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2194, "end": 2205, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 2196, "end": 2205, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 2196, "end": 2199, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2196, "end": 2199, "ctxt": 0 }, "value": "a", "raw": "'a'" } }, { "type": "TsLiteralType", "span": { "start": 2202, "end": 2205, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2202, "end": 2205, "ctxt": 0 }, "value": "b", "raw": "'b'" } } ] } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 2208, "end": 2229, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2208, "end": 2228, "ctxt": 0 }, "operator": "=", "left": { "type": "MemberExpression", "span": { "start": 2208, "end": 2213, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2208, "end": 2210, "ctxt": 0 }, "value": "x1", "optional": false }, "property": { "type": "Computed", "span": { "start": 2210, "end": 2213, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2211, "end": 2212, "ctxt": 0 }, "value": "k", "optional": false } } }, "right": { "type": "TsAsExpression", "span": { "start": 2216, "end": 2228, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 2216, "end": 2221, "ctxt": 0 }, "value": "bar", "raw": "'bar'" }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2225, "end": 2228, "ctxt": 0 }, "kind": "any" } } } }, { "type": "ExpressionStatement", "span": { "start": 2240, "end": 2261, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2240, "end": 2260, "ctxt": 0 }, "operator": "=", "left": { "type": "MemberExpression", "span": { "start": 2240, "end": 2245, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2240, "end": 2242, "ctxt": 0 }, "value": "x2", "optional": false }, "property": { "type": "Computed", "span": { "start": 2242, "end": 2245, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2243, "end": 2244, "ctxt": 0 }, "value": "k", "optional": false } } }, "right": { "type": "TsAsExpression", "span": { "start": 2248, "end": 2260, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 2248, "end": 2253, "ctxt": 0 }, "value": "bar", "raw": "'bar'" }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2257, "end": 2260, "ctxt": 0 }, "kind": "any" } } } }, { "type": "TsEnumDeclaration", "span": { "start": 2273, "end": 2291, "ctxt": 0 }, "declare": false, "isConst": true, "id": { "type": "Identifier", "span": { "start": 2284, "end": 2288, "ctxt": 0 }, "value": "Tag1", "optional": false }, "members": [] }, { "type": "TsEnumDeclaration", "span": { "start": 2292, "end": 2310, "ctxt": 0 }, "declare": false, "isConst": true, "id": { "type": "Identifier", "span": { "start": 2303, "end": 2307, "ctxt": 0 }, "value": "Tag2", "optional": false }, "members": [] }, { "type": "VariableDeclaration", "span": { "start": 2312, "end": 2342, "ctxt": 0 }, "kind": "let", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2324, "end": 2341, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2324, "end": 2326, "ctxt": 0 }, "value": "s1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2326, "end": 2341, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 2328, "end": 2341, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 2328, "end": 2334, "ctxt": 0 }, "kind": "string" }, { "type": "TsTypeReference", "span": { "start": 2337, "end": 2341, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2337, "end": 2341, "ctxt": 0 }, "value": "Tag1", "optional": false }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2343, "end": 2373, "ctxt": 0 }, "kind": "let", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2355, "end": 2372, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2355, "end": 2357, "ctxt": 0 }, "value": "s2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2357, "end": 2372, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 2359, "end": 2372, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 2359, "end": 2365, "ctxt": 0 }, "kind": "string" }, { "type": "TsTypeReference", "span": { "start": 2368, "end": 2372, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2368, "end": 2372, "ctxt": 0 }, "value": "Tag2", "optional": false }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2375, "end": 2417, "ctxt": 0 }, "kind": "let", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2387, "end": 2416, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2387, "end": 2389, "ctxt": 0 }, "value": "t1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2389, "end": 2416, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 2391, "end": 2416, "ctxt": 0 }, "types": [ { "type": "TsIntersectionType", "span": { "start": 2391, "end": 2404, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 2391, "end": 2397, "ctxt": 0 }, "kind": "string" }, { "type": "TsTypeReference", "span": { "start": 2400, "end": 2404, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2400, "end": 2404, "ctxt": 0 }, "value": "Tag1", "optional": false }, "typeParams": null } ] }, { "type": "TsKeywordType", "span": { "start": 2407, "end": 2416, "ctxt": 0 }, "kind": "undefined" } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2418, "end": 2460, "ctxt": 0 }, "kind": "let", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2430, "end": 2459, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2430, "end": 2432, "ctxt": 0 }, "value": "t2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2432, "end": 2459, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 2434, "end": 2459, "ctxt": 0 }, "types": [ { "type": "TsIntersectionType", "span": { "start": 2434, "end": 2447, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 2434, "end": 2440, "ctxt": 0 }, "kind": "string" }, { "type": "TsTypeReference", "span": { "start": 2443, "end": 2447, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2443, "end": 2447, "ctxt": 0 }, "value": "Tag2", "optional": false }, "typeParams": null } ] }, { "type": "TsKeywordType", "span": { "start": 2450, "end": 2459, "ctxt": 0 }, "kind": "undefined" } ] } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 2462, "end": 2470, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2462, "end": 2469, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2462, "end": 2464, "ctxt": 0 }, "value": "s1", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2467, "end": 2469, "ctxt": 0 }, "value": "s2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2471, "end": 2479, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2471, "end": 2478, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2471, "end": 2473, "ctxt": 0 }, "value": "s2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2476, "end": 2478, "ctxt": 0 }, "value": "s1", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2481, "end": 2489, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2481, "end": 2488, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2481, "end": 2483, "ctxt": 0 }, "value": "t1", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2486, "end": 2488, "ctxt": 0 }, "value": "t2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2490, "end": 2498, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2490, "end": 2497, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2490, "end": 2492, "ctxt": 0 }, "value": "t2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2495, "end": 2497, "ctxt": 0 }, "value": "t1", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 2522, "end": 2566, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2528, "end": 2565, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2528, "end": 2530, "ctxt": 0 }, "value": "f1", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 2533, "end": 2565, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2534, "end": 2554, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2535, "end": 2554, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 2537, "end": 2554, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 2537, "end": 2540, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2537, "end": 2540, "ctxt": 0 }, "value": "a", "raw": "\"a\"" } }, { "type": "TsParenthesizedType", "span": { "start": 2543, "end": 2554, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 2544, "end": 2553, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 2544, "end": 2547, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2544, "end": 2547, "ctxt": 0 }, "value": "b", "raw": "\"b\"" } }, { "type": "TsLiteralType", "span": { "start": 2550, "end": 2553, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2550, "end": 2553, "ctxt": 0 }, "value": "c", "raw": "\"c\"" } } ] } } ] } } } ], "body": { "type": "Identifier", "span": { "start": 2564, "end": 2565, "ctxt": 0 }, "value": "t", "optional": false }, "async": false, "generator": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 2555, "end": 2560, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 2557, "end": 2560, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2557, "end": 2560, "ctxt": 0 }, "value": "a", "raw": "\"a\"" } } } }, "definite": false } ] }, { "type": "TsTypeAliasDeclaration", "span": { "start": 2568, "end": 2625, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 2573, "end": 2582, "ctxt": 0 }, "value": "Container", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2582, "end": 2603, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2583, "end": 2602, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2583, "end": 2587, "ctxt": 0 }, "value": "Type", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsKeywordType", "span": { "start": 2596, "end": 2602, "ctxt": 0 }, "kind": "string" }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2606, "end": 2625, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2612, "end": 2623, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2612, "end": 2616, "ctxt": 0 }, "value": "type", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2616, "end": 2622, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2618, "end": 2622, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2618, "end": 2622, "ctxt": 0 }, "value": "Type", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "VariableDeclaration", "span": { "start": 2627, "end": 2715, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2633, "end": 2714, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2633, "end": 2635, "ctxt": 0 }, "value": "f2", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 2638, "end": 2714, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2639, "end": 2692, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2640, "end": 2692, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 2642, "end": 2692, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 2642, "end": 2656, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2642, "end": 2651, "ctxt": 0 }, "value": "Container", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2651, "end": 2656, "ctxt": 0 }, "params": [ { "type": "TsLiteralType", "span": { "start": 2652, "end": 2655, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2652, "end": 2655, "ctxt": 0 }, "value": "a", "raw": "\"a\"" } } ] } }, { "type": "TsParenthesizedType", "span": { "start": 2659, "end": 2692, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 2660, "end": 2691, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 2660, "end": 2674, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2660, "end": 2669, "ctxt": 0 }, "value": "Container", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2669, "end": 2674, "ctxt": 0 }, "params": [ { "type": "TsLiteralType", "span": { "start": 2670, "end": 2673, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2670, "end": 2673, "ctxt": 0 }, "value": "b", "raw": "\"b\"" } } ] } }, { "type": "TsTypeReference", "span": { "start": 2677, "end": 2691, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2677, "end": 2686, "ctxt": 0 }, "value": "Container", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2686, "end": 2691, "ctxt": 0 }, "params": [ { "type": "TsLiteralType", "span": { "start": 2687, "end": 2690, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2687, "end": 2690, "ctxt": 0 }, "value": "c", "raw": "\"c\"" } } ] } } ] } } ] } } } ], "body": { "type": "Identifier", "span": { "start": 2713, "end": 2714, "ctxt": 0 }, "value": "t", "optional": false }, "async": false, "generator": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 2693, "end": 2709, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2695, "end": 2709, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2695, "end": 2704, "ctxt": 0 }, "value": "Container", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2704, "end": 2709, "ctxt": 0 }, "params": [ { "type": "TsLiteralType", "span": { "start": 2705, "end": 2708, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2705, "end": 2708, "ctxt": 0 }, "value": "a", "raw": "\"a\"" } } ] } } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2716, "end": 2825, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2722, "end": 2824, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2722, "end": 2724, "ctxt": 0 }, "value": "f3", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 2727, "end": 2824, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2728, "end": 2802, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2729, "end": 2802, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 2731, "end": 2802, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 2731, "end": 2745, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2731, "end": 2740, "ctxt": 0 }, "value": "Container", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2740, "end": 2745, "ctxt": 0 }, "params": [ { "type": "TsLiteralType", "span": { "start": 2741, "end": 2744, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2741, "end": 2744, "ctxt": 0 }, "value": "a", "raw": "\"a\"" } } ] } }, { "type": "TsParenthesizedType", "span": { "start": 2748, "end": 2802, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 2749, "end": 2801, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 2749, "end": 2763, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2749, "end": 2758, "ctxt": 0 }, "value": "Container", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2758, "end": 2763, "ctxt": 0 }, "params": [ { "type": "TsLiteralType", "span": { "start": 2759, "end": 2762, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2759, "end": 2762, "ctxt": 0 }, "value": "b", "raw": "\"b\"" } } ] } }, { "type": "TsTypeLiteral", "span": { "start": 2766, "end": 2784, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2768, "end": 2782, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2768, "end": 2773, "ctxt": 0 }, "value": "dataB", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2773, "end": 2782, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2775, "end": 2782, "ctxt": 0 }, "kind": "boolean" } }, "typeParams": null } ] }, { "type": "TsTypeReference", "span": { "start": 2787, "end": 2801, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2787, "end": 2796, "ctxt": 0 }, "value": "Container", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2796, "end": 2801, "ctxt": 0 }, "params": [ { "type": "TsLiteralType", "span": { "start": 2797, "end": 2800, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2797, "end": 2800, "ctxt": 0 }, "value": "a", "raw": "\"a\"" } } ] } } ] } } ] } } } ], "body": { "type": "Identifier", "span": { "start": 2823, "end": 2824, "ctxt": 0 }, "value": "t", "optional": false }, "async": false, "generator": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 2803, "end": 2819, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2805, "end": 2819, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2805, "end": 2814, "ctxt": 0 }, "value": "Container", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2814, "end": 2819, "ctxt": 0 }, "params": [ { "type": "TsLiteralType", "span": { "start": 2815, "end": 2818, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2815, "end": 2818, "ctxt": 0 }, "value": "a", "raw": "\"a\"" } } ] } } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2826, "end": 2919, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2832, "end": 2918, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2832, "end": 2834, "ctxt": 0 }, "value": "f4", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 2837, "end": 2918, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2838, "end": 2904, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2839, "end": 2904, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 2841, "end": 2904, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 2841, "end": 2847, "ctxt": 0 }, "kind": "number" }, { "type": "TsParenthesizedType", "span": { "start": 2850, "end": 2904, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 2851, "end": 2903, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 2851, "end": 2865, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2851, "end": 2860, "ctxt": 0 }, "value": "Container", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2860, "end": 2865, "ctxt": 0 }, "params": [ { "type": "TsLiteralType", "span": { "start": 2861, "end": 2864, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2861, "end": 2864, "ctxt": 0 }, "value": "b", "raw": "\"b\"" } } ] } }, { "type": "TsTypeLiteral", "span": { "start": 2868, "end": 2886, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2870, "end": 2884, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2870, "end": 2875, "ctxt": 0 }, "value": "dataB", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2875, "end": 2884, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2877, "end": 2884, "ctxt": 0 }, "kind": "boolean" } }, "typeParams": null } ] }, { "type": "TsTypeReference", "span": { "start": 2889, "end": 2903, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2889, "end": 2898, "ctxt": 0 }, "value": "Container", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2898, "end": 2903, "ctxt": 0 }, "params": [ { "type": "TsLiteralType", "span": { "start": 2899, "end": 2902, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2899, "end": 2902, "ctxt": 0 }, "value": "a", "raw": "\"a\"" } } ] } } ] } } ] } } } ], "body": { "type": "Identifier", "span": { "start": 2917, "end": 2918, "ctxt": 0 }, "value": "t", "optional": false }, "async": false, "generator": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 2905, "end": 2913, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2907, "end": 2913, "ctxt": 0 }, "kind": "number" } } }, "definite": false } ] }, { "type": "TsInterfaceDeclaration", "span": { "start": 2943, "end": 2989, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2953, "end": 2955, "ctxt": 0 }, "value": "A2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 2956, "end": 2989, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 2962, "end": 2972, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2962, "end": 2966, "ctxt": 0 }, "value": "kind", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2966, "end": 2971, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 2968, "end": 2971, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2968, "end": 2971, "ctxt": 0 }, "value": "A", "raw": "\"A\"" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2977, "end": 2987, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2977, "end": 2978, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2978, "end": 2986, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2980, "end": 2986, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 2991, "end": 3037, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3001, "end": 3003, "ctxt": 0 }, "value": "B2", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 3004, "end": 3037, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3010, "end": 3020, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3010, "end": 3014, "ctxt": 0 }, "value": "kind", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3014, "end": 3019, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 3016, "end": 3019, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 3016, "end": 3019, "ctxt": 0 }, "value": "B", "raw": "\"B\"" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3025, "end": 3035, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3025, "end": 3026, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3026, "end": 3034, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3028, "end": 3034, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, { "type": "VariableDeclaration", "span": { "start": 3039, "end": 3079, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3053, "end": 3078, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3053, "end": 3062, "ctxt": 0 }, "value": "shouldBeB", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3062, "end": 3078, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 3064, "end": 3078, "ctxt": 0 }, "types": [ { "type": "TsParenthesizedType", "span": { "start": 3064, "end": 3073, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 3065, "end": 3072, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 3065, "end": 3067, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3065, "end": 3067, "ctxt": 0 }, "value": "A2", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 3070, "end": 3072, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3070, "end": 3072, "ctxt": 0 }, "value": "B2", "optional": false }, "typeParams": null } ] } }, { "type": "TsTypeReference", "span": { "start": 3076, "end": 3078, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3076, "end": 3078, "ctxt": 0 }, "value": "B2", "optional": false }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3080, "end": 3104, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3086, "end": 3103, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3086, "end": 3087, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3087, "end": 3091, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3089, "end": 3091, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3089, "end": 3091, "ctxt": 0 }, "value": "B2", "optional": false }, "typeParams": null } } }, "init": { "type": "Identifier", "span": { "start": 3094, "end": 3103, "ctxt": 0 }, "value": "shouldBeB", "optional": false }, "definite": false } ] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3124, "end": 3133, "ctxt": 0 }, "value": "inGeneric", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 3153, "end": 3174, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3153, "end": 3174, "ctxt": 0 }, "value": "alsoShouldBeB", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3166, "end": 3174, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 3168, "end": 3174, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 3168, "end": 3169, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3168, "end": 3169, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 3172, "end": 3174, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3172, "end": 3174, "ctxt": 0 }, "value": "B2", "optional": false }, "typeParams": null } ] } } } } ], "decorators": [], "span": { "start": 3115, "end": 3212, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3176, "end": 3212, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 3182, "end": 3210, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3188, "end": 3209, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3188, "end": 3189, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3189, "end": 3193, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3191, "end": 3193, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3191, "end": 3193, "ctxt": 0 }, "value": "B2", "optional": false }, "typeParams": null } } }, "init": { "type": "Identifier", "span": { "start": 3196, "end": 3209, "ctxt": 0 }, "value": "alsoShouldBeB", "optional": false }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3133, "end": 3152, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3134, "end": 3151, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3134, "end": 3135, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsUnionType", "span": { "start": 3144, "end": 3151, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 3144, "end": 3146, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3144, "end": 3146, "ctxt": 0 }, "value": "A2", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 3149, "end": 3151, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3149, "end": 3151, "ctxt": 0 }, "value": "B2", "optional": false }, "typeParams": null } ] }, "default": null } ] }, "returnType": null }, { "type": "TsInterfaceDeclaration", "span": { "start": 3236, "end": 3274, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3246, "end": 3249, "ctxt": 0 }, "value": "ABI", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 3250, "end": 3274, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 3256, "end": 3272, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3256, "end": 3260, "ctxt": 0 }, "value": "kind", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3260, "end": 3271, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 3262, "end": 3271, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 3262, "end": 3265, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 3262, "end": 3265, "ctxt": 0 }, "value": "a", "raw": "'a'" } }, { "type": "TsLiteralType", "span": { "start": 3268, "end": 3271, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 3268, "end": 3271, "ctxt": 0 }, "value": "b", "raw": "'b'" } } ] } }, "typeParams": null } ] } }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3290, "end": 3292, "ctxt": 0 }, "value": "CA", "optional": false }, "declare": true, "span": { "start": 3276, "end": 3328, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 3295, "end": 3305, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 3295, "end": 3299, "ctxt": 0 }, "value": "kind", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3299, "end": 3304, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 3301, "end": 3304, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 3301, "end": 3304, "ctxt": 0 }, "value": "a", "raw": "'a'" } } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 3306, "end": 3316, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 3306, "end": 3307, "ctxt": 0 }, "value": "a", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3307, "end": 3315, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3309, "end": 3315, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 3317, "end": 3326, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 3317, "end": 3318, "ctxt": 0 }, "value": "x", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3318, "end": 3326, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3320, "end": 3326, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "EmptyStatement", "span": { "start": 3328, "end": 3329, "ctxt": 0 } }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3344, "end": 3346, "ctxt": 0 }, "value": "CB", "optional": false }, "declare": true, "span": { "start": 3330, "end": 3382, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 3349, "end": 3359, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 3349, "end": 3353, "ctxt": 0 }, "value": "kind", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3353, "end": 3358, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 3355, "end": 3358, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 3355, "end": 3358, "ctxt": 0 }, "value": "b", "raw": "'b'" } } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 3360, "end": 3370, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 3360, "end": 3361, "ctxt": 0 }, "value": "b", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3361, "end": 3369, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3363, "end": 3369, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 3371, "end": 3380, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 3371, "end": 3372, "ctxt": 0 }, "value": "y", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3372, "end": 3380, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3374, "end": 3380, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "EmptyStatement", "span": { "start": 3382, "end": 3383, "ctxt": 0 } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3394, "end": 3397, "ctxt": 0 }, "value": "bar", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 3417, "end": 3426, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3417, "end": 3426, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3418, "end": 3426, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 3420, "end": 3426, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 3420, "end": 3421, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3420, "end": 3421, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 3424, "end": 3426, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3424, "end": 3426, "ctxt": 0 }, "value": "CA", "optional": false }, "typeParams": null } ] } } } } ], "decorators": [], "span": { "start": 3385, "end": 3452, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3428, "end": 3452, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 3434, "end": 3450, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3438, "end": 3449, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3438, "end": 3440, "ctxt": 0 }, "value": "ab", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3440, "end": 3445, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3442, "end": 3445, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3442, "end": 3445, "ctxt": 0 }, "value": "ABI", "optional": false }, "typeParams": null } } }, "init": { "type": "Identifier", "span": { "start": 3448, "end": 3449, "ctxt": 0 }, "value": "x", "optional": false }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3397, "end": 3416, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3398, "end": 3415, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3398, "end": 3399, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsUnionType", "span": { "start": 3408, "end": 3415, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 3408, "end": 3410, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3408, "end": 3410, "ctxt": 0 }, "value": "CA", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 3413, "end": 3415, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3413, "end": 3415, "ctxt": 0 }, "value": "CB", "optional": false }, "typeParams": null } ] }, "default": null } ] }, "returnType": null } ], "interpreter": null }