swc/crates/swc_ecma_parser/tests/tsc/intersectionReductionStrict.json
2022-03-22 07:54:08 +00:00

7149 lines
188 KiB
JSON

{
"type": "Script",
"span": {
"start": 18,
"end": 2685,
"ctxt": 0
},
"body": [
{
"type": "VariableDeclaration",
"span": {
"start": 18,
"end": 52,
"ctxt": 0
},
"kind": "const",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 32,
"end": 51,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 32,
"end": 36,
"ctxt": 0
},
"value": "sym1",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 36,
"end": 51,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 38,
"end": 51,
"ctxt": 0
},
"op": "unique",
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 45,
"end": 51,
"ctxt": 0
},
"kind": "symbol"
}
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 53,
"end": 87,
"ctxt": 0
},
"kind": "const",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 67,
"end": 86,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 67,
"end": 71,
"ctxt": 0
},
"value": "sym2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 71,
"end": 86,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 73,
"end": 86,
"ctxt": 0
},
"op": "unique",
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 80,
"end": 86,
"ctxt": 0
},
"kind": "symbol"
}
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 89,
"end": 112,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 94,
"end": 96,
"ctxt": 0
},
"value": "T1",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 99,
"end": 111,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 99,
"end": 105,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsLiteralType",
"span": {
"start": 108,
"end": 111,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 108,
"end": 111,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 121,
"end": 150,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 126,
"end": 128,
"ctxt": 0
},
"value": "T2",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 131,
"end": 149,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 131,
"end": 134,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 131,
"end": 134,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
},
{
"type": "TsKeywordType",
"span": {
"start": 137,
"end": 143,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsLiteralType",
"span": {
"start": 146,
"end": 149,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 146,
"end": 149,
"ctxt": 0
},
"value": "b",
"raw": "'b'"
}
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 161,
"end": 183,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 166,
"end": 168,
"ctxt": 0
},
"value": "T3",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 171,
"end": 182,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 171,
"end": 177,
"ctxt": 0
},
"kind": "number"
},
{
"type": "TsLiteralType",
"span": {
"start": 180,
"end": 182,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 180,
"end": 182,
"ctxt": 0
},
"value": 10.0
}
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 191,
"end": 218,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 196,
"end": 198,
"ctxt": 0
},
"value": "T4",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 201,
"end": 217,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 201,
"end": 203,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 201,
"end": 203,
"ctxt": 0
},
"value": 10.0
}
},
{
"type": "TsKeywordType",
"span": {
"start": 206,
"end": 212,
"ctxt": 0
},
"kind": "number"
},
{
"type": "TsLiteralType",
"span": {
"start": 215,
"end": 217,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 215,
"end": 217,
"ctxt": 0
},
"value": 20.0
}
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 229,
"end": 260,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 234,
"end": 236,
"ctxt": 0
},
"value": "T5",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 239,
"end": 259,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 239,
"end": 245,
"ctxt": 0
},
"kind": "symbol"
},
{
"type": "TsTypeQuery",
"span": {
"start": 248,
"end": 259,
"ctxt": 0
},
"exprName": {
"type": "Identifier",
"span": {
"start": 255,
"end": 259,
"ctxt": 0
},
"value": "sym1",
"optional": false
},
"typeArguments": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 277,
"end": 322,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 282,
"end": 284,
"ctxt": 0
},
"value": "T6",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 287,
"end": 321,
"ctxt": 0
},
"types": [
{
"type": "TsTypeQuery",
"span": {
"start": 287,
"end": 298,
"ctxt": 0
},
"exprName": {
"type": "Identifier",
"span": {
"start": 294,
"end": 298,
"ctxt": 0
},
"value": "sym1",
"optional": false
},
"typeArguments": null
},
{
"type": "TsKeywordType",
"span": {
"start": 301,
"end": 307,
"ctxt": 0
},
"kind": "symbol"
},
{
"type": "TsTypeQuery",
"span": {
"start": 310,
"end": 321,
"ctxt": 0
},
"exprName": {
"type": "Identifier",
"span": {
"start": 317,
"end": 321,
"ctxt": 0
},
"value": "sym2",
"optional": false
},
"typeArguments": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 333,
"end": 393,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 338,
"end": 340,
"ctxt": 0
},
"value": "T7",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 343,
"end": 392,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 343,
"end": 349,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsLiteralType",
"span": {
"start": 352,
"end": 355,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 352,
"end": 355,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
},
{
"type": "TsKeywordType",
"span": {
"start": 358,
"end": 364,
"ctxt": 0
},
"kind": "number"
},
{
"type": "TsLiteralType",
"span": {
"start": 367,
"end": 369,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 367,
"end": 369,
"ctxt": 0
},
"value": 10.0
}
},
{
"type": "TsKeywordType",
"span": {
"start": 372,
"end": 378,
"ctxt": 0
},
"kind": "symbol"
},
{
"type": "TsTypeQuery",
"span": {
"start": 381,
"end": 392,
"ctxt": 0
},
"exprName": {
"type": "Identifier",
"span": {
"start": 388,
"end": 392,
"ctxt": 0
},
"value": "sym1",
"optional": false
},
"typeArguments": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 405,
"end": 437,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 410,
"end": 413,
"ctxt": 0
},
"value": "T10",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 416,
"end": 436,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 416,
"end": 422,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsParenthesizedType",
"span": {
"start": 425,
"end": 436,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 426,
"end": 435,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 426,
"end": 429,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 426,
"end": 429,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
},
{
"type": "TsLiteralType",
"span": {
"start": 432,
"end": 435,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 432,
"end": 435,
"ctxt": 0
},
"value": "b",
"raw": "'b'"
}
}
]
}
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 452,
"end": 494,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 457,
"end": 460,
"ctxt": 0
},
"value": "T11",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 463,
"end": 493,
"ctxt": 0
},
"types": [
{
"type": "TsParenthesizedType",
"span": {
"start": 463,
"end": 480,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 464,
"end": 479,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 464,
"end": 470,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 473,
"end": 479,
"ctxt": 0
},
"kind": "number"
}
]
}
},
{
"type": "TsParenthesizedType",
"span": {
"start": 483,
"end": 493,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 484,
"end": 492,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 484,
"end": 487,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 484,
"end": 487,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
},
{
"type": "TsLiteralType",
"span": {
"start": 490,
"end": 492,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 490,
"end": 492,
"ctxt": 0
},
"value": 10.0
}
}
]
}
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 509,
"end": 529,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 514,
"end": 516,
"ctxt": 0
},
"value": "N1",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 519,
"end": 528,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 519,
"end": 522,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 519,
"end": 522,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
},
{
"type": "TsLiteralType",
"span": {
"start": 525,
"end": 528,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 525,
"end": 528,
"ctxt": 0
},
"value": "b",
"raw": "'b'"
}
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 530,
"end": 561,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 535,
"end": 537,
"ctxt": 0
},
"value": "N2",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 540,
"end": 560,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 540,
"end": 553,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 542,
"end": 551,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 542,
"end": 543,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 543,
"end": 551,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 545,
"end": 551,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsKeywordType",
"span": {
"start": 556,
"end": 560,
"ctxt": 0
},
"kind": "null"
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 562,
"end": 598,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 567,
"end": 569,
"ctxt": 0
},
"value": "N3",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 572,
"end": 597,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 572,
"end": 585,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 574,
"end": 583,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 574,
"end": 575,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 575,
"end": 583,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 577,
"end": 583,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsKeywordType",
"span": {
"start": 588,
"end": 597,
"ctxt": 0
},
"kind": "undefined"
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 599,
"end": 625,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 604,
"end": 606,
"ctxt": 0
},
"value": "N4",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 609,
"end": 624,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 609,
"end": 615,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 618,
"end": 624,
"ctxt": 0
},
"kind": "number"
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 626,
"end": 652,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 631,
"end": 633,
"ctxt": 0
},
"value": "N5",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 636,
"end": 651,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 636,
"end": 642,
"ctxt": 0
},
"kind": "number"
},
{
"type": "TsKeywordType",
"span": {
"start": 645,
"end": 651,
"ctxt": 0
},
"kind": "object"
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 653,
"end": 679,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 658,
"end": 660,
"ctxt": 0
},
"value": "N6",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 663,
"end": 678,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 663,
"end": 669,
"ctxt": 0
},
"kind": "symbol"
},
{
"type": "TsKeywordType",
"span": {
"start": 672,
"end": 678,
"ctxt": 0
},
"kind": "string"
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 680,
"end": 704,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 685,
"end": 687,
"ctxt": 0
},
"value": "N7",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 690,
"end": 703,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 690,
"end": 694,
"ctxt": 0
},
"kind": "void"
},
{
"type": "TsKeywordType",
"span": {
"start": 697,
"end": 703,
"ctxt": 0
},
"kind": "string"
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 706,
"end": 729,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 711,
"end": 712,
"ctxt": 0
},
"value": "X",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 715,
"end": 728,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 717,
"end": 726,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 717,
"end": 718,
"ctxt": 0
},
"value": "x",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 718,
"end": 726,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 720,
"end": 726,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 731,
"end": 755,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 736,
"end": 738,
"ctxt": 0
},
"value": "X1",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 741,
"end": 754,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 741,
"end": 742,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 741,
"end": 742,
"ctxt": 0
},
"value": "X",
"optional": false
},
"typeParams": null
},
{
"type": "TsIntersectionType",
"span": {
"start": 745,
"end": 754,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 745,
"end": 748,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 745,
"end": 748,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
},
{
"type": "TsLiteralType",
"span": {
"start": 751,
"end": 754,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 751,
"end": 754,
"ctxt": 0
},
"value": "b",
"raw": "'b'"
}
}
]
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 756,
"end": 791,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 761,
"end": 763,
"ctxt": 0
},
"value": "X2",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 766,
"end": 790,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 766,
"end": 767,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 766,
"end": 767,
"ctxt": 0
},
"value": "X",
"optional": false
},
"typeParams": null
},
{
"type": "TsIntersectionType",
"span": {
"start": 770,
"end": 790,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 770,
"end": 783,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 772,
"end": 781,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 772,
"end": 773,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 773,
"end": 781,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 775,
"end": 781,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsKeywordType",
"span": {
"start": 786,
"end": 790,
"ctxt": 0
},
"kind": "null"
}
]
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 792,
"end": 832,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 797,
"end": 799,
"ctxt": 0
},
"value": "X3",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 802,
"end": 831,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 802,
"end": 803,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 802,
"end": 803,
"ctxt": 0
},
"value": "X",
"optional": false
},
"typeParams": null
},
{
"type": "TsIntersectionType",
"span": {
"start": 806,
"end": 831,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 806,
"end": 819,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 808,
"end": 817,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 808,
"end": 809,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 809,
"end": 817,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 811,
"end": 817,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsKeywordType",
"span": {
"start": 822,
"end": 831,
"ctxt": 0
},
"kind": "undefined"
}
]
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 833,
"end": 863,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 838,
"end": 840,
"ctxt": 0
},
"value": "X4",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 843,
"end": 862,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 843,
"end": 844,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 843,
"end": 844,
"ctxt": 0
},
"value": "X",
"optional": false
},
"typeParams": null
},
{
"type": "TsIntersectionType",
"span": {
"start": 847,
"end": 862,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 847,
"end": 853,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 856,
"end": 862,
"ctxt": 0
},
"kind": "number"
}
]
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 864,
"end": 894,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 869,
"end": 871,
"ctxt": 0
},
"value": "X5",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 874,
"end": 893,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 874,
"end": 875,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 874,
"end": 875,
"ctxt": 0
},
"value": "X",
"optional": false
},
"typeParams": null
},
{
"type": "TsIntersectionType",
"span": {
"start": 878,
"end": 893,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 878,
"end": 884,
"ctxt": 0
},
"kind": "number"
},
{
"type": "TsKeywordType",
"span": {
"start": 887,
"end": 893,
"ctxt": 0
},
"kind": "object"
}
]
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 895,
"end": 925,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 900,
"end": 902,
"ctxt": 0
},
"value": "X6",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 905,
"end": 924,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 905,
"end": 906,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 905,
"end": 906,
"ctxt": 0
},
"value": "X",
"optional": false
},
"typeParams": null
},
{
"type": "TsIntersectionType",
"span": {
"start": 909,
"end": 924,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 909,
"end": 915,
"ctxt": 0
},
"kind": "symbol"
},
{
"type": "TsKeywordType",
"span": {
"start": 918,
"end": 924,
"ctxt": 0
},
"kind": "string"
}
]
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 926,
"end": 954,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 931,
"end": 933,
"ctxt": 0
},
"value": "X7",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 936,
"end": 953,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 936,
"end": 937,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 936,
"end": 937,
"ctxt": 0
},
"value": "X",
"optional": false
},
"typeParams": null
},
{
"type": "TsIntersectionType",
"span": {
"start": 940,
"end": 953,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 940,
"end": 944,
"ctxt": 0
},
"kind": "void"
},
{
"type": "TsKeywordType",
"span": {
"start": 947,
"end": 953,
"ctxt": 0
},
"kind": "string"
}
]
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 956,
"end": 992,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 961,
"end": 962,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 965,
"end": 991,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 967,
"end": 977,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 967,
"end": 971,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 971,
"end": 976,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 973,
"end": 976,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 973,
"end": 976,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 978,
"end": 989,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 978,
"end": 981,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 981,
"end": 989,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 983,
"end": 989,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 993,
"end": 1029,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 998,
"end": 999,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1002,
"end": 1028,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1004,
"end": 1014,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1004,
"end": 1008,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1008,
"end": 1013,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1010,
"end": 1013,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 1010,
"end": 1013,
"ctxt": 0
},
"value": "b",
"raw": "'b'"
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1015,
"end": 1026,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1015,
"end": 1018,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1018,
"end": 1026,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1020,
"end": 1026,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1030,
"end": 1066,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1035,
"end": 1036,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1039,
"end": 1065,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1041,
"end": 1051,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1041,
"end": 1045,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1045,
"end": 1050,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1047,
"end": 1050,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 1047,
"end": 1050,
"ctxt": 0
},
"value": "c",
"raw": "'c'"
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1052,
"end": 1063,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1052,
"end": 1055,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1055,
"end": 1063,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1057,
"end": 1063,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1068,
"end": 1090,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1080,
"end": 1089,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1080,
"end": 1082,
"ctxt": 0
},
"value": "ab",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1082,
"end": 1089,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 1084,
"end": 1089,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1084,
"end": 1085,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1084,
"end": 1085,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 1088,
"end": 1089,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1088,
"end": 1089,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1091,
"end": 1099,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 1091,
"end": 1098,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 1091,
"end": 1093,
"ctxt": 0
},
"value": "ab",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 1094,
"end": 1098,
"ctxt": 0
},
"value": "kind",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1111,
"end": 1138,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1123,
"end": 1137,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1123,
"end": 1124,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1124,
"end": 1137,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 1126,
"end": 1137,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1126,
"end": 1127,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1126,
"end": 1127,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
},
{
"type": "TsParenthesizedType",
"span": {
"start": 1130,
"end": 1137,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 1131,
"end": 1136,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1131,
"end": 1132,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1131,
"end": 1132,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 1135,
"end": 1136,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1135,
"end": 1136,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
}
]
}
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1145,
"end": 1158,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1149,
"end": 1157,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1149,
"end": 1150,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1150,
"end": 1153,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1152,
"end": 1153,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1152,
"end": 1153,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "Identifier",
"span": {
"start": 1156,
"end": 1157,
"ctxt": 0
},
"value": "x",
"optional": false
},
"definite": false
}
]
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1160,
"end": 1176,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1165,
"end": 1167,
"ctxt": 0
},
"value": "AB",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 1170,
"end": 1175,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1170,
"end": 1171,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1170,
"end": 1171,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 1174,
"end": 1175,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1174,
"end": 1175,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1187,
"end": 1203,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1192,
"end": 1194,
"ctxt": 0
},
"value": "BC",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 1197,
"end": 1202,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1197,
"end": 1198,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1197,
"end": 1198,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 1201,
"end": 1202,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1201,
"end": 1202,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1215,
"end": 1240,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1220,
"end": 1222,
"ctxt": 0
},
"value": "U1",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1225,
"end": 1239,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1225,
"end": 1232,
"ctxt": 0
},
"value": "Partial",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1232,
"end": 1239,
"ctxt": 0
},
"params": [
{
"type": "TsIntersectionType",
"span": {
"start": 1233,
"end": 1238,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1233,
"end": 1234,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1233,
"end": 1234,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 1237,
"end": 1238,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1237,
"end": 1238,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
}
]
}
]
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1251,
"end": 1277,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1256,
"end": 1258,
"ctxt": 0
},
"value": "U2",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1261,
"end": 1276,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1261,
"end": 1269,
"ctxt": 0
},
"value": "Readonly",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1269,
"end": 1276,
"ctxt": 0
},
"params": [
{
"type": "TsIntersectionType",
"span": {
"start": 1270,
"end": 1275,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1270,
"end": 1271,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1270,
"end": 1271,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 1274,
"end": 1275,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1274,
"end": 1275,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
}
]
}
]
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1288,
"end": 1314,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1293,
"end": 1295,
"ctxt": 0
},
"value": "U3",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1298,
"end": 1313,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsParenthesizedType",
"span": {
"start": 1298,
"end": 1305,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 1299,
"end": 1304,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1299,
"end": 1300,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1299,
"end": 1300,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 1303,
"end": 1304,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1303,
"end": 1304,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
}
]
}
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 1306,
"end": 1312,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 1306,
"end": 1312,
"ctxt": 0
},
"value": "kind",
"raw": "'kind'"
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1325,
"end": 1349,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1330,
"end": 1332,
"ctxt": 0
},
"value": "U4",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 1335,
"end": 1348,
"ctxt": 0
},
"types": [
{
"type": "TsIntersectionType",
"span": {
"start": 1335,
"end": 1340,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1335,
"end": 1336,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1335,
"end": 1336,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 1339,
"end": 1340,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1339,
"end": 1340,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
}
]
},
{
"type": "TsIntersectionType",
"span": {
"start": 1343,
"end": 1348,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1343,
"end": 1344,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1343,
"end": 1344,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 1347,
"end": 1348,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1347,
"end": 1348,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
}
]
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1360,
"end": 1380,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1365,
"end": 1367,
"ctxt": 0
},
"value": "U5",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 1370,
"end": 1379,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1370,
"end": 1371,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1370,
"end": 1371,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
},
{
"type": "TsIntersectionType",
"span": {
"start": 1374,
"end": 1379,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1374,
"end": 1375,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1374,
"end": 1375,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 1378,
"end": 1379,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1378,
"end": 1379,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
}
]
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1388,
"end": 1412,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1393,
"end": 1395,
"ctxt": 0
},
"value": "K1",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 1398,
"end": 1411,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsParenthesizedType",
"span": {
"start": 1404,
"end": 1411,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 1405,
"end": 1410,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1405,
"end": 1406,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1405,
"end": 1406,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 1409,
"end": 1410,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1409,
"end": 1410,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1442,
"end": 1470,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1447,
"end": 1449,
"ctxt": 0
},
"value": "K2",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 1452,
"end": 1469,
"ctxt": 0
},
"types": [
{
"type": "TsTypeOperator",
"span": {
"start": 1452,
"end": 1459,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1458,
"end": 1459,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1458,
"end": 1459,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
}
},
{
"type": "TsTypeOperator",
"span": {
"start": 1462,
"end": 1469,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1468,
"end": 1469,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1468,
"end": 1469,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
}
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1491,
"end": 1578,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1496,
"end": 1502,
"ctxt": 0
},
"value": "Merge1",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1502,
"end": 1508,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1503,
"end": 1504,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1503,
"end": 1504,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 1506,
"end": 1507,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1506,
"end": 1507,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsMappedType",
"span": {
"start": 1511,
"end": 1578,
"ctxt": 0
},
"readonly": null,
"typeParam": {
"type": "TsTypeParameter",
"span": {
"start": 1514,
"end": 1532,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1514,
"end": 1515,
"ctxt": 0
},
"value": "P",
"optional": false
},
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 1519,
"end": 1532,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsParenthesizedType",
"span": {
"start": 1525,
"end": 1532,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 1526,
"end": 1531,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1526,
"end": 1527,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1526,
"end": 1527,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 1530,
"end": 1531,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1530,
"end": 1531,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
]
}
}
},
"default": null
},
"nameType": null,
"optional": null,
"typeAnnotation": {
"type": "TsConditionalType",
"span": {
"start": 1535,
"end": 1576,
"ctxt": 0
},
"checkType": {
"type": "TsTypeReference",
"span": {
"start": 1535,
"end": 1536,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1535,
"end": 1536,
"ctxt": 0
},
"value": "P",
"optional": false
},
"typeParams": null
},
"extendsType": {
"type": "TsTypeOperator",
"span": {
"start": 1545,
"end": 1552,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1551,
"end": 1552,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1551,
"end": 1552,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"trueType": {
"type": "TsIndexedAccessType",
"span": {
"start": 1555,
"end": 1559,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 1555,
"end": 1556,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1555,
"end": 1556,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 1557,
"end": 1558,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1557,
"end": 1558,
"ctxt": 0
},
"value": "P",
"optional": false
},
"typeParams": null
}
},
"falseType": {
"type": "TsIndexedAccessType",
"span": {
"start": 1562,
"end": 1576,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 1562,
"end": 1563,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1562,
"end": 1563,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsIntersectionType",
"span": {
"start": 1564,
"end": 1575,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1564,
"end": 1565,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1564,
"end": 1565,
"ctxt": 0
},
"value": "P",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeOperator",
"span": {
"start": 1568,
"end": 1575,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1574,
"end": 1575,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1574,
"end": 1575,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
]
}
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1579,
"end": 1670,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1584,
"end": 1590,
"ctxt": 0
},
"value": "Merge2",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1590,
"end": 1596,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1591,
"end": 1592,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1591,
"end": 1592,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 1594,
"end": 1595,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1594,
"end": 1595,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsMappedType",
"span": {
"start": 1599,
"end": 1670,
"ctxt": 0
},
"readonly": null,
"typeParam": {
"type": "TsTypeParameter",
"span": {
"start": 1602,
"end": 1624,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1602,
"end": 1603,
"ctxt": 0
},
"value": "P",
"optional": false
},
"constraint": {
"type": "TsUnionType",
"span": {
"start": 1607,
"end": 1624,
"ctxt": 0
},
"types": [
{
"type": "TsTypeOperator",
"span": {
"start": 1607,
"end": 1614,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1613,
"end": 1614,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1613,
"end": 1614,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
{
"type": "TsTypeOperator",
"span": {
"start": 1617,
"end": 1624,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1623,
"end": 1624,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1623,
"end": 1624,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
]
},
"default": null
},
"nameType": null,
"optional": null,
"typeAnnotation": {
"type": "TsConditionalType",
"span": {
"start": 1627,
"end": 1668,
"ctxt": 0
},
"checkType": {
"type": "TsTypeReference",
"span": {
"start": 1627,
"end": 1628,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1627,
"end": 1628,
"ctxt": 0
},
"value": "P",
"optional": false
},
"typeParams": null
},
"extendsType": {
"type": "TsTypeOperator",
"span": {
"start": 1637,
"end": 1644,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1643,
"end": 1644,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1643,
"end": 1644,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"trueType": {
"type": "TsIndexedAccessType",
"span": {
"start": 1647,
"end": 1651,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 1647,
"end": 1648,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1647,
"end": 1648,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 1649,
"end": 1650,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1649,
"end": 1650,
"ctxt": 0
},
"value": "P",
"optional": false
},
"typeParams": null
}
},
"falseType": {
"type": "TsIndexedAccessType",
"span": {
"start": 1654,
"end": 1668,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 1654,
"end": 1655,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1654,
"end": 1655,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsIntersectionType",
"span": {
"start": 1656,
"end": 1667,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1656,
"end": 1657,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1656,
"end": 1657,
"ctxt": 0
},
"value": "P",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeOperator",
"span": {
"start": 1660,
"end": 1667,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1666,
"end": 1667,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1666,
"end": 1667,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
]
}
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1672,
"end": 1714,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1677,
"end": 1679,
"ctxt": 0
},
"value": "M1",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 1682,
"end": 1713,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 1682,
"end": 1696,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1684,
"end": 1689,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1684,
"end": 1685,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1685,
"end": 1688,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1687,
"end": 1688,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1687,
"end": 1688,
"ctxt": 0
},
"value": 1.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1690,
"end": 1694,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1690,
"end": 1691,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1691,
"end": 1694,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1693,
"end": 1694,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1693,
"end": 1694,
"ctxt": 0
},
"value": 2.0
}
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 1699,
"end": 1713,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1701,
"end": 1706,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1701,
"end": 1702,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1702,
"end": 1705,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1704,
"end": 1705,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1704,
"end": 1705,
"ctxt": 0
},
"value": 2.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1707,
"end": 1711,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1707,
"end": 1708,
"ctxt": 0
},
"value": "c",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1708,
"end": 1711,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1710,
"end": 1711,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1710,
"end": 1711,
"ctxt": 0
},
"value": 3.0
}
}
},
"typeParams": null
}
]
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1725,
"end": 1774,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1730,
"end": 1732,
"ctxt": 0
},
"value": "M2",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1735,
"end": 1773,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1735,
"end": 1741,
"ctxt": 0
},
"value": "Merge1",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1741,
"end": 1773,
"ctxt": 0
},
"params": [
{
"type": "TsTypeLiteral",
"span": {
"start": 1742,
"end": 1756,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1744,
"end": 1749,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1744,
"end": 1745,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1745,
"end": 1748,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1747,
"end": 1748,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1747,
"end": 1748,
"ctxt": 0
},
"value": 1.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1750,
"end": 1754,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1750,
"end": 1751,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1751,
"end": 1754,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1753,
"end": 1754,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1753,
"end": 1754,
"ctxt": 0
},
"value": 2.0
}
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 1758,
"end": 1772,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1760,
"end": 1765,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1760,
"end": 1761,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1761,
"end": 1764,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1763,
"end": 1764,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1763,
"end": 1764,
"ctxt": 0
},
"value": 2.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1766,
"end": 1770,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1766,
"end": 1767,
"ctxt": 0
},
"value": "c",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1767,
"end": 1770,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1769,
"end": 1770,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1769,
"end": 1770,
"ctxt": 0
},
"value": 3.0
}
}
},
"typeParams": null
}
]
}
]
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1782,
"end": 1831,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1787,
"end": 1789,
"ctxt": 0
},
"value": "M3",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1792,
"end": 1830,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1792,
"end": 1798,
"ctxt": 0
},
"value": "Merge2",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1798,
"end": 1830,
"ctxt": 0
},
"params": [
{
"type": "TsTypeLiteral",
"span": {
"start": 1799,
"end": 1813,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1801,
"end": 1806,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1801,
"end": 1802,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1802,
"end": 1805,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1804,
"end": 1805,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1804,
"end": 1805,
"ctxt": 0
},
"value": 1.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1807,
"end": 1811,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1807,
"end": 1808,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1808,
"end": 1811,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1810,
"end": 1811,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1810,
"end": 1811,
"ctxt": 0
},
"value": 2.0
}
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 1815,
"end": 1829,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1817,
"end": 1822,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1817,
"end": 1818,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1818,
"end": 1821,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1820,
"end": 1821,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1820,
"end": 1821,
"ctxt": 0
},
"value": 2.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1823,
"end": 1827,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1823,
"end": 1824,
"ctxt": 0
},
"value": "c",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1824,
"end": 1827,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1826,
"end": 1827,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1826,
"end": 1827,
"ctxt": 0
},
"value": 3.0
}
}
},
"typeParams": null
}
]
}
]
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1880,
"end": 1911,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1886,
"end": 1910,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1886,
"end": 1888,
"ctxt": 0
},
"value": "x1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ObjectExpression",
"span": {
"start": 1891,
"end": 1910,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 1893,
"end": 1894,
"ctxt": 0
},
"value": "a",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 1896,
"end": 1901,
"ctxt": 0
},
"value": "foo",
"raw": "'foo'"
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 1903,
"end": 1904,
"ctxt": 0
},
"value": "b",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 1906,
"end": 1908,
"ctxt": 0
},
"value": 42.0
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1912,
"end": 1945,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1918,
"end": 1944,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1918,
"end": 1920,
"ctxt": 0
},
"value": "x2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ObjectExpression",
"span": {
"start": 1923,
"end": 1944,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 1925,
"end": 1926,
"ctxt": 0
},
"value": "a",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 1928,
"end": 1933,
"ctxt": 0
},
"value": "foo",
"raw": "'foo'"
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 1935,
"end": 1936,
"ctxt": 0
},
"value": "b",
"optional": false
},
"value": {
"type": "BooleanLiteral",
"span": {
"start": 1938,
"end": 1942,
"ctxt": 0
},
"value": true
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1947,
"end": 1972,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1959,
"end": 1971,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1959,
"end": 1960,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1960,
"end": 1971,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 1962,
"end": 1971,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 1962,
"end": 1965,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 1962,
"end": 1965,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
},
{
"type": "TsLiteralType",
"span": {
"start": 1968,
"end": 1971,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 1968,
"end": 1971,
"ctxt": 0
},
"value": "b",
"raw": "'b'"
}
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1974,
"end": 1995,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1974,
"end": 1994,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 1974,
"end": 1979,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 1974,
"end": 1976,
"ctxt": 0
},
"value": "x1",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 1976,
"end": 1979,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1977,
"end": 1978,
"ctxt": 0
},
"value": "k",
"optional": false
}
}
},
"right": {
"type": "TsAsExpression",
"span": {
"start": 1982,
"end": 1994,
"ctxt": 0
},
"expression": {
"type": "StringLiteral",
"span": {
"start": 1982,
"end": 1987,
"ctxt": 0
},
"value": "bar",
"raw": "'bar'"
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1991,
"end": 1994,
"ctxt": 0
},
"kind": "any"
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2006,
"end": 2027,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2006,
"end": 2026,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 2006,
"end": 2011,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2006,
"end": 2008,
"ctxt": 0
},
"value": "x2",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 2008,
"end": 2011,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2009,
"end": 2010,
"ctxt": 0
},
"value": "k",
"optional": false
}
}
},
"right": {
"type": "TsAsExpression",
"span": {
"start": 2014,
"end": 2026,
"ctxt": 0
},
"expression": {
"type": "StringLiteral",
"span": {
"start": 2014,
"end": 2019,
"ctxt": 0
},
"value": "bar",
"raw": "'bar'"
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2023,
"end": 2026,
"ctxt": 0
},
"kind": "any"
}
}
}
},
{
"type": "TsEnumDeclaration",
"span": {
"start": 2039,
"end": 2057,
"ctxt": 0
},
"declare": false,
"isConst": true,
"id": {
"type": "Identifier",
"span": {
"start": 2050,
"end": 2054,
"ctxt": 0
},
"value": "Tag1",
"optional": false
},
"members": []
},
{
"type": "TsEnumDeclaration",
"span": {
"start": 2058,
"end": 2076,
"ctxt": 0
},
"declare": false,
"isConst": true,
"id": {
"type": "Identifier",
"span": {
"start": 2069,
"end": 2073,
"ctxt": 0
},
"value": "Tag2",
"optional": false
},
"members": []
},
{
"type": "VariableDeclaration",
"span": {
"start": 2078,
"end": 2108,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2090,
"end": 2107,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2090,
"end": 2092,
"ctxt": 0
},
"value": "s1",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2092,
"end": 2107,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 2094,
"end": 2107,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 2094,
"end": 2100,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsTypeReference",
"span": {
"start": 2103,
"end": 2107,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2103,
"end": 2107,
"ctxt": 0
},
"value": "Tag1",
"optional": false
},
"typeParams": null
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2109,
"end": 2139,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2121,
"end": 2138,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2121,
"end": 2123,
"ctxt": 0
},
"value": "s2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2123,
"end": 2138,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 2125,
"end": 2138,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 2125,
"end": 2131,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsTypeReference",
"span": {
"start": 2134,
"end": 2138,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2134,
"end": 2138,
"ctxt": 0
},
"value": "Tag2",
"optional": false
},
"typeParams": null
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2141,
"end": 2183,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2153,
"end": 2182,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2153,
"end": 2155,
"ctxt": 0
},
"value": "t1",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2155,
"end": 2182,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 2157,
"end": 2182,
"ctxt": 0
},
"types": [
{
"type": "TsIntersectionType",
"span": {
"start": 2157,
"end": 2170,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 2157,
"end": 2163,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsTypeReference",
"span": {
"start": 2166,
"end": 2170,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2166,
"end": 2170,
"ctxt": 0
},
"value": "Tag1",
"optional": false
},
"typeParams": null
}
]
},
{
"type": "TsKeywordType",
"span": {
"start": 2173,
"end": 2182,
"ctxt": 0
},
"kind": "undefined"
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2184,
"end": 2226,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2196,
"end": 2225,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2196,
"end": 2198,
"ctxt": 0
},
"value": "t2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2198,
"end": 2225,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 2200,
"end": 2225,
"ctxt": 0
},
"types": [
{
"type": "TsIntersectionType",
"span": {
"start": 2200,
"end": 2213,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 2200,
"end": 2206,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsTypeReference",
"span": {
"start": 2209,
"end": 2213,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2209,
"end": 2213,
"ctxt": 0
},
"value": "Tag2",
"optional": false
},
"typeParams": null
}
]
},
{
"type": "TsKeywordType",
"span": {
"start": 2216,
"end": 2225,
"ctxt": 0
},
"kind": "undefined"
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 2228,
"end": 2236,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2228,
"end": 2235,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2228,
"end": 2230,
"ctxt": 0
},
"value": "s1",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2233,
"end": 2235,
"ctxt": 0
},
"value": "s2",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2237,
"end": 2245,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2237,
"end": 2244,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2237,
"end": 2239,
"ctxt": 0
},
"value": "s2",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2242,
"end": 2244,
"ctxt": 0
},
"value": "s1",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2247,
"end": 2255,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2247,
"end": 2254,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2247,
"end": 2249,
"ctxt": 0
},
"value": "t1",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2252,
"end": 2254,
"ctxt": 0
},
"value": "t2",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2256,
"end": 2264,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2256,
"end": 2263,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2256,
"end": 2258,
"ctxt": 0
},
"value": "t2",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2261,
"end": 2263,
"ctxt": 0
},
"value": "t1",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 2288,
"end": 2332,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2294,
"end": 2331,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2294,
"end": 2296,
"ctxt": 0
},
"value": "f1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2299,
"end": 2331,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2300,
"end": 2320,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2301,
"end": 2320,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 2303,
"end": 2320,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 2303,
"end": 2306,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2303,
"end": 2306,
"ctxt": 0
},
"value": "a",
"raw": "\"a\""
}
},
{
"type": "TsParenthesizedType",
"span": {
"start": 2309,
"end": 2320,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 2310,
"end": 2319,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 2310,
"end": 2313,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2310,
"end": 2313,
"ctxt": 0
},
"value": "b",
"raw": "\"b\""
}
},
{
"type": "TsLiteralType",
"span": {
"start": 2316,
"end": 2319,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2316,
"end": 2319,
"ctxt": 0
},
"value": "c",
"raw": "\"c\""
}
}
]
}
}
]
}
}
}
],
"body": {
"type": "Identifier",
"span": {
"start": 2330,
"end": 2331,
"ctxt": 0
},
"value": "t",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 2321,
"end": 2326,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 2323,
"end": 2326,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2323,
"end": 2326,
"ctxt": 0
},
"value": "a",
"raw": "\"a\""
}
}
}
},
"definite": false
}
]
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 2334,
"end": 2391,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 2339,
"end": 2348,
"ctxt": 0
},
"value": "Container",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2348,
"end": 2369,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2349,
"end": 2368,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2349,
"end": 2353,
"ctxt": 0
},
"value": "Type",
"optional": false
},
"constraint": {
"type": "TsKeywordType",
"span": {
"start": 2362,
"end": 2368,
"ctxt": 0
},
"kind": "string"
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 2372,
"end": 2391,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2378,
"end": 2389,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2378,
"end": 2382,
"ctxt": 0
},
"value": "type",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2382,
"end": 2388,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2384,
"end": 2388,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2384,
"end": 2388,
"ctxt": 0
},
"value": "Type",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 2393,
"end": 2481,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2399,
"end": 2480,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2399,
"end": 2401,
"ctxt": 0
},
"value": "f2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2404,
"end": 2480,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2405,
"end": 2458,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2406,
"end": 2458,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 2408,
"end": 2458,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 2408,
"end": 2422,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2408,
"end": 2417,
"ctxt": 0
},
"value": "Container",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2417,
"end": 2422,
"ctxt": 0
},
"params": [
{
"type": "TsLiteralType",
"span": {
"start": 2418,
"end": 2421,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2418,
"end": 2421,
"ctxt": 0
},
"value": "a",
"raw": "\"a\""
}
}
]
}
},
{
"type": "TsParenthesizedType",
"span": {
"start": 2425,
"end": 2458,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 2426,
"end": 2457,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 2426,
"end": 2440,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2426,
"end": 2435,
"ctxt": 0
},
"value": "Container",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2435,
"end": 2440,
"ctxt": 0
},
"params": [
{
"type": "TsLiteralType",
"span": {
"start": 2436,
"end": 2439,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2436,
"end": 2439,
"ctxt": 0
},
"value": "b",
"raw": "\"b\""
}
}
]
}
},
{
"type": "TsTypeReference",
"span": {
"start": 2443,
"end": 2457,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2443,
"end": 2452,
"ctxt": 0
},
"value": "Container",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2452,
"end": 2457,
"ctxt": 0
},
"params": [
{
"type": "TsLiteralType",
"span": {
"start": 2453,
"end": 2456,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2453,
"end": 2456,
"ctxt": 0
},
"value": "c",
"raw": "\"c\""
}
}
]
}
}
]
}
}
]
}
}
}
],
"body": {
"type": "Identifier",
"span": {
"start": 2479,
"end": 2480,
"ctxt": 0
},
"value": "t",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 2459,
"end": 2475,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2461,
"end": 2475,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2461,
"end": 2470,
"ctxt": 0
},
"value": "Container",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2470,
"end": 2475,
"ctxt": 0
},
"params": [
{
"type": "TsLiteralType",
"span": {
"start": 2471,
"end": 2474,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2471,
"end": 2474,
"ctxt": 0
},
"value": "a",
"raw": "\"a\""
}
}
]
}
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2482,
"end": 2591,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2488,
"end": 2590,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2488,
"end": 2490,
"ctxt": 0
},
"value": "f3",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2493,
"end": 2590,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2494,
"end": 2568,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2495,
"end": 2568,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 2497,
"end": 2568,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 2497,
"end": 2511,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2497,
"end": 2506,
"ctxt": 0
},
"value": "Container",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2506,
"end": 2511,
"ctxt": 0
},
"params": [
{
"type": "TsLiteralType",
"span": {
"start": 2507,
"end": 2510,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2507,
"end": 2510,
"ctxt": 0
},
"value": "a",
"raw": "\"a\""
}
}
]
}
},
{
"type": "TsParenthesizedType",
"span": {
"start": 2514,
"end": 2568,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 2515,
"end": 2567,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 2515,
"end": 2529,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2515,
"end": 2524,
"ctxt": 0
},
"value": "Container",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2524,
"end": 2529,
"ctxt": 0
},
"params": [
{
"type": "TsLiteralType",
"span": {
"start": 2525,
"end": 2528,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2525,
"end": 2528,
"ctxt": 0
},
"value": "b",
"raw": "\"b\""
}
}
]
}
},
{
"type": "TsTypeLiteral",
"span": {
"start": 2532,
"end": 2550,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2534,
"end": 2548,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2534,
"end": 2539,
"ctxt": 0
},
"value": "dataB",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2539,
"end": 2548,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2541,
"end": 2548,
"ctxt": 0
},
"kind": "boolean"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeReference",
"span": {
"start": 2553,
"end": 2567,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2553,
"end": 2562,
"ctxt": 0
},
"value": "Container",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2562,
"end": 2567,
"ctxt": 0
},
"params": [
{
"type": "TsLiteralType",
"span": {
"start": 2563,
"end": 2566,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2563,
"end": 2566,
"ctxt": 0
},
"value": "a",
"raw": "\"a\""
}
}
]
}
}
]
}
}
]
}
}
}
],
"body": {
"type": "Identifier",
"span": {
"start": 2589,
"end": 2590,
"ctxt": 0
},
"value": "t",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 2569,
"end": 2585,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2571,
"end": 2585,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2571,
"end": 2580,
"ctxt": 0
},
"value": "Container",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2580,
"end": 2585,
"ctxt": 0
},
"params": [
{
"type": "TsLiteralType",
"span": {
"start": 2581,
"end": 2584,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2581,
"end": 2584,
"ctxt": 0
},
"value": "a",
"raw": "\"a\""
}
}
]
}
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2592,
"end": 2685,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2598,
"end": 2684,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2598,
"end": 2600,
"ctxt": 0
},
"value": "f4",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2603,
"end": 2684,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2604,
"end": 2670,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2605,
"end": 2670,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 2607,
"end": 2670,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 2607,
"end": 2613,
"ctxt": 0
},
"kind": "number"
},
{
"type": "TsParenthesizedType",
"span": {
"start": 2616,
"end": 2670,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 2617,
"end": 2669,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 2617,
"end": 2631,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2617,
"end": 2626,
"ctxt": 0
},
"value": "Container",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2626,
"end": 2631,
"ctxt": 0
},
"params": [
{
"type": "TsLiteralType",
"span": {
"start": 2627,
"end": 2630,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2627,
"end": 2630,
"ctxt": 0
},
"value": "b",
"raw": "\"b\""
}
}
]
}
},
{
"type": "TsTypeLiteral",
"span": {
"start": 2634,
"end": 2652,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2636,
"end": 2650,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2636,
"end": 2641,
"ctxt": 0
},
"value": "dataB",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2641,
"end": 2650,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2643,
"end": 2650,
"ctxt": 0
},
"kind": "boolean"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeReference",
"span": {
"start": 2655,
"end": 2669,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2655,
"end": 2664,
"ctxt": 0
},
"value": "Container",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2664,
"end": 2669,
"ctxt": 0
},
"params": [
{
"type": "TsLiteralType",
"span": {
"start": 2665,
"end": 2668,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2665,
"end": 2668,
"ctxt": 0
},
"value": "a",
"raw": "\"a\""
}
}
]
}
}
]
}
}
]
}
}
}
],
"body": {
"type": "Identifier",
"span": {
"start": 2683,
"end": 2684,
"ctxt": 0
},
"value": "t",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 2671,
"end": 2679,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2673,
"end": 2679,
"ctxt": 0
},
"kind": "number"
}
}
},
"definite": false
}
]
}
],
"interpreter": null
}