swc/crates/swc_ecma_parser/tests/tsc/assignmentCompatWithDiscriminatedUnion.json

8732 lines
278 KiB
JSON
Raw Normal View History

{
"type": "Script",
"span": {
"start": 74,
"end": 4989,
"ctxt": 0
},
"body": [
{
"type": "TsModuleDeclaration",
"span": {
"start": 74,
"end": 418,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 84,
"end": 92,
"ctxt": 0
},
"value": "Example1",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 93,
"end": 418,
"ctxt": 0
},
"body": [
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 99,
"end": 141,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 104,
"end": 105,
"ctxt": 0
},
"value": "S",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 108,
"end": 140,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 110,
"end": 124,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 110,
"end": 114,
"ctxt": 0
},
"value": "done",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 114,
"end": 123,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 116,
"end": 123,
"ctxt": 0
},
"kind": "boolean"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 125,
"end": 138,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 125,
"end": 130,
"ctxt": 0
},
"value": "value",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 130,
"end": 138,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 132,
"end": 138,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 146,
"end": 246,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 151,
"end": 152,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 163,
"end": 245,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 165,
"end": 194,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 167,
"end": 178,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 167,
"end": 171,
"ctxt": 0
},
"value": "done",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 171,
"end": 177,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 173,
"end": 177,
"ctxt": 0
},
"literal": {
"type": "BooleanLiteral",
"span": {
"start": 173,
"end": 177,
"ctxt": 0
},
"value": true
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 179,
"end": 192,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 179,
"end": 184,
"ctxt": 0
},
"value": "value",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 184,
"end": 192,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 186,
"end": 192,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 215,
"end": 245,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 217,
"end": 229,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 217,
"end": 221,
"ctxt": 0
},
"value": "done",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 221,
"end": 228,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 223,
"end": 228,
"ctxt": 0
},
"literal": {
"type": "BooleanLiteral",
"span": {
"start": 223,
"end": 228,
"ctxt": 0
},
"value": false
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 230,
"end": 243,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 230,
"end": 235,
"ctxt": 0
},
"value": "value",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 235,
"end": 243,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 237,
"end": 243,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
]
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 260,
"end": 277,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 272,
"end": 276,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 272,
"end": 273,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 273,
"end": 276,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 275,
"end": 276,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 275,
"end": 276,
"ctxt": 0
},
"value": "S",
"optional": false
},
"typeParams": null
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 282,
"end": 299,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 294,
"end": 298,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 294,
"end": 295,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 295,
"end": 298,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 297,
"end": 298,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 297,
"end": 298,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 410,
"end": 416,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 410,
"end": 415,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 410,
"end": 411,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 414,
"end": 415,
"ctxt": 0
},
"value": "s",
"optional": false
}
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 450,
"end": 791,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 460,
"end": 468,
"ctxt": 0
},
"value": "Example2",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 469,
"end": 791,
"ctxt": 0
},
"body": [
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 475,
"end": 503,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 480,
"end": 481,
"ctxt": 0
},
"value": "S",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 484,
"end": 502,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 486,
"end": 495,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 486,
"end": 487,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 487,
"end": 494,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 489,
"end": 494,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 489,
"end": 490,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 489,
"end": 490,
"ctxt": 0
},
"value": 0.0
}
},
{
"type": "TsLiteralType",
"span": {
"start": 493,
"end": 494,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 493,
"end": 494,
"ctxt": 0
},
"value": 2.0
}
}
]
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 496,
"end": 500,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 496,
"end": 497,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 497,
"end": 500,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 499,
"end": 500,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 499,
"end": 500,
"ctxt": 0
},
"value": 4.0
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 508,
"end": 632,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 513,
"end": 514,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 517,
"end": 631,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 517,
"end": 539,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 519,
"end": 524,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 519,
"end": 520,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 520,
"end": 523,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 522,
"end": 523,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 522,
"end": 523,
"ctxt": 0
},
"value": 0.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 529,
"end": 537,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 529,
"end": 530,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 530,
"end": 537,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 532,
"end": 537,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 532,
"end": 533,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 532,
"end": 533,
"ctxt": 0
},
"value": 1.0
}
},
{
"type": "TsLiteralType",
"span": {
"start": 536,
"end": 537,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 536,
"end": 537,
"ctxt": 0
},
"value": 4.0
}
}
]
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 563,
"end": 581,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 565,
"end": 570,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 565,
"end": 566,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 566,
"end": 569,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 568,
"end": 569,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 568,
"end": 569,
"ctxt": 0
},
"value": 1.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 575,
"end": 579,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 575,
"end": 576,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 576,
"end": 579,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 578,
"end": 579,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 578,
"end": 579,
"ctxt": 0
},
"value": 2.0
}
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 609,
"end": 631,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 611,
"end": 616,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 611,
"end": 612,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 612,
"end": 615,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 614,
"end": 615,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 614,
"end": 615,
"ctxt": 0
},
"value": 2.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 621,
"end": 629,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 621,
"end": 622,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 622,
"end": 629,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 624,
"end": 629,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 624,
"end": 625,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 624,
"end": 625,
"ctxt": 0
},
"value": 3.0
}
},
{
"type": "TsLiteralType",
"span": {
"start": 628,
"end": 629,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 628,
"end": 629,
"ctxt": 0
},
"value": 4.0
}
}
]
}
},
"typeParams": null
}
]
}
]
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 646,
"end": 663,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 658,
"end": 662,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 658,
"end": 659,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 659,
"end": 662,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 661,
"end": 662,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 661,
"end": 662,
"ctxt": 0
},
"value": "S",
"optional": false
},
"typeParams": null
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 668,
"end": 685,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 680,
"end": 684,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 680,
"end": 681,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 681,
"end": 684,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 683,
"end": 684,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 683,
"end": 684,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 783,
"end": 789,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 783,
"end": 788,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 783,
"end": 784,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 787,
"end": 788,
"ctxt": 0
},
"value": "s",
"optional": false
}
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 820,
"end": 1219,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 830,
"end": 838,
"ctxt": 0
},
"value": "Example3",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 839,
"end": 1219,
"ctxt": 0
},
"body": [
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 845,
"end": 873,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 850,
"end": 851,
"ctxt": 0
},
"value": "S",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 854,
"end": 872,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 856,
"end": 865,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 856,
"end": 857,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 857,
"end": 864,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 859,
"end": 864,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 859,
"end": 860,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 859,
"end": 860,
"ctxt": 0
},
"value": 0.0
}
},
{
"type": "TsLiteralType",
"span": {
"start": 863,
"end": 864,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 863,
"end": 864,
"ctxt": 0
},
"value": 2.0
}
}
]
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 866,
"end": 870,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 866,
"end": 867,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 867,
"end": 870,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 869,
"end": 870,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 869,
"end": 870,
"ctxt": 0
},
"value": 4.0
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 878,
"end": 998,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 883,
"end": 884,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 887,
"end": 997,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 887,
"end": 909,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 889,
"end": 894,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 889,
"end": 890,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 890,
"end": 893,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 892,
"end": 893,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 892,
"end": 893,
"ctxt": 0
},
"value": 0.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 899,
"end": 907,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 899,
"end": 900,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 900,
"end": 907,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 902,
"end": 907,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 902,
"end": 903,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 902,
"end": 903,
"ctxt": 0
},
"value": 1.0
}
},
{
"type": "TsLiteralType",
"span": {
"start": 906,
"end": 907,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 906,
"end": 907,
"ctxt": 0
},
"value": 4.0
}
}
]
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 933,
"end": 955,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 935,
"end": 940,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 935,
"end": 936,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 936,
"end": 939,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 938,
"end": 939,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 938,
"end": 939,
"ctxt": 0
},
"value": 1.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 945,
"end": 953,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 945,
"end": 946,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 946,
"end": 953,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 948,
"end": 953,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 948,
"end": 949,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 948,
"end": 949,
"ctxt": 0
},
"value": 2.0
}
},
{
"type": "TsLiteralType",
"span": {
"start": 952,
"end": 953,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 952,
"end": 953,
"ctxt": 0
},
"value": 4.0
}
}
]
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 979,
"end": 997,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 981,
"end": 986,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 981,
"end": 982,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 982,
"end": 985,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 984,
"end": 985,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 984,
"end": 985,
"ctxt": 0
},
"value": 2.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 991,
"end": 995,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 991,
"end": 992,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 992,
"end": 995,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 994,
"end": 995,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 994,
"end": 995,
"ctxt": 0
},
"value": 3.0
}
}
},
"typeParams": null
}
]
}
]
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1016,
"end": 1033,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1028,
"end": 1032,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1028,
"end": 1029,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1029,
"end": 1032,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1031,
"end": 1032,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1031,
"end": 1032,
"ctxt": 0
},
"value": "S",
"optional": false
},
"typeParams": null
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1038,
"end": 1055,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1050,
"end": 1054,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1050,
"end": 1051,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1051,
"end": 1054,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1053,
"end": 1054,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1053,
"end": 1054,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1211,
"end": 1217,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1211,
"end": 1216,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1211,
"end": 1212,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1215,
"end": 1216,
"ctxt": 0
},
"value": "s",
"optional": false
}
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 1252,
"end": 1643,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 1262,
"end": 1270,
"ctxt": 0
},
"value": "Example4",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 1271,
"end": 1643,
"ctxt": 0
},
"body": [
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1277,
"end": 1305,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1282,
"end": 1283,
"ctxt": 0
},
"value": "S",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1286,
"end": 1304,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1288,
"end": 1297,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1288,
"end": 1289,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1289,
"end": 1296,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 1291,
"end": 1296,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 1291,
"end": 1292,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1291,
"end": 1292,
"ctxt": 0
},
"value": 0.0
}
},
{
"type": "TsLiteralType",
"span": {
"start": 1295,
"end": 1296,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1295,
"end": 1296,
"ctxt": 0
},
"value": 2.0
}
}
]
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1298,
"end": 1302,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1298,
"end": 1299,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1299,
"end": 1302,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1301,
"end": 1302,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1301,
"end": 1302,
"ctxt": 0
},
"value": 4.0
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1310,
"end": 1461,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1315,
"end": 1316,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 1319,
"end": 1460,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 1319,
"end": 1341,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1321,
"end": 1326,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1321,
"end": 1322,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1322,
"end": 1325,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1324,
"end": 1325,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1324,
"end": 1325,
"ctxt": 0
},
"value": 0.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1331,
"end": 1339,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1331,
"end": 1332,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1332,
"end": 1339,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 1334,
"end": 1339,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 1334,
"end": 1335,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1334,
"end": 1335,
"ctxt": 0
},
"value": 1.0
}
},
{
"type": "TsLiteralType",
"span": {
"start": 1338,
"end": 1339,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1338,
"end": 1339,
"ctxt": 0
},
"value": 4.0
}
}
]
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 1373,
"end": 1391,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1375,
"end": 1380,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1375,
"end": 1376,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1376,
"end": 1379,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1378,
"end": 1379,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1378,
"end": 1379,
"ctxt": 0
},
"value": 1.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1385,
"end": 1389,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1385,
"end": 1386,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1386,
"end": 1389,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1388,
"end": 1389,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1388,
"end": 1389,
"ctxt": 0
},
"value": 2.0
}
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 1427,
"end": 1460,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1429,
"end": 1434,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1429,
"end": 1430,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1430,
"end": 1433,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1432,
"end": 1433,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1432,
"end": 1433,
"ctxt": 0
},
"value": 2.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1439,
"end": 1448,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1439,
"end": 1440,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1440,
"end": 1447,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 1442,
"end": 1447,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 1442,
"end": 1443,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1442,
"end": 1443,
"ctxt": 0
},
"value": 3.0
}
},
{
"type": "TsLiteralType",
"span": {
"start": 1446,
"end": 1447,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1446,
"end": 1447,
"ctxt": 0
},
"value": 4.0
}
}
]
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1449,
"end": 1458,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1449,
"end": 1450,
"ctxt": 0
},
"value": "c",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1450,
"end": 1458,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1452,
"end": 1458,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
]
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1472,
"end": 1489,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1484,
"end": 1488,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1484,
"end": 1485,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1485,
"end": 1488,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1487,
"end": 1488,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1487,
"end": 1488,
"ctxt": 0
},
"value": "S",
"optional": false
},
"typeParams": null
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1494,
"end": 1511,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1506,
"end": 1510,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1506,
"end": 1507,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1507,
"end": 1510,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1509,
"end": 1510,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1509,
"end": 1510,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1635,
"end": 1641,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1635,
"end": 1640,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1635,
"end": 1636,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1639,
"end": 1640,
"ctxt": 0
},
"value": "s",
"optional": false
}
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 1682,
"end": 2397,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 1692,
"end": 1700,
"ctxt": 0
},
"value": "Example5",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 1701,
"end": 2397,
"ctxt": 0
},
"body": [
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1892,
"end": 1911,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1897,
"end": 1898,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 1901,
"end": 1910,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 1901,
"end": 1902,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1901,
"end": 1902,
"ctxt": 0
},
"value": 0.0
}
},
{
"type": "TsLiteralType",
"span": {
"start": 1905,
"end": 1906,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1905,
"end": 1906,
"ctxt": 0
},
"value": 1.0
}
},
{
"type": "TsLiteralType",
"span": {
"start": 1909,
"end": 1910,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1909,
"end": 1910,
"ctxt": 0
},
"value": 2.0
}
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1916,
"end": 1946,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1921,
"end": 1922,
"ctxt": 0
},
"value": "S",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1925,
"end": 1945,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1927,
"end": 1932,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1927,
"end": 1928,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1928,
"end": 1931,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1930,
"end": 1931,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1930,
"end": 1931,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1933,
"end": 1938,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1933,
"end": 1934,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1934,
"end": 1937,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1936,
"end": 1937,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1936,
"end": 1937,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1939,
"end": 1943,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1939,
"end": 1940,
"ctxt": 0
},
"value": "c",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1940,
"end": 1943,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1942,
"end": 1943,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1942,
"end": 1943,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1951,
"end": 2253,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1956,
"end": 1957,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 1960,
"end": 2252,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 1960,
"end": 1980,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1962,
"end": 1967,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1962,
"end": 1963,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1963,
"end": 1966,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1965,
"end": 1966,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1965,
"end": 1966,
"ctxt": 0
},
"value": 0.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1968,
"end": 1973,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1968,
"end": 1969,
"ctxt": 0
},
"value": "b",
"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": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1974,
"end": 1978,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1974,
"end": 1975,
"ctxt": 0
},
"value": "c",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"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": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 1994,
"end": 2014,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1996,
"end": 2001,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1996,
"end": 1997,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1997,
"end": 2000,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1999,
"end": 2000,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1999,
"end": 2000,
"ctxt": 0
},
"value": 1.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2002,
"end": 2007,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2002,
"end": 2003,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2003,
"end": 2006,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2005,
"end": 2006,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2005,
"end": 2006,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2008,
"end": 2012,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2008,
"end": 2009,
"ctxt": 0
},
"value": "c",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2009,
"end": 2012,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2011,
"end": 2012,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2011,
"end": 2012,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 2028,
"end": 2048,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2030,
"end": 2035,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2030,
"end": 2031,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2031,
"end": 2034,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 2033,
"end": 2034,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 2033,
"end": 2034,
"ctxt": 0
},
"value": 2.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2036,
"end": 2041,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2036,
"end": 2037,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2037,
"end": 2040,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2039,
"end": 2040,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2039,
"end": 2040,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2042,
"end": 2046,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2042,
"end": 2043,
"ctxt": 0
},
"value": "c",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2043,
"end": 2046,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2045,
"end": 2046,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2045,
"end": 2046,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 2062,
"end": 2082,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2064,
"end": 2069,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2064,
"end": 2065,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2065,
"end": 2068,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2067,
"end": 2068,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2067,
"end": 2068,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2070,
"end": 2075,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2070,
"end": 2071,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2071,
"end": 2074,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 2073,
"end": 2074,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 2073,
"end": 2074,
"ctxt": 0
},
"value": 0.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2076,
"end": 2080,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2076,
"end": 2077,
"ctxt": 0
},
"value": "c",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2077,
"end": 2080,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2079,
"end": 2080,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2079,
"end": 2080,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 2096,
"end": 2116,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2098,
"end": 2103,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2098,
"end": 2099,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2099,
"end": 2102,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2101,
"end": 2102,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2101,
"end": 2102,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2104,
"end": 2109,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2104,
"end": 2105,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2105,
"end": 2108,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 2107,
"end": 2108,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 2107,
"end": 2108,
"ctxt": 0
},
"value": 1.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2110,
"end": 2114,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2110,
"end": 2111,
"ctxt": 0
},
"value": "c",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2111,
"end": 2114,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2113,
"end": 2114,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2113,
"end": 2114,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 2130,
"end": 2150,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2132,
"end": 2137,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2132,
"end": 2133,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2133,
"end": 2136,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2135,
"end": 2136,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2135,
"end": 2136,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2138,
"end": 2143,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2138,
"end": 2139,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2139,
"end": 2142,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 2141,
"end": 2142,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 2141,
"end": 2142,
"ctxt": 0
},
"value": 2.0
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2144,
"end": 2148,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2144,
"end": 2145,
"ctxt": 0
},
"value": "c",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2145,
"end": 2148,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2147,
"end": 2148,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2147,
"end": 2148,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 2164,
"end": 2184,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2166,
"end": 2171,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2166,
"end": 2167,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2167,
"end": 2170,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2169,
"end": 2170,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2169,
"end": 2170,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2172,
"end": 2177,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2172,
"end": 2173,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2173,
"end": 2176,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2175,
"end": 2176,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2175,
"end": 2176,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2178,
"end": 2182,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2178,
"end": 2179,
"ctxt": 0
},
"value": "c",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2179,
"end": 2182,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 2181,
"end": 2182,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 2181,
"end": 2182,
"ctxt": 0
},
"value": 0.0
}
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 2198,
"end": 2218,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2200,
"end": 2205,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2200,
"end": 2201,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2201,
"end": 2204,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2203,
"end": 2204,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2203,
"end": 2204,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2206,
"end": 2211,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2206,
"end": 2207,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2207,
"end": 2210,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2209,
"end": 2210,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2209,
"end": 2210,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2212,
"end": 2216,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2212,
"end": 2213,
"ctxt": 0
},
"value": "c",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2213,
"end": 2216,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 2215,
"end": 2216,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 2215,
"end": 2216,
"ctxt": 0
},
"value": 1.0
}
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 2232,
"end": 2252,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2234,
"end": 2239,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2234,
"end": 2235,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2235,
"end": 2238,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2237,
"end": 2238,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2237,
"end": 2238,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2240,
"end": 2245,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2240,
"end": 2241,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2241,
"end": 2244,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2243,
"end": 2244,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2243,
"end": 2244,
"ctxt": 0
},
"value": "N",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2246,
"end": 2250,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2246,
"end": 2247,
"ctxt": 0
},
"value": "c",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2247,
"end": 2250,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 2249,
"end": 2250,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 2249,
"end": 2250,
"ctxt": 0
},
"value": 2.0
}
}
},
"typeParams": null
}
]
}
]
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 2258,
"end": 2275,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2270,
"end": 2274,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2270,
"end": 2271,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2271,
"end": 2274,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2273,
"end": 2274,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2273,
"end": 2274,
"ctxt": 0
},
"value": "S",
"optional": false
},
"typeParams": null
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2280,
"end": 2297,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2292,
"end": 2296,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2292,
"end": 2293,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2293,
"end": 2296,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2295,
"end": 2296,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2295,
"end": 2296,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 2389,
"end": 2395,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2389,
"end": 2394,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2389,
"end": 2390,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2393,
"end": 2394,
"ctxt": 0
},
"value": "s",
"optional": false
}
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 2455,
"end": 2828,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 2465,
"end": 2472,
"ctxt": 0
},
"value": "GH14865",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 2473,
"end": 2828,
"ctxt": 0
},
"body": [
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 2479,
"end": 2593,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 2484,
"end": 2490,
"ctxt": 0
},
"value": "Style1",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 2493,
"end": 2592,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 2493,
"end": 2541,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2503,
"end": 2513,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2503,
"end": 2507,
"ctxt": 0
},
"value": "type",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2507,
"end": 2512,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 2509,
"end": 2512,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2509,
"end": 2512,
"ctxt": 0
},
"value": "A",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2522,
"end": 2535,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2522,
"end": 2526,
"ctxt": 0
},
"value": "data",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2526,
"end": 2534,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2528,
"end": 2534,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 2544,
"end": 2592,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2554,
"end": 2564,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2554,
"end": 2558,
"ctxt": 0
},
"value": "type",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2558,
"end": 2563,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 2560,
"end": 2563,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2560,
"end": 2563,
"ctxt": 0
},
"value": "B",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2573,
"end": 2586,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2573,
"end": 2577,
"ctxt": 0
},
"value": "data",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2577,
"end": 2585,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2579,
"end": 2585,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 2599,
"end": 2667,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 2604,
"end": 2610,
"ctxt": 0
},
"value": "Style2",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 2613,
"end": 2667,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2623,
"end": 2639,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2623,
"end": 2627,
"ctxt": 0
},
"value": "type",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2627,
"end": 2638,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 2629,
"end": 2638,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 2629,
"end": 2632,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2629,
"end": 2632,
"ctxt": 0
},
"value": "A",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
{
"type": "TsLiteralType",
"span": {
"start": 2635,
"end": 2638,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2635,
"end": 2638,
"ctxt": 0
},
"value": "B",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
]
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2648,
"end": 2661,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2648,
"end": 2652,
"ctxt": 0
},
"value": "data",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2652,
"end": 2660,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2654,
"end": 2660,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 2673,
"end": 2722,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2679,
"end": 2721,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2679,
"end": 2680,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2680,
"end": 2688,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2682,
"end": 2688,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2682,
"end": 2688,
"ctxt": 0
},
"value": "Style2",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "ObjectExpression",
"span": {
"start": 2691,
"end": 2721,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 2693,
"end": 2697,
"ctxt": 0
},
"value": "type",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 2699,
"end": 2702,
"ctxt": 0
},
"value": "A",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 2704,
"end": 2708,
"ctxt": 0
},
"value": "data",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 2710,
"end": 2719,
"ctxt": 0
},
"value": "whatevs",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2727,
"end": 2741,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2731,
"end": 2740,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2731,
"end": 2732,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2732,
"end": 2740,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2734,
"end": 2740,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2734,
"end": 2740,
"ctxt": 0
},
"value": "Style1",
"optional": false
},
"typeParams": null
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 2746,
"end": 2753,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 2746,
"end": 2752,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2746,
"end": 2747,
"ctxt": 0
},
"value": "a",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2748,
"end": 2752,
"ctxt": 0
},
"value": "type",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2771,
"end": 2778,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 2771,
"end": 2777,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2771,
"end": 2772,
"ctxt": 0
},
"value": "b",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2773,
"end": 2777,
"ctxt": 0
},
"value": "type",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2796,
"end": 2802,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2796,
"end": 2801,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2796,
"end": 2797,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2800,
"end": 2801,
"ctxt": 0
},
"value": "a",
"optional": false
}
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 2886,
"end": 3180,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 2896,
"end": 2903,
"ctxt": 0
},
"value": "GH30170",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 2904,
"end": 3180,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2910,
"end": 2954,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2920,
"end": 2924,
"ctxt": 0
},
"value": "Blue",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2925,
"end": 2954,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2935,
"end": 2948,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2935,
"end": 2940,
"ctxt": 0
},
"value": "color",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2940,
"end": 2948,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 2942,
"end": 2948,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2942,
"end": 2948,
"ctxt": 0
},
"value": "blue",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2959,
"end": 3009,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2969,
"end": 2975,
"ctxt": 0
},
"value": "Yellow",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2976,
"end": 3009,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2986,
"end": 3003,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2986,
"end": 2991,
"ctxt": 0
},
"value": "color",
"optional": false
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2992,
"end": 3002,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 2994,
"end": 3002,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2994,
"end": 3002,
"ctxt": 0
},
"value": "yellow",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 3023,
"end": 3027,
"ctxt": 0
},
"value": "draw",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 3028,
"end": 3046,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3028,
"end": 3046,
"ctxt": 0
},
"value": "val",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3031,
"end": 3046,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 3033,
"end": 3046,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 3033,
"end": 3037,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3033,
"end": 3037,
"ctxt": 0
},
"value": "Blue",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 3040,
"end": 3046,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3040,
"end": 3046,
"ctxt": 0
},
"value": "Yellow",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 3014,
"end": 3051,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 3048,
"end": 3051,
"ctxt": 0
},
"stmts": []
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 3066,
"end": 3079,
"ctxt": 0
},
"value": "drawWithColor",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 3080,
"end": 3123,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3080,
"end": 3123,
"ctxt": 0
},
"value": "currentColor",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3092,
"end": 3123,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 3094,
"end": 3123,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 3094,
"end": 3100,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3094,
"end": 3100,
"ctxt": 0
},
"value": "blue",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
{
"type": "TsLiteralType",
"span": {
"start": 3103,
"end": 3111,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3103,
"end": 3111,
"ctxt": 0
},
"value": "yellow",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
{
"type": "TsKeywordType",
"span": {
"start": 3114,
"end": 3123,
"ctxt": 0
},
"kind": "undefined"
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 3057,
"end": 3178,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 3125,
"end": 3178,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 3135,
"end": 3172,
"ctxt": 0
},
"argument": {
"type": "CallExpression",
"span": {
"start": 3142,
"end": 3171,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3142,
"end": 3146,
"ctxt": 0
},
"value": "draw",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 3147,
"end": 3170,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 3149,
"end": 3154,
"ctxt": 0
},
"value": "color",
"optional": false
},
"value": {
"type": "Identifier",
"span": {
"start": 3156,
"end": 3168,
"ctxt": 0
},
"value": "currentColor",
"optional": false
}
}
]
}
}
],
"typeArguments": null
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 3238,
"end": 3743,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 3248,
"end": 3255,
"ctxt": 0
},
"value": "GH12052",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 3256,
"end": 3743,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3262,
"end": 3303,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3272,
"end": 3283,
"ctxt": 0
},
"value": "ILinearAxis",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3284,
"end": 3303,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3286,
"end": 3301,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3286,
"end": 3290,
"ctxt": 0
},
"value": "type",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3290,
"end": 3300,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 3292,
"end": 3300,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3292,
"end": 3300,
"ctxt": 0
},
"value": "linear",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3309,
"end": 3360,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3319,
"end": 3335,
"ctxt": 0
},
"value": "ICategoricalAxis",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3336,
"end": 3360,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3338,
"end": 3358,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3338,
"end": 3342,
"ctxt": 0
},
"value": "type",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3342,
"end": 3357,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 3344,
"end": 3357,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3344,
"end": 3357,
"ctxt": 0
},
"value": "categorical",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 3366,
"end": 3410,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 3371,
"end": 3376,
"ctxt": 0
},
"value": "IAxis",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 3379,
"end": 3409,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 3379,
"end": 3390,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3379,
"end": 3390,
"ctxt": 0
},
"value": "ILinearAxis",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 3393,
"end": 3409,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3393,
"end": 3409,
"ctxt": 0
},
"value": "ICategoricalAxis",
"optional": false
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 3415,
"end": 3457,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 3420,
"end": 3429,
"ctxt": 0
},
"value": "IAxisType",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 3432,
"end": 3456,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 3432,
"end": 3440,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3432,
"end": 3440,
"ctxt": 0
},
"value": "linear",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
{
"type": "TsLiteralType",
"span": {
"start": 3443,
"end": 3456,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3443,
"end": 3456,
"ctxt": 0
},
"value": "categorical",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
]
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 3472,
"end": 3483,
"ctxt": 0
},
"value": "getAxisType",
"optional": false
},
"declare": false,
"params": [],
"decorators": [],
"span": {
"start": 3463,
"end": 3616,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 3497,
"end": 3616,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 3507,
"end": 3610,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 3511,
"end": 3517,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "NumericLiteral",
"span": {
"start": 3511,
"end": 3512,
"ctxt": 0
},
"value": 1.0
},
"right": {
"type": "NumericLiteral",
"span": {
"start": 3516,
"end": 3517,
"ctxt": 0
},
"value": 1.0
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 3519,
"end": 3564,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 3533,
"end": 3554,
"ctxt": 0
},
"argument": {
"type": "StringLiteral",
"span": {
"start": 3540,
"end": 3553,
"ctxt": 0
},
"value": "categorical",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 3570,
"end": 3610,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 3584,
"end": 3600,
"ctxt": 0
},
"argument": {
"type": "StringLiteral",
"span": {
"start": 3591,
"end": 3599,
"ctxt": 0
},
"value": "linear",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 3485,
"end": 3496,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3487,
"end": 3496,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3487,
"end": 3496,
"ctxt": 0
},
"value": "IAxisType",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 3622,
"end": 3665,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3628,
"end": 3664,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3628,
"end": 3631,
"ctxt": 0
},
"value": "bad",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3631,
"end": 3638,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3633,
"end": 3638,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3633,
"end": 3638,
"ctxt": 0
},
"value": "IAxis",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "ObjectExpression",
"span": {
"start": 3641,
"end": 3664,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 3643,
"end": 3647,
"ctxt": 0
},
"value": "type",
"optional": false
},
"value": {
"type": "CallExpression",
"span": {
"start": 3649,
"end": 3662,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3649,
"end": 3660,
"ctxt": 0
},
"value": "getAxisType",
"optional": false
},
"arguments": [],
"typeArguments": null
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3670,
"end": 3710,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3676,
"end": 3709,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3676,
"end": 3680,
"ctxt": 0
},
"value": "good",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3680,
"end": 3687,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3682,
"end": 3687,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3682,
"end": 3687,
"ctxt": 0
},
"value": "IAxis",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "ObjectExpression",
"span": {
"start": 3690,
"end": 3709,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 3692,
"end": 3696,
"ctxt": 0
},
"value": "type",
"optional": false
},
"value": {
"type": "Identifier",
"span": {
"start": 3698,
"end": 3707,
"ctxt": 0
},
"value": "undefined",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 3715,
"end": 3741,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3715,
"end": 3740,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 3715,
"end": 3724,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3715,
"end": 3719,
"ctxt": 0
},
"value": "good",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3720,
"end": 3724,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"right": {
"type": "CallExpression",
"span": {
"start": 3727,
"end": 3740,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3727,
"end": 3738,
"ctxt": 0
},
"value": "getAxisType",
"optional": false
},
"arguments": [],
"typeArguments": null
}
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 3801,
"end": 4139,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 3811,
"end": 3818,
"ctxt": 0
},
"value": "GH18421",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 3819,
"end": 4139,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3825,
"end": 3876,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3835,
"end": 3847,
"ctxt": 0
},
"value": "ThingTypeOne",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3848,
"end": 3876,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3858,
"end": 3870,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3858,
"end": 3862,
"ctxt": 0
},
"value": "type",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3862,
"end": 3869,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 3864,
"end": 3869,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3864,
"end": 3869,
"ctxt": 0
},
"value": "one",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3882,
"end": 3933,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3892,
"end": 3904,
"ctxt": 0
},
"value": "ThingTypeTwo",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3905,
"end": 3933,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3915,
"end": 3927,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3915,
"end": 3919,
"ctxt": 0
},
"value": "type",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3919,
"end": 3926,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 3921,
"end": 3926,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3921,
"end": 3926,
"ctxt": 0
},
"value": "two",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 3939,
"end": 3970,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 3944,
"end": 3953,
"ctxt": 0
},
"value": "ThingType",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 3956,
"end": 3969,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 3956,
"end": 3961,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3956,
"end": 3961,
"ctxt": 0
},
"value": "one",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
{
"type": "TsLiteralType",
"span": {
"start": 3964,
"end": 3969,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3964,
"end": 3969,
"ctxt": 0
},
"value": "two",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 3976,
"end": 4017,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 3981,
"end": 3986,
"ctxt": 0
},
"value": "Thing",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 3989,
"end": 4016,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 3989,
"end": 4001,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3989,
"end": 4001,
"ctxt": 0
},
"value": "ThingTypeOne",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 4004,
"end": 4016,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4004,
"end": 4016,
"ctxt": 0
},
"value": "ThingTypeTwo",
"optional": false
},
"typeParams": null
}
]
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4032,
"end": 4044,
"ctxt": 0
},
"value": "makeNewThing",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 4045,
"end": 4065,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4045,
"end": 4065,
"ctxt": 0
},
"value": "thingType",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4054,
"end": 4065,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4056,
"end": 4065,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4056,
"end": 4065,
"ctxt": 0
},
"value": "ThingType",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 4023,
"end": 4137,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 4074,
"end": 4137,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 4084,
"end": 4131,
"ctxt": 0
},
"argument": {
"type": "ObjectExpression",
"span": {
"start": 4091,
"end": 4130,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 4105,
"end": 4109,
"ctxt": 0
},
"value": "type",
"optional": false
},
"value": {
"type": "Identifier",
"span": {
"start": 4111,
"end": 4120,
"ctxt": 0
},
"value": "thingType",
"optional": false
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 4066,
"end": 4073,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4068,
"end": 4073,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4068,
"end": 4073,
"ctxt": 0
},
"value": "Thing",
"optional": false
},
"typeParams": null
}
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 4197,
"end": 4440,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 4207,
"end": 4214,
"ctxt": 0
},
"value": "GH15907",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 4215,
"end": 4440,
"ctxt": 0
},
"body": [
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 4221,
"end": 4282,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 4226,
"end": 4232,
"ctxt": 0
},
"value": "Action",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 4235,
"end": 4281,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 4235,
"end": 4255,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 4237,
"end": 4253,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4237,
"end": 4241,
"ctxt": 0
},
"value": "type",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4241,
"end": 4253,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 4243,
"end": 4253,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4243,
"end": 4253,
"ctxt": 0
},
"value": "activate",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 4258,
"end": 4281,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 4260,
"end": 4279,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4260,
"end": 4264,
"ctxt": 0
},
"value": "type",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4264,
"end": 4279,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 4266,
"end": 4279,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4266,
"end": 4279,
"ctxt": 0
},
"value": "disactivate",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
}
]
}
]
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4297,
"end": 4311,
"ctxt": 0
},
"value": "dispatchAction",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 4312,
"end": 4326,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4312,
"end": 4326,
"ctxt": 0
},
"value": "action",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4318,
"end": 4326,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4320,
"end": 4326,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4320,
"end": 4326,
"ctxt": 0
},
"value": "Action",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 4288,
"end": 4342,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 4334,
"end": 4342,
"ctxt": 0
},
"stmts": []
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 4327,
"end": 4333,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 4329,
"end": 4333,
"ctxt": 0
},
"kind": "void"
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 4348,
"end": 4368,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4354,
"end": 4367,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4354,
"end": 4360,
"ctxt": 0
},
"value": "active",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BooleanLiteral",
"span": {
"start": 4363,
"end": 4367,
"ctxt": 0
},
"value": true
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 4374,
"end": 4438,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 4374,
"end": 4437,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 4374,
"end": 4388,
"ctxt": 0
},
"value": "dispatchAction",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 4389,
"end": 4436,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 4391,
"end": 4395,
"ctxt": 0
},
"value": "type",
"optional": false
},
"value": {
"type": "ParenthesisExpression",
"span": {
"start": 4398,
"end": 4434,
"ctxt": 0
},
"expression": {
"type": "ConditionalExpression",
"span": {
"start": 4399,
"end": 4433,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 4399,
"end": 4405,
"ctxt": 0
},
"value": "active",
"optional": false
},
"consequent": {
"type": "StringLiteral",
"span": {
"start": 4407,
"end": 4420,
"ctxt": 0
},
"value": "disactivate",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
},
"alternate": {
"type": "StringLiteral",
"span": {
"start": 4423,
"end": 4433,
"ctxt": 0
},
"value": "activate",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
}
}
]
}
}
],
"typeArguments": null
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 4498,
"end": 4734,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 4508,
"end": 4515,
"ctxt": 0
},
"value": "GH20889",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 4516,
"end": 4734,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4522,
"end": 4562,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4532,
"end": 4534,
"ctxt": 0
},
"value": "A1",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4535,
"end": 4562,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4545,
"end": 4556,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4545,
"end": 4549,
"ctxt": 0
},
"value": "type",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4549,
"end": 4555,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 4551,
"end": 4555,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4551,
"end": 4555,
"ctxt": 0
},
"value": "A1",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4567,
"end": 4607,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4577,
"end": 4579,
"ctxt": 0
},
"value": "A2",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4580,
"end": 4607,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4590,
"end": 4601,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4590,
"end": 4594,
"ctxt": 0
},
"value": "type",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4594,
"end": 4600,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 4596,
"end": 4600,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4596,
"end": 4600,
"ctxt": 0
},
"value": "A2",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 4612,
"end": 4630,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 4617,
"end": 4619,
"ctxt": 0
},
"value": "AU",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 4622,
"end": 4629,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 4622,
"end": 4624,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4622,
"end": 4624,
"ctxt": 0
},
"value": "A1",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 4627,
"end": 4629,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4627,
"end": 4629,
"ctxt": 0
},
"value": "A2",
"optional": false
},
"typeParams": null
}
]
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4645,
"end": 4648,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 4649,
"end": 4657,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4649,
"end": 4657,
"ctxt": 0
},
"value": "obj1",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4653,
"end": 4657,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4655,
"end": 4657,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4655,
"end": 4657,
"ctxt": 0
},
"value": "AU",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 4636,
"end": 4732,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 4659,
"end": 4732,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 4669,
"end": 4726,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4675,
"end": 4725,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4675,
"end": 4679,
"ctxt": 0
},
"value": "obj2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4679,
"end": 4683,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4681,
"end": 4683,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4681,
"end": 4683,
"ctxt": 0
},
"value": "AU",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "ObjectExpression",
"span": {
"start": 4686,
"end": 4725,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 4700,
"end": 4704,
"ctxt": 0
},
"value": "type",
"optional": false
},
"value": {
"type": "MemberExpression",
"span": {
"start": 4706,
"end": 4715,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4706,
"end": 4710,
"ctxt": 0
},
"value": "obj1",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4711,
"end": 4715,
"ctxt": 0
},
"value": "type",
"optional": false
}
}
}
]
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 4792,
"end": 4989,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 4802,
"end": 4809,
"ctxt": 0
},
"value": "GH39357",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 4810,
"end": 4989,
"ctxt": 0
},
"body": [
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 4816,
"end": 4871,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 4821,
"end": 4822,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 4825,
"end": 4870,
"ctxt": 0
},
"types": [
{
"type": "TsTupleType",
"span": {
"start": 4825,
"end": 4838,
"ctxt": 0
},
"elemTypes": [
{
"type": "TsTupleElement",
"span": {
"start": 4826,
"end": 4829,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsLiteralType",
"span": {
"start": 4826,
"end": 4829,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4826,
"end": 4829,
"ctxt": 0
},
"value": "a",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
{
"type": "TsTupleElement",
"span": {
"start": 4831,
"end": 4837,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 4831,
"end": 4837,
"ctxt": 0
},
"kind": "number"
}
}
]
},
{
"type": "TsTupleType",
"span": {
"start": 4841,
"end": 4854,
"ctxt": 0
},
"elemTypes": [
{
"type": "TsTupleElement",
"span": {
"start": 4842,
"end": 4845,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsLiteralType",
"span": {
"start": 4842,
"end": 4845,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4842,
"end": 4845,
"ctxt": 0
},
"value": "b",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
{
"type": "TsTupleElement",
"span": {
"start": 4847,
"end": 4853,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 4847,
"end": 4853,
"ctxt": 0
},
"kind": "number"
}
}
]
},
{
"type": "TsTupleType",
"span": {
"start": 4857,
"end": 4870,
"ctxt": 0
},
"elemTypes": [
{
"type": "TsTupleElement",
"span": {
"start": 4858,
"end": 4861,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsLiteralType",
"span": {
"start": 4858,
"end": 4861,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4858,
"end": 4861,
"ctxt": 0
},
"value": "c",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
{
"type": "TsTupleElement",
"span": {
"start": 4863,
"end": 4869,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 4863,
"end": 4869,
"ctxt": 0
},
"kind": "string"
}
}
]
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 4876,
"end": 4901,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 4881,
"end": 4882,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 4885,
"end": 4900,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 4885,
"end": 4888,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4885,
"end": 4888,
"ctxt": 0
},
"value": "a",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
{
"type": "TsLiteralType",
"span": {
"start": 4891,
"end": 4894,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4891,
"end": 4894,
"ctxt": 0
},
"value": "b",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
{
"type": "TsLiteralType",
"span": {
"start": 4897,
"end": 4900,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4897,
"end": 4900,
"ctxt": 0
},
"value": "c",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
]
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 4906,
"end": 4925,
"ctxt": 0
},
"kind": "const",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4920,
"end": 4924,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4920,
"end": 4921,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4921,
"end": 4924,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4923,
"end": 4924,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4923,
"end": 4924,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 4930,
"end": 4987,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4936,
"end": 4986,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4936,
"end": 4937,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4937,
"end": 4940,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4939,
"end": 4940,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4939,
"end": 4940,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "ConditionalExpression",
"span": {
"start": 4943,
"end": 4986,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 4943,
"end": 4965,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "BinaryExpression",
"span": {
"start": 4943,
"end": 4952,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "Identifier",
"span": {
"start": 4943,
"end": 4944,
"ctxt": 0
},
"value": "b",
"optional": false
},
"right": {
"type": "StringLiteral",
"span": {
"start": 4949,
"end": 4952,
"ctxt": 0
},
"value": "a",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"right": {
"type": "BinaryExpression",
"span": {
"start": 4956,
"end": 4965,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "Identifier",
"span": {
"start": 4956,
"end": 4957,
"ctxt": 0
},
"value": "b",
"optional": false
},
"right": {
"type": "StringLiteral",
"span": {
"start": 4962,
"end": 4965,
"ctxt": 0
},
"value": "b",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"consequent": {
"type": "ArrayExpression",
"span": {
"start": 4968,
"end": 4974,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4969,
"end": 4970,
"ctxt": 0
},
"value": "b",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 4972,
"end": 4973,
"ctxt": 0
},
"value": 1.0
}
}
]
},
"alternate": {
"type": "ArrayExpression",
"span": {
"start": 4977,
"end": 4986,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 4978,
"end": 4981,
"ctxt": 0
},
"value": "c",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 4983,
"end": 4985,
"ctxt": 0
},
"value": "",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
]
}
},
"definite": false
}
]
}
]
}
}
],
"interpreter": null
}