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

4278 lines
111 KiB
JSON

{
"type": "Module",
"span": {
"start": 216,
"end": 1949,
"ctxt": 0
},
"body": [
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 216,
"end": 239,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 221,
"end": 222,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 225,
"end": 238,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 227,
"end": 236,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 227,
"end": 228,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 228,
"end": 236,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 230,
"end": 236,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 240,
"end": 263,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 245,
"end": 246,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 249,
"end": 262,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 251,
"end": 260,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 251,
"end": 252,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 252,
"end": 260,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 254,
"end": 260,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 264,
"end": 276,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 269,
"end": 270,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 273,
"end": 275,
"ctxt": 0
},
"members": []
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 278,
"end": 293,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 282,
"end": 292,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 282,
"end": 285,
"ctxt": 0
},
"value": "x01",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 285,
"end": 292,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 287,
"end": 292,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 287,
"end": 288,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 287,
"end": 288,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 291,
"end": 292,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 291,
"end": 292,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 294,
"end": 309,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 298,
"end": 308,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 298,
"end": 301,
"ctxt": 0
},
"value": "x02",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 301,
"end": 308,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 303,
"end": 308,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 303,
"end": 304,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 303,
"end": 304,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 307,
"end": 308,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 307,
"end": 308,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 310,
"end": 325,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 314,
"end": 324,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 314,
"end": 317,
"ctxt": 0
},
"value": "x03",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 317,
"end": 324,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 319,
"end": 324,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 319,
"end": 320,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 319,
"end": 320,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 323,
"end": 324,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 323,
"end": 324,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 326,
"end": 345,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 330,
"end": 344,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 330,
"end": 333,
"ctxt": 0
},
"value": "x04",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 333,
"end": 344,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 335,
"end": 344,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 335,
"end": 336,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 335,
"end": 336,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 339,
"end": 340,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 339,
"end": 340,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 343,
"end": 344,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 343,
"end": 344,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 346,
"end": 366,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 350,
"end": 365,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 350,
"end": 353,
"ctxt": 0
},
"value": "x05",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 353,
"end": 365,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 355,
"end": 365,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 355,
"end": 361,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsTypeReference",
"span": {
"start": 364,
"end": 365,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 364,
"end": 365,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 367,
"end": 387,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 371,
"end": 386,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 371,
"end": 374,
"ctxt": 0
},
"value": "x06",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 374,
"end": 386,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 376,
"end": 386,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 376,
"end": 377,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 376,
"end": 377,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
},
{
"type": "TsKeywordType",
"span": {
"start": 380,
"end": 386,
"ctxt": 0
},
"kind": "string"
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 388,
"end": 399,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 392,
"end": 398,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 392,
"end": 395,
"ctxt": 0
},
"value": "x07",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 395,
"end": 398,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 397,
"end": 398,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 397,
"end": 398,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 400,
"end": 416,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 404,
"end": 415,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 404,
"end": 407,
"ctxt": 0
},
"value": "x08",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 407,
"end": 415,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 409,
"end": 415,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 409,
"end": 410,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 409,
"end": 410,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeLiteral",
"span": {
"start": 413,
"end": 415,
"ctxt": 0
},
"members": []
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 417,
"end": 456,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 421,
"end": 455,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 421,
"end": 424,
"ctxt": 0
},
"value": "x09",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 424,
"end": 455,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 426,
"end": 455,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 426,
"end": 428,
"ctxt": 0
},
"members": []
},
{
"type": "TsTypeReference",
"span": {
"start": 431,
"end": 432,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 431,
"end": 432,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeLiteral",
"span": {
"start": 435,
"end": 437,
"ctxt": 0
},
"members": []
},
{
"type": "TsTypeReference",
"span": {
"start": 440,
"end": 441,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 440,
"end": 441,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeLiteral",
"span": {
"start": 444,
"end": 446,
"ctxt": 0
},
"members": []
},
{
"type": "TsTypeReference",
"span": {
"start": 449,
"end": 450,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 449,
"end": 450,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeLiteral",
"span": {
"start": 453,
"end": 455,
"ctxt": 0
},
"members": []
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 458,
"end": 472,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 468,
"end": 469,
"ctxt": 0
},
"value": "D",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 470,
"end": 472,
"ctxt": 0
},
"body": []
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 473,
"end": 487,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 483,
"end": 484,
"ctxt": 0
},
"value": "E",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 485,
"end": 487,
"ctxt": 0
},
"body": []
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 489,
"end": 504,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 493,
"end": 503,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 493,
"end": 496,
"ctxt": 0
},
"value": "x10",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 496,
"end": 503,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 498,
"end": 503,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 498,
"end": 499,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 498,
"end": 499,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 502,
"end": 503,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 502,
"end": 503,
"ctxt": 0
},
"value": "D",
"optional": false
},
"typeParams": null
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 505,
"end": 520,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 509,
"end": 519,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 509,
"end": 512,
"ctxt": 0
},
"value": "x11",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 512,
"end": 519,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 514,
"end": 519,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 514,
"end": 515,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 514,
"end": 515,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 518,
"end": 519,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 518,
"end": 519,
"ctxt": 0
},
"value": "D",
"optional": false
},
"typeParams": null
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 521,
"end": 544,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 525,
"end": 543,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 525,
"end": 528,
"ctxt": 0
},
"value": "x12",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 528,
"end": 543,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 530,
"end": 543,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 530,
"end": 531,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 530,
"end": 531,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 534,
"end": 535,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 534,
"end": 535,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 538,
"end": 539,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 538,
"end": 539,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 542,
"end": 543,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 542,
"end": 543,
"ctxt": 0
},
"value": "D",
"optional": false
},
"typeParams": null
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 545,
"end": 560,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 549,
"end": 559,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 549,
"end": 552,
"ctxt": 0
},
"value": "x13",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 552,
"end": 559,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 554,
"end": 559,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 554,
"end": 555,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 554,
"end": 555,
"ctxt": 0
},
"value": "D",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 558,
"end": 559,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 558,
"end": 559,
"ctxt": 0
},
"value": "E",
"optional": false
},
"typeParams": null
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 561,
"end": 588,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 565,
"end": 587,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 565,
"end": 568,
"ctxt": 0
},
"value": "x14",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 568,
"end": 587,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 570,
"end": 587,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 570,
"end": 571,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 570,
"end": 571,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 574,
"end": 575,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 574,
"end": 575,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 578,
"end": 579,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 578,
"end": 579,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 582,
"end": 583,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 582,
"end": 583,
"ctxt": 0
},
"value": "D",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 586,
"end": 587,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 586,
"end": 587,
"ctxt": 0
},
"value": "E",
"optional": false
},
"typeParams": null
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 612,
"end": 657,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 617,
"end": 627,
"ctxt": 0
},
"value": "Dictionary",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 630,
"end": 656,
"ctxt": 0
},
"members": [
{
"type": "TsIndexSignature",
"params": [
{
"type": "Identifier",
"span": {
"start": 633,
"end": 645,
"ctxt": 0
},
"value": "name",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 637,
"end": 645,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 639,
"end": 645,
"ctxt": 0
},
"kind": "string"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 646,
"end": 654,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 648,
"end": 654,
"ctxt": 0
},
"kind": "string"
}
},
"readonly": false,
"static": false,
"span": {
"start": 632,
"end": 654,
"ctxt": 0
}
}
]
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 659,
"end": 797,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 665,
"end": 796,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 665,
"end": 686,
"ctxt": 0
},
"value": "intersectDictionaries",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 689,
"end": 796,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 739,
"end": 745,
"ctxt": 0
},
"value": "d1",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 741,
"end": 745,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 743,
"end": 745,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 743,
"end": 745,
"ctxt": 0
},
"value": "F1",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 749,
"end": 755,
"ctxt": 0
},
"value": "d2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 751,
"end": 755,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 753,
"end": 755,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 753,
"end": 755,
"ctxt": 0
},
"value": "F2",
"optional": false
},
"typeParams": null
}
}
}
],
"body": {
"type": "CallExpression",
"span": {
"start": 771,
"end": 796,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 771,
"end": 784,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 771,
"end": 777,
"ctxt": 0
},
"value": "Object",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 778,
"end": 784,
"ctxt": 0
},
"value": "assign",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 785,
"end": 787,
"ctxt": 0
},
"properties": []
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 789,
"end": 791,
"ctxt": 0
},
"value": "d1",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 793,
"end": 795,
"ctxt": 0
},
"value": "d2",
"optional": false
}
}
],
"typeArguments": null
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 689,
"end": 735,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 690,
"end": 711,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 690,
"end": 692,
"ctxt": 0
},
"value": "F1",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 701,
"end": 711,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 701,
"end": 711,
"ctxt": 0
},
"value": "Dictionary",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 713,
"end": 734,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 713,
"end": 715,
"ctxt": 0
},
"value": "F2",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 724,
"end": 734,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 724,
"end": 734,
"ctxt": 0
},
"value": "Dictionary",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 758,
"end": 767,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 760,
"end": 767,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 760,
"end": 762,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 760,
"end": 762,
"ctxt": 0
},
"value": "F1",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 765,
"end": 767,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 765,
"end": 767,
"ctxt": 0
},
"value": "F2",
"optional": false
},
"typeParams": null
}
]
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 799,
"end": 863,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 805,
"end": 862,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 805,
"end": 819,
"ctxt": 0
},
"value": "testDictionary",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 822,
"end": 862,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 845,
"end": 854,
"ctxt": 0
},
"value": "_value",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 851,
"end": 854,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 853,
"end": 854,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 853,
"end": 854,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"body": {
"type": "BlockStatement",
"span": {
"start": 859,
"end": 862,
"ctxt": 0
},
"stmts": []
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 822,
"end": 844,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 823,
"end": 843,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 823,
"end": 824,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 833,
"end": 843,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 833,
"end": 843,
"ctxt": 0
},
"value": "Dictionary",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 865,
"end": 879,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 871,
"end": 878,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 871,
"end": 873,
"ctxt": 0
},
"value": "d1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ObjectExpression",
"span": {
"start": 876,
"end": 878,
"ctxt": 0
},
"properties": []
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 880,
"end": 899,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 880,
"end": 898,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 880,
"end": 894,
"ctxt": 0
},
"value": "testDictionary",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 895,
"end": 897,
"ctxt": 0
},
"value": "d1",
"optional": false
}
}
],
"typeArguments": null
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 900,
"end": 941,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 906,
"end": 940,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 906,
"end": 908,
"ctxt": 0
},
"value": "d2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 911,
"end": 940,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 911,
"end": 932,
"ctxt": 0
},
"value": "intersectDictionaries",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 933,
"end": 935,
"ctxt": 0
},
"value": "d1",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 937,
"end": 939,
"ctxt": 0
},
"value": "d1",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 942,
"end": 961,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 942,
"end": 960,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 942,
"end": 956,
"ctxt": 0
},
"value": "testDictionary",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 957,
"end": 959,
"ctxt": 0
},
"value": "d2",
"optional": false
}
}
],
"typeArguments": null
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 963,
"end": 987,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 969,
"end": 986,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 969,
"end": 971,
"ctxt": 0
},
"value": "d3",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ObjectExpression",
"span": {
"start": 974,
"end": 986,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 978,
"end": 979,
"ctxt": 0
},
"value": "s",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 981,
"end": 983,
"ctxt": 0
},
"value": "",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
]
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 988,
"end": 1007,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 988,
"end": 1006,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 988,
"end": 1002,
"ctxt": 0
},
"value": "testDictionary",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1003,
"end": 1005,
"ctxt": 0
},
"value": "d3",
"optional": false
}
}
],
"typeArguments": null
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1008,
"end": 1049,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1014,
"end": 1048,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1014,
"end": 1016,
"ctxt": 0
},
"value": "d4",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 1019,
"end": 1048,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 1019,
"end": 1040,
"ctxt": 0
},
"value": "intersectDictionaries",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1041,
"end": 1043,
"ctxt": 0
},
"value": "d1",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1045,
"end": 1047,
"ctxt": 0
},
"value": "d3",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1050,
"end": 1069,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 1050,
"end": 1068,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 1050,
"end": 1064,
"ctxt": 0
},
"value": "testDictionary",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1065,
"end": 1067,
"ctxt": 0
},
"value": "d4",
"optional": false
}
}
],
"typeArguments": null
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1070,
"end": 1111,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1076,
"end": 1110,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1076,
"end": 1078,
"ctxt": 0
},
"value": "d5",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 1081,
"end": 1110,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 1081,
"end": 1102,
"ctxt": 0
},
"value": "intersectDictionaries",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1103,
"end": 1105,
"ctxt": 0
},
"value": "d3",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1107,
"end": 1109,
"ctxt": 0
},
"value": "d1",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1112,
"end": 1131,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 1112,
"end": 1130,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 1112,
"end": 1126,
"ctxt": 0
},
"value": "testDictionary",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1127,
"end": 1129,
"ctxt": 0
},
"value": "d5",
"optional": false
}
}
],
"typeArguments": null
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1132,
"end": 1173,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1138,
"end": 1172,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1138,
"end": 1140,
"ctxt": 0
},
"value": "d6",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 1143,
"end": 1172,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 1143,
"end": 1164,
"ctxt": 0
},
"value": "intersectDictionaries",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1165,
"end": 1167,
"ctxt": 0
},
"value": "d3",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1169,
"end": 1171,
"ctxt": 0
},
"value": "d3",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1174,
"end": 1193,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 1174,
"end": 1192,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 1174,
"end": 1188,
"ctxt": 0
},
"value": "testDictionary",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1189,
"end": 1191,
"ctxt": 0
},
"value": "d6",
"optional": false
}
}
],
"typeArguments": null
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1217,
"end": 1340,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1222,
"end": 1229,
"ctxt": 0
},
"value": "choices",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1229,
"end": 1282,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1230,
"end": 1281,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1230,
"end": 1241,
"ctxt": 0
},
"value": "IChoiceList",
"optional": false
},
"constraint": {
"type": "TsTypeLiteral",
"span": {
"start": 1250,
"end": 1281,
"ctxt": 0
},
"members": [
{
"type": "TsIndexSignature",
"params": [
{
"type": "Identifier",
"span": {
"start": 1257,
"end": 1268,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1260,
"end": 1268,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1262,
"end": 1268,
"ctxt": 0
},
"kind": "string"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1269,
"end": 1278,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1271,
"end": 1278,
"ctxt": 0
},
"kind": "boolean"
}
},
"readonly": false,
"static": false,
"span": {
"start": 1256,
"end": 1279,
"ctxt": 0
}
}
]
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 1285,
"end": 1339,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1285,
"end": 1296,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1285,
"end": 1296,
"ctxt": 0
},
"value": "IChoiceList",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeLiteral",
"span": {
"start": 1299,
"end": 1339,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1305,
"end": 1319,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1305,
"end": 1310,
"ctxt": 0
},
"value": "shoes",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1310,
"end": 1318,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1311,
"end": 1318,
"ctxt": 0
},
"kind": "boolean"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1324,
"end": 1337,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1324,
"end": 1328,
"ctxt": 0
},
"value": "food",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1328,
"end": 1336,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1329,
"end": 1336,
"ctxt": 0
},
"kind": "boolean"
}
},
"typeParams": null
}
]
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1342,
"end": 1381,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1347,
"end": 1360,
"ctxt": 0
},
"value": "IMyChoiceList",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1363,
"end": 1380,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1369,
"end": 1378,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1369,
"end": 1372,
"ctxt": 0
},
"value": "car",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1372,
"end": 1378,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1374,
"end": 1378,
"ctxt": 0
},
"literal": {
"type": "BooleanLiteral",
"span": {
"start": 1374,
"end": 1378,
"ctxt": 0
},
"value": true
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1383,
"end": 1412,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1388,
"end": 1406,
"ctxt": 0
},
"value": "IUnknownChoiceList",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1409,
"end": 1411,
"ctxt": 0
},
"members": []
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1414,
"end": 1446,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1418,
"end": 1445,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1418,
"end": 1432,
"ctxt": 0
},
"value": "defaultChoices",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1432,
"end": 1445,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1434,
"end": 1445,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1434,
"end": 1441,
"ctxt": 0
},
"value": "choices",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1441,
"end": 1445,
"ctxt": 0
},
"params": [
{
"type": "TsTypeLiteral",
"span": {
"start": 1442,
"end": 1444,
"ctxt": 0
},
"members": []
}
]
}
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1447,
"end": 1492,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1451,
"end": 1491,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1451,
"end": 1473,
"ctxt": 0
},
"value": "defaultChoicesAndEmpty",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1473,
"end": 1491,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1475,
"end": 1491,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1475,
"end": 1482,
"ctxt": 0
},
"value": "choices",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1482,
"end": 1491,
"ctxt": 0
},
"params": [
{
"type": "TsIntersectionType",
"span": {
"start": 1483,
"end": 1490,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 1483,
"end": 1485,
"ctxt": 0
},
"members": []
},
{
"type": "TsTypeLiteral",
"span": {
"start": 1488,
"end": 1490,
"ctxt": 0
},
"members": []
}
]
}
]
}
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1494,
"end": 1532,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1498,
"end": 1531,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1498,
"end": 1507,
"ctxt": 0
},
"value": "myChoices",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1507,
"end": 1531,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1509,
"end": 1531,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1509,
"end": 1516,
"ctxt": 0
},
"value": "choices",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1516,
"end": 1531,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1517,
"end": 1530,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1517,
"end": 1530,
"ctxt": 0
},
"value": "IMyChoiceList",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1533,
"end": 1584,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1537,
"end": 1583,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1537,
"end": 1554,
"ctxt": 0
},
"value": "myChoicesAndEmpty",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1554,
"end": 1583,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1556,
"end": 1583,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1556,
"end": 1563,
"ctxt": 0
},
"value": "choices",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1563,
"end": 1583,
"ctxt": 0
},
"params": [
{
"type": "TsIntersectionType",
"span": {
"start": 1564,
"end": 1582,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1564,
"end": 1577,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1564,
"end": 1577,
"ctxt": 0
},
"value": "IMyChoiceList",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeLiteral",
"span": {
"start": 1580,
"end": 1582,
"ctxt": 0
},
"members": []
}
]
}
]
}
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1586,
"end": 1634,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1590,
"end": 1633,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1590,
"end": 1604,
"ctxt": 0
},
"value": "unknownChoices",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1604,
"end": 1633,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1606,
"end": 1633,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1606,
"end": 1613,
"ctxt": 0
},
"value": "choices",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1613,
"end": 1633,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1614,
"end": 1632,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1614,
"end": 1632,
"ctxt": 0
},
"value": "IUnknownChoiceList",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1635,
"end": 1696,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1639,
"end": 1695,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1639,
"end": 1661,
"ctxt": 0
},
"value": "unknownChoicesAndEmpty",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1661,
"end": 1695,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1663,
"end": 1695,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1663,
"end": 1670,
"ctxt": 0
},
"value": "choices",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1670,
"end": 1695,
"ctxt": 0
},
"params": [
{
"type": "TsIntersectionType",
"span": {
"start": 1671,
"end": 1694,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1671,
"end": 1689,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1671,
"end": 1689,
"ctxt": 0
},
"value": "IUnknownChoiceList",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeLiteral",
"span": {
"start": 1692,
"end": 1694,
"ctxt": 0
},
"members": []
}
]
}
]
}
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1720,
"end": 1770,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1725,
"end": 1729,
"ctxt": 0
},
"value": "Foo1",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 1732,
"end": 1769,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 1732,
"end": 1745,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1734,
"end": 1743,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1734,
"end": 1735,
"ctxt": 0
},
"value": "x",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1735,
"end": 1743,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1737,
"end": 1743,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 1748,
"end": 1769,
"ctxt": 0
},
"members": [
{
"type": "TsIndexSignature",
"params": [
{
"type": "Identifier",
"span": {
"start": 1751,
"end": 1760,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1752,
"end": 1760,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1754,
"end": 1760,
"ctxt": 0
},
"kind": "number"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1761,
"end": 1767,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1763,
"end": 1767,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1763,
"end": 1767,
"ctxt": 0
},
"value": "Foo1",
"optional": false
},
"typeParams": null
}
},
"readonly": false,
"static": false,
"span": {
"start": 1750,
"end": 1767,
"ctxt": 0
}
}
]
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1771,
"end": 1823,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1776,
"end": 1780,
"ctxt": 0
},
"value": "Foo2",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 1783,
"end": 1822,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 1783,
"end": 1796,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1785,
"end": 1794,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1785,
"end": 1786,
"ctxt": 0
},
"value": "x",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1786,
"end": 1794,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1788,
"end": 1794,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsMappedType",
"span": {
"start": 1799,
"end": 1822,
"ctxt": 0
},
"readonly": null,
"typeParam": {
"type": "TsTypeParameter",
"span": {
"start": 1802,
"end": 1813,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1802,
"end": 1803,
"ctxt": 0
},
"value": "K",
"optional": false
},
"constraint": {
"type": "TsKeywordType",
"span": {
"start": 1807,
"end": 1813,
"ctxt": 0
},
"kind": "number"
},
"default": null
},
"nameType": null,
"optional": null,
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1816,
"end": 1820,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1816,
"end": 1820,
"ctxt": 0
},
"value": "Foo2",
"optional": false
},
"typeParams": null
}
}
]
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1864,
"end": 1868,
"ctxt": 0
},
"value": "mock",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 1872,
"end": 1885,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1872,
"end": 1885,
"ctxt": 0
},
"value": "_",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1873,
"end": 1885,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1875,
"end": 1885,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1875,
"end": 1882,
"ctxt": 0
},
"value": "Promise",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1882,
"end": 1885,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1883,
"end": 1884,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1883,
"end": 1884,
"ctxt": 0
},
"value": "M",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 1847,
"end": 1895,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1868,
"end": 1871,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1869,
"end": 1870,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1869,
"end": 1870,
"ctxt": 0
},
"value": "M",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 1886,
"end": 1894,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 1888,
"end": 1894,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 1888,
"end": 1890,
"ctxt": 0
},
"members": []
},
{
"type": "TsTypeReference",
"span": {
"start": 1893,
"end": 1894,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1893,
"end": 1894,
"ctxt": 0
},
"value": "M",
"optional": false
},
"typeParams": null
}
]
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1896,
"end": 1916,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 1896,
"end": 1916,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 1896,
"end": 1900,
"ctxt": 0
},
"value": "mock",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "CallExpression",
"span": {
"start": 1901,
"end": 1915,
"ctxt": 0
},
"callee": {
"type": "Import",
"span": {
"start": 1901,
"end": 1907,
"ctxt": 0
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 1908,
"end": 1914,
"ctxt": 0
},
"value": "./ex",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
],
"typeArguments": null
}
}
],
"typeArguments": null
}
},
{
"type": "ExportNamedDeclaration",
"span": {
"start": 1940,
"end": 1949,
"ctxt": 0
},
"specifiers": [],
"source": null,
"typeOnly": false,
"asserts": null
}
],
"interpreter": null
}