swc/crates/swc_ecma_parser/tests/tsc/keyofAndIndexedAccess.json
2022-04-05 12:46:35 +00:00

40458 lines
1.1 MiB

{
"type": "Script",
"span": {
"start": 50,
"end": 17415,
"ctxt": 0
},
"body": [
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 56,
"end": 61,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"declare": false,
"span": {
"start": 50,
"end": 144,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 68,
"end": 81,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 68,
"end": 72,
"ctxt": 0
},
"value": "name",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 72,
"end": 80,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 74,
"end": 80,
"ctxt": 0
},
"kind": "string"
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
},
{
"type": "ClassProperty",
"span": {
"start": 86,
"end": 100,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 86,
"end": 91,
"ctxt": 0
},
"value": "width",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 91,
"end": 99,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 93,
"end": 99,
"ctxt": 0
},
"kind": "number"
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
},
{
"type": "ClassProperty",
"span": {
"start": 105,
"end": 120,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 105,
"end": 111,
"ctxt": 0
},
"value": "height",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 111,
"end": 119,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 113,
"end": 119,
"ctxt": 0
},
"kind": "number"
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
},
{
"type": "ClassProperty",
"span": {
"start": 125,
"end": 142,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 125,
"end": 132,
"ctxt": 0
},
"value": "visible",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 132,
"end": 141,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 134,
"end": 141,
"ctxt": 0
},
"kind": "boolean"
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 152,
"end": 163,
"ctxt": 0
},
"value": "TaggedShape",
"optional": false
},
"declare": false,
"span": {
"start": 146,
"end": 198,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 184,
"end": 196,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 184,
"end": 187,
"ctxt": 0
},
"value": "tag",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 187,
"end": 195,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 189,
"end": 195,
"ctxt": 0
},
"kind": "string"
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
}
],
"superClass": {
"type": "Identifier",
"span": {
"start": 172,
"end": 177,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 206,
"end": 210,
"ctxt": 0
},
"value": "Item",
"optional": false
},
"declare": false,
"span": {
"start": 200,
"end": 251,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 217,
"end": 230,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 217,
"end": 221,
"ctxt": 0
},
"value": "name",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 221,
"end": 229,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 223,
"end": 229,
"ctxt": 0
},
"kind": "string"
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
},
{
"type": "ClassProperty",
"span": {
"start": 235,
"end": 249,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 235,
"end": 240,
"ctxt": 0
},
"value": "price",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 240,
"end": 248,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 242,
"end": 248,
"ctxt": 0
},
"kind": "number"
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 259,
"end": 266,
"ctxt": 0
},
"value": "Options",
"optional": false
},
"declare": false,
"span": {
"start": 253,
"end": 297,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 273,
"end": 295,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 273,
"end": 280,
"ctxt": 0
},
"value": "visible",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 280,
"end": 294,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 282,
"end": 294,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 282,
"end": 287,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 282,
"end": 287,
"ctxt": 0
},
"value": "yes",
"raw": "\"yes\""
}
},
{
"type": "TsLiteralType",
"span": {
"start": 290,
"end": 294,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 290,
"end": 294,
"ctxt": 0
},
"value": "no",
"raw": "\"no\""
}
}
]
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 299,
"end": 339,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 304,
"end": 314,
"ctxt": 0
},
"value": "Dictionary",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 314,
"end": 317,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 315,
"end": 316,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 315,
"end": 316,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 320,
"end": 338,
"ctxt": 0
},
"members": [
{
"type": "TsIndexSignature",
"params": [
{
"type": "Identifier",
"span": {
"start": 323,
"end": 332,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 324,
"end": 332,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 326,
"end": 332,
"ctxt": 0
},
"kind": "string"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 333,
"end": 336,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 335,
"end": 336,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 335,
"end": 336,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"readonly": false,
"static": false,
"span": {
"start": 322,
"end": 336,
"ctxt": 0
}
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 340,
"end": 388,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 345,
"end": 363,
"ctxt": 0
},
"value": "NumericallyIndexed",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 363,
"end": 366,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 364,
"end": 365,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 364,
"end": 365,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 369,
"end": 387,
"ctxt": 0
},
"members": [
{
"type": "TsIndexSignature",
"params": [
{
"type": "Identifier",
"span": {
"start": 372,
"end": 381,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 373,
"end": 381,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 375,
"end": 381,
"ctxt": 0
},
"kind": "number"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 382,
"end": 385,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 384,
"end": 385,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 384,
"end": 385,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"readonly": false,
"static": false,
"span": {
"start": 371,
"end": 385,
"ctxt": 0
}
}
]
}
},
{
"type": "TsEnumDeclaration",
"span": {
"start": 390,
"end": 414,
"ctxt": 0
},
"declare": false,
"isConst": true,
"id": {
"type": "Identifier",
"span": {
"start": 401,
"end": 402,
"ctxt": 0
},
"value": "E",
"optional": false
},
"members": [
{
"type": "TsEnumMember",
"span": {
"start": 405,
"end": 406,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 405,
"end": 406,
"ctxt": 0
},
"value": "A",
"optional": false
},
"init": null
},
{
"type": "TsEnumMember",
"span": {
"start": 408,
"end": 409,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 408,
"end": 409,
"ctxt": 0
},
"value": "B",
"optional": false
},
"init": null
},
{
"type": "TsEnumMember",
"span": {
"start": 411,
"end": 412,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 411,
"end": 412,
"ctxt": 0
},
"value": "C",
"optional": false
},
"init": null
}
]
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 416,
"end": 437,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 421,
"end": 424,
"ctxt": 0
},
"value": "K00",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 427,
"end": 436,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 433,
"end": 436,
"ctxt": 0
},
"kind": "any"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 449,
"end": 473,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 454,
"end": 457,
"ctxt": 0
},
"value": "K01",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 460,
"end": 472,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 466,
"end": 472,
"ctxt": 0
},
"kind": "string"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 506,
"end": 530,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 511,
"end": 514,
"ctxt": 0
},
"value": "K02",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 517,
"end": 529,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 523,
"end": 529,
"ctxt": 0
},
"kind": "number"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 582,
"end": 607,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 587,
"end": 590,
"ctxt": 0
},
"value": "K03",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 593,
"end": 606,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 599,
"end": 606,
"ctxt": 0
},
"kind": "boolean"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 622,
"end": 644,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 627,
"end": 630,
"ctxt": 0
},
"value": "K04",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 633,
"end": 643,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 639,
"end": 643,
"ctxt": 0
},
"kind": "void"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 655,
"end": 682,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 660,
"end": 663,
"ctxt": 0
},
"value": "K05",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 666,
"end": 681,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 672,
"end": 681,
"ctxt": 0
},
"kind": "undefined"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 693,
"end": 715,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 698,
"end": 701,
"ctxt": 0
},
"value": "K06",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 704,
"end": 714,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 710,
"end": 714,
"ctxt": 0
},
"kind": "null"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 726,
"end": 749,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 731,
"end": 734,
"ctxt": 0
},
"value": "K07",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 737,
"end": 748,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 743,
"end": 748,
"ctxt": 0
},
"kind": "never"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 779,
"end": 804,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 784,
"end": 787,
"ctxt": 0
},
"value": "K08",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 790,
"end": 803,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 796,
"end": 803,
"ctxt": 0
},
"kind": "unknown"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 815,
"end": 838,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 820,
"end": 823,
"ctxt": 0
},
"value": "K10",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 826,
"end": 837,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 832,
"end": 837,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 832,
"end": 837,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 883,
"end": 908,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 888,
"end": 891,
"ctxt": 0
},
"value": "K11",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 894,
"end": 907,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 900,
"end": 907,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 900,
"end": 905,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 900,
"end": 905,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 941,
"end": 976,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 946,
"end": 949,
"ctxt": 0
},
"value": "K12",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 952,
"end": 975,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 958,
"end": 975,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 958,
"end": 968,
"ctxt": 0
},
"value": "Dictionary",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 968,
"end": 975,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 969,
"end": 974,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 969,
"end": 974,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 988,
"end": 1008,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 993,
"end": 996,
"ctxt": 0
},
"value": "K13",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 999,
"end": 1007,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1005,
"end": 1007,
"ctxt": 0
},
"members": []
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1019,
"end": 1043,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1024,
"end": 1027,
"ctxt": 0
},
"value": "K14",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 1030,
"end": 1042,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1036,
"end": 1042,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1036,
"end": 1042,
"ctxt": 0
},
"value": "Object",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1081,
"end": 1100,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1086,
"end": 1089,
"ctxt": 0
},
"value": "K15",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 1092,
"end": 1099,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1098,
"end": 1099,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1098,
"end": 1099,
"ctxt": 0
},
"value": "E",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1152,
"end": 1186,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1157,
"end": 1160,
"ctxt": 0
},
"value": "K16",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 1163,
"end": 1185,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTupleType",
"span": {
"start": 1169,
"end": 1185,
"ctxt": 0
},
"elemTypes": [
{
"type": "TsTupleElement",
"span": {
"start": 1170,
"end": 1176,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 1170,
"end": 1176,
"ctxt": 0
},
"kind": "string"
}
},
{
"type": "TsTupleElement",
"span": {
"start": 1178,
"end": 1184,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 1178,
"end": 1184,
"ctxt": 0
},
"kind": "number"
}
}
]
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1231,
"end": 1263,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1236,
"end": 1239,
"ctxt": 0
},
"value": "K17",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 1242,
"end": 1262,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsParenthesizedType",
"span": {
"start": 1248,
"end": 1262,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 1249,
"end": 1261,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1249,
"end": 1254,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1249,
"end": 1254,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 1257,
"end": 1261,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1257,
"end": 1261,
"ctxt": 0
},
"value": "Item",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1275,
"end": 1307,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1280,
"end": 1283,
"ctxt": 0
},
"value": "K18",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 1286,
"end": 1306,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsParenthesizedType",
"span": {
"start": 1292,
"end": 1306,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 1293,
"end": 1305,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1293,
"end": 1298,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1293,
"end": 1298,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 1301,
"end": 1305,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1301,
"end": 1305,
"ctxt": 0
},
"value": "Item",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1362,
"end": 1404,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1367,
"end": 1370,
"ctxt": 0
},
"value": "K19",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 1373,
"end": 1404,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1379,
"end": 1404,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1379,
"end": 1397,
"ctxt": 0
},
"value": "NumericallyIndexed",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1397,
"end": 1404,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1398,
"end": 1403,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1398,
"end": 1403,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1415,
"end": 1439,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1420,
"end": 1425,
"ctxt": 0
},
"value": "KeyOf",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1425,
"end": 1428,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1426,
"end": 1427,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1426,
"end": 1427,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 1431,
"end": 1438,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1437,
"end": 1438,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1437,
"end": 1438,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1441,
"end": 1465,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1446,
"end": 1449,
"ctxt": 0
},
"value": "K20",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1452,
"end": 1464,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1452,
"end": 1457,
"ctxt": 0
},
"value": "KeyOf",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1457,
"end": 1464,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1458,
"end": 1463,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1458,
"end": 1463,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
}
]
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1510,
"end": 1546,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1515,
"end": 1518,
"ctxt": 0
},
"value": "K21",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1521,
"end": 1545,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1521,
"end": 1526,
"ctxt": 0
},
"value": "KeyOf",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1526,
"end": 1545,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1527,
"end": 1544,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1527,
"end": 1537,
"ctxt": 0
},
"value": "Dictionary",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1537,
"end": 1544,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1538,
"end": 1543,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1538,
"end": 1543,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
}
]
}
}
]
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1559,
"end": 1578,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1564,
"end": 1568,
"ctxt": 0
},
"value": "NAME",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1571,
"end": 1577,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 1571,
"end": 1577,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1579,
"end": 1621,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1584,
"end": 1599,
"ctxt": 0
},
"value": "WIDTH_OR_HEIGHT",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 1602,
"end": 1620,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 1602,
"end": 1609,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 1602,
"end": 1609,
"ctxt": 0
},
"value": "width",
"raw": "\"width\""
}
},
{
"type": "TsLiteralType",
"span": {
"start": 1612,
"end": 1620,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 1612,
"end": 1620,
"ctxt": 0
},
"value": "height",
"raw": "\"height\""
}
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1623,
"end": 1648,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1628,
"end": 1631,
"ctxt": 0
},
"value": "Q10",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1634,
"end": 1647,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 1634,
"end": 1639,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1634,
"end": 1639,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 1640,
"end": 1646,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 1640,
"end": 1646,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1660,
"end": 1697,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1665,
"end": 1668,
"ctxt": 0
},
"value": "Q11",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1671,
"end": 1696,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 1671,
"end": 1676,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1671,
"end": 1676,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsUnionType",
"span": {
"start": 1677,
"end": 1695,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 1677,
"end": 1684,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 1677,
"end": 1684,
"ctxt": 0
},
"value": "width",
"raw": "\"width\""
}
},
{
"type": "TsLiteralType",
"span": {
"start": 1687,
"end": 1695,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 1687,
"end": 1695,
"ctxt": 0
},
"value": "height",
"raw": "\"height\""
}
}
]
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1709,
"end": 1746,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1714,
"end": 1717,
"ctxt": 0
},
"value": "Q12",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1720,
"end": 1745,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 1720,
"end": 1725,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1720,
"end": 1725,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsUnionType",
"span": {
"start": 1726,
"end": 1744,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 1726,
"end": 1732,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 1726,
"end": 1732,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
}
},
{
"type": "TsLiteralType",
"span": {
"start": 1735,
"end": 1744,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 1735,
"end": 1744,
"ctxt": 0
},
"value": "visible",
"raw": "\"visible\""
}
}
]
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1769,
"end": 1792,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1774,
"end": 1777,
"ctxt": 0
},
"value": "Q20",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1780,
"end": 1791,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 1780,
"end": 1785,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1780,
"end": 1785,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 1786,
"end": 1790,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1786,
"end": 1790,
"ctxt": 0
},
"value": "NAME",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1804,
"end": 1838,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1809,
"end": 1812,
"ctxt": 0
},
"value": "Q21",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1815,
"end": 1837,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 1815,
"end": 1820,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1815,
"end": 1820,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 1821,
"end": 1836,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1821,
"end": 1836,
"ctxt": 0
},
"value": "WIDTH_OR_HEIGHT",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1851,
"end": 1882,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1856,
"end": 1859,
"ctxt": 0
},
"value": "Q30",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1862,
"end": 1881,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTupleType",
"span": {
"start": 1862,
"end": 1878,
"ctxt": 0
},
"elemTypes": [
{
"type": "TsTupleElement",
"span": {
"start": 1863,
"end": 1869,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 1863,
"end": 1869,
"ctxt": 0
},
"kind": "string"
}
},
{
"type": "TsTupleElement",
"span": {
"start": 1871,
"end": 1877,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 1871,
"end": 1877,
"ctxt": 0
},
"kind": "number"
}
}
]
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 1879,
"end": 1880,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1879,
"end": 1880,
"ctxt": 0
},
"value": 0.0,
"raw": "0"
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1894,
"end": 1925,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1899,
"end": 1902,
"ctxt": 0
},
"value": "Q31",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1905,
"end": 1924,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTupleType",
"span": {
"start": 1905,
"end": 1921,
"ctxt": 0
},
"elemTypes": [
{
"type": "TsTupleElement",
"span": {
"start": 1906,
"end": 1912,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 1906,
"end": 1912,
"ctxt": 0
},
"kind": "string"
}
},
{
"type": "TsTupleElement",
"span": {
"start": 1914,
"end": 1920,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 1914,
"end": 1920,
"ctxt": 0
},
"kind": "number"
}
}
]
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 1922,
"end": 1923,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 1922,
"end": 1923,
"ctxt": 0
},
"value": 1.0,
"raw": "1"
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1937,
"end": 1973,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1942,
"end": 1945,
"ctxt": 0
},
"value": "Q32",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1948,
"end": 1972,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTupleType",
"span": {
"start": 1948,
"end": 1964,
"ctxt": 0
},
"elemTypes": [
{
"type": "TsTupleElement",
"span": {
"start": 1949,
"end": 1955,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 1949,
"end": 1955,
"ctxt": 0
},
"kind": "string"
}
},
{
"type": "TsTupleElement",
"span": {
"start": 1957,
"end": 1963,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 1957,
"end": 1963,
"ctxt": 0
},
"kind": "number"
}
}
]
},
"indexType": {
"type": "TsKeywordType",
"span": {
"start": 1965,
"end": 1971,
"ctxt": 0
},
"kind": "number"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1994,
"end": 2027,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1999,
"end": 2002,
"ctxt": 0
},
"value": "Q33",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 2005,
"end": 2026,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTupleType",
"span": {
"start": 2005,
"end": 2021,
"ctxt": 0
},
"elemTypes": [
{
"type": "TsTupleElement",
"span": {
"start": 2006,
"end": 2012,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 2006,
"end": 2012,
"ctxt": 0
},
"kind": "string"
}
},
{
"type": "TsTupleElement",
"span": {
"start": 2014,
"end": 2020,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 2014,
"end": 2020,
"ctxt": 0
},
"kind": "number"
}
}
]
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 2022,
"end": 2025,
"ctxt": 0
},
"typeName": {
"type": "TsQualifiedName",
"left": {
"type": "Identifier",
"span": {
"start": 2022,
"end": 2023,
"ctxt": 0
},
"value": "E",
"optional": false
},
"right": {
"type": "Identifier",
"span": {
"start": 2024,
"end": 2025,
"ctxt": 0
},
"value": "A",
"optional": false
}
},
"typeParams": null
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 2039,
"end": 2072,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 2044,
"end": 2047,
"ctxt": 0
},
"value": "Q34",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 2050,
"end": 2071,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTupleType",
"span": {
"start": 2050,
"end": 2066,
"ctxt": 0
},
"elemTypes": [
{
"type": "TsTupleElement",
"span": {
"start": 2051,
"end": 2057,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 2051,
"end": 2057,
"ctxt": 0
},
"kind": "string"
}
},
{
"type": "TsTupleElement",
"span": {
"start": 2059,
"end": 2065,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 2059,
"end": 2065,
"ctxt": 0
},
"kind": "number"
}
}
]
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 2067,
"end": 2070,
"ctxt": 0
},
"typeName": {
"type": "TsQualifiedName",
"left": {
"type": "Identifier",
"span": {
"start": 2067,
"end": 2068,
"ctxt": 0
},
"value": "E",
"optional": false
},
"right": {
"type": "Identifier",
"span": {
"start": 2069,
"end": 2070,
"ctxt": 0
},
"value": "B",
"optional": false
}
},
"typeParams": null
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 2084,
"end": 2117,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 2089,
"end": 2092,
"ctxt": 0
},
"value": "Q35",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 2095,
"end": 2116,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTupleType",
"span": {
"start": 2095,
"end": 2111,
"ctxt": 0
},
"elemTypes": [
{
"type": "TsTupleElement",
"span": {
"start": 2096,
"end": 2102,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 2096,
"end": 2102,
"ctxt": 0
},
"kind": "string"
}
},
{
"type": "TsTupleElement",
"span": {
"start": 2104,
"end": 2110,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 2104,
"end": 2110,
"ctxt": 0
},
"kind": "number"
}
}
]
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 2112,
"end": 2115,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2112,
"end": 2115,
"ctxt": 0
},
"value": "0",
"raw": "\"0\""
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 2129,
"end": 2162,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 2134,
"end": 2137,
"ctxt": 0
},
"value": "Q36",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 2140,
"end": 2161,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTupleType",
"span": {
"start": 2140,
"end": 2156,
"ctxt": 0
},
"elemTypes": [
{
"type": "TsTupleElement",
"span": {
"start": 2141,
"end": 2147,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 2141,
"end": 2147,
"ctxt": 0
},
"kind": "string"
}
},
{
"type": "TsTupleElement",
"span": {
"start": 2149,
"end": 2155,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 2149,
"end": 2155,
"ctxt": 0
},
"kind": "number"
}
}
]
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 2157,
"end": 2160,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2157,
"end": 2160,
"ctxt": 0
},
"value": "1",
"raw": "\"1\""
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 2175,
"end": 2215,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 2180,
"end": 2183,
"ctxt": 0
},
"value": "Q40",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 2186,
"end": 2214,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsParenthesizedType",
"span": {
"start": 2186,
"end": 2203,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 2187,
"end": 2202,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 2187,
"end": 2192,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2187,
"end": 2192,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 2195,
"end": 2202,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2195,
"end": 2202,
"ctxt": 0
},
"value": "Options",
"optional": false
},
"typeParams": null
}
]
}
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 2204,
"end": 2213,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2204,
"end": 2213,
"ctxt": 0
},
"value": "visible",
"raw": "\"visible\""
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 2243,
"end": 2283,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 2248,
"end": 2251,
"ctxt": 0
},
"value": "Q41",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 2254,
"end": 2282,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsParenthesizedType",
"span": {
"start": 2254,
"end": 2271,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 2255,
"end": 2270,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 2255,
"end": 2260,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2255,
"end": 2260,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 2263,
"end": 2270,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2263,
"end": 2270,
"ctxt": 0
},
"value": "Options",
"optional": false
},
"typeParams": null
}
]
}
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 2272,
"end": 2281,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2272,
"end": 2281,
"ctxt": 0
},
"value": "visible",
"raw": "\"visible\""
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 2347,
"end": 2385,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 2352,
"end": 2355,
"ctxt": 0
},
"value": "Q50",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 2358,
"end": 2384,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 2358,
"end": 2375,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2358,
"end": 2368,
"ctxt": 0
},
"value": "Dictionary",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2368,
"end": 2375,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 2369,
"end": 2374,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2369,
"end": 2374,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
}
]
}
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 2376,
"end": 2383,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2376,
"end": 2383,
"ctxt": 0
},
"value": "howdy",
"raw": "\"howdy\""
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 2396,
"end": 2430,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 2401,
"end": 2404,
"ctxt": 0
},
"value": "Q51",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 2407,
"end": 2429,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 2407,
"end": 2424,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2407,
"end": 2417,
"ctxt": 0
},
"value": "Dictionary",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2417,
"end": 2424,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 2418,
"end": 2423,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2418,
"end": 2423,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
}
]
}
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 2425,
"end": 2428,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 2425,
"end": 2428,
"ctxt": 0
},
"value": 123.0,
"raw": "123"
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 2441,
"end": 2475,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 2446,
"end": 2449,
"ctxt": 0
},
"value": "Q52",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 2452,
"end": 2474,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 2452,
"end": 2469,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2452,
"end": 2462,
"ctxt": 0
},
"value": "Dictionary",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2462,
"end": 2469,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 2463,
"end": 2468,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2463,
"end": 2468,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
}
]
}
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 2470,
"end": 2473,
"ctxt": 0
},
"typeName": {
"type": "TsQualifiedName",
"left": {
"type": "Identifier",
"span": {
"start": 2470,
"end": 2471,
"ctxt": 0
},
"value": "E",
"optional": false
},
"right": {
"type": "Identifier",
"span": {
"start": 2472,
"end": 2473,
"ctxt": 0
},
"value": "B",
"optional": false
}
},
"typeParams": null
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 2487,
"end": 2513,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2499,
"end": 2512,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2499,
"end": 2503,
"ctxt": 0
},
"value": "cond",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2503,
"end": 2512,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2505,
"end": 2512,
"ctxt": 0
},
"kind": "boolean"
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 2524,
"end": 2535,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 2558,
"end": 2564,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2558,
"end": 2564,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2561,
"end": 2564,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2563,
"end": 2564,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2563,
"end": 2564,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 2566,
"end": 2572,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2566,
"end": 2572,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2569,
"end": 2572,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2571,
"end": 2572,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2571,
"end": 2572,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 2515,
"end": 2598,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 2574,
"end": 2598,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 2580,
"end": 2596,
"ctxt": 0
},
"argument": {
"type": "MemberExpression",
"span": {
"start": 2587,
"end": 2595,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2587,
"end": 2590,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 2590,
"end": 2595,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2591,
"end": 2594,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2535,
"end": 2557,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2536,
"end": 2537,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2536,
"end": 2537,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2539,
"end": 2556,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2539,
"end": 2540,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 2549,
"end": 2556,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2555,
"end": 2556,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2555,
"end": 2556,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 2609,
"end": 2620,
"ctxt": 0
},
"value": "setProperty",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 2643,
"end": 2649,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2643,
"end": 2649,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2646,
"end": 2649,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2648,
"end": 2649,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2648,
"end": 2649,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 2651,
"end": 2657,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2651,
"end": 2657,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2654,
"end": 2657,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2656,
"end": 2657,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2656,
"end": 2657,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 2659,
"end": 2670,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2659,
"end": 2670,
"ctxt": 0
},
"value": "value",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2664,
"end": 2670,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 2666,
"end": 2670,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 2666,
"end": 2667,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2666,
"end": 2667,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 2668,
"end": 2669,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2668,
"end": 2669,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 2600,
"end": 2697,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 2672,
"end": 2697,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 2678,
"end": 2695,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2678,
"end": 2694,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 2678,
"end": 2686,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2678,
"end": 2681,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 2681,
"end": 2686,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2682,
"end": 2685,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
},
"right": {
"type": "Identifier",
"span": {
"start": 2689,
"end": 2694,
"ctxt": 0
},
"value": "value",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2620,
"end": 2642,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2621,
"end": 2622,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2621,
"end": 2622,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2624,
"end": 2641,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2624,
"end": 2625,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 2634,
"end": 2641,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2640,
"end": 2641,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2640,
"end": 2641,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 2708,
"end": 2711,
"ctxt": 0
},
"value": "f10",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 2712,
"end": 2724,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2712,
"end": 2724,
"ctxt": 0
},
"value": "shape",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2717,
"end": 2724,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2719,
"end": 2724,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2719,
"end": 2724,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 2699,
"end": 3139,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 2726,
"end": 3139,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 2732,
"end": 2770,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2736,
"end": 2769,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2736,
"end": 2740,
"ctxt": 0
},
"value": "name",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 2743,
"end": 2769,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 2743,
"end": 2754,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2755,
"end": 2760,
"ctxt": 0
},
"value": "shape",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 2762,
"end": 2768,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2786,
"end": 2852,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2790,
"end": 2851,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2790,
"end": 2803,
"ctxt": 0
},
"value": "widthOrHeight",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 2806,
"end": 2851,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 2806,
"end": 2817,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2818,
"end": 2823,
"ctxt": 0
},
"value": "shape",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "ConditionalExpression",
"span": {
"start": 2825,
"end": 2850,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 2825,
"end": 2829,
"ctxt": 0
},
"value": "cond",
"optional": false
},
"consequent": {
"type": "StringLiteral",
"span": {
"start": 2832,
"end": 2839,
"ctxt": 0
},
"value": "width",
"raw": "\"width\""
},
"alternate": {
"type": "StringLiteral",
"span": {
"start": 2842,
"end": 2850,
"ctxt": 0
},
"value": "height",
"raw": "\"height\""
}
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2868,
"end": 2934,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2872,
"end": 2933,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2872,
"end": 2885,
"ctxt": 0
},
"value": "nameOrVisible",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 2888,
"end": 2933,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 2888,
"end": 2899,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2900,
"end": 2905,
"ctxt": 0
},
"value": "shape",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "ConditionalExpression",
"span": {
"start": 2907,
"end": 2932,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 2907,
"end": 2911,
"ctxt": 0
},
"value": "cond",
"optional": false
},
"consequent": {
"type": "StringLiteral",
"span": {
"start": 2914,
"end": 2920,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
},
"alternate": {
"type": "StringLiteral",
"span": {
"start": 2923,
"end": 2932,
"ctxt": 0
},
"value": "visible",
"raw": "\"visible\""
}
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 2960,
"end": 3000,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 2960,
"end": 2999,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 2960,
"end": 2971,
"ctxt": 0
},
"value": "setProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2972,
"end": 2977,
"ctxt": 0
},
"value": "shape",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 2979,
"end": 2985,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 2987,
"end": 2998,
"ctxt": 0
},
"value": "rectangle",
"raw": "\"rectangle\""
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 3005,
"end": 3055,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 3005,
"end": 3054,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3005,
"end": 3016,
"ctxt": 0
},
"value": "setProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3017,
"end": 3022,
"ctxt": 0
},
"value": "shape",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "ConditionalExpression",
"span": {
"start": 3024,
"end": 3049,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 3024,
"end": 3028,
"ctxt": 0
},
"value": "cond",
"optional": false
},
"consequent": {
"type": "StringLiteral",
"span": {
"start": 3031,
"end": 3038,
"ctxt": 0
},
"value": "width",
"raw": "\"width\""
},
"alternate": {
"type": "StringLiteral",
"span": {
"start": 3041,
"end": 3049,
"ctxt": 0
},
"value": "height",
"raw": "\"height\""
}
}
},
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 3051,
"end": 3053,
"ctxt": 0
},
"value": 10.0,
"raw": "10"
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 3060,
"end": 3112,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 3060,
"end": 3111,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3060,
"end": 3071,
"ctxt": 0
},
"value": "setProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3072,
"end": 3077,
"ctxt": 0
},
"value": "shape",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "ConditionalExpression",
"span": {
"start": 3079,
"end": 3104,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 3079,
"end": 3083,
"ctxt": 0
},
"value": "cond",
"optional": false
},
"consequent": {
"type": "StringLiteral",
"span": {
"start": 3086,
"end": 3092,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
},
"alternate": {
"type": "StringLiteral",
"span": {
"start": 3095,
"end": 3104,
"ctxt": 0
},
"value": "visible",
"raw": "\"visible\""
}
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 3106,
"end": 3110,
"ctxt": 0
},
"value": true
}
}
],
"typeArguments": null
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 3150,
"end": 3153,
"ctxt": 0
},
"value": "f11",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 3154,
"end": 3164,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3154,
"end": 3164,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3155,
"end": 3164,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 3157,
"end": 3164,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 3157,
"end": 3162,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3157,
"end": 3162,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 3141,
"end": 3255,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 3166,
"end": 3255,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 3172,
"end": 3207,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3176,
"end": 3206,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3176,
"end": 3179,
"ctxt": 0
},
"value": "len",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 3182,
"end": 3206,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3182,
"end": 3193,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3194,
"end": 3195,
"ctxt": 0
},
"value": "a",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 3197,
"end": 3205,
"ctxt": 0
},
"value": "length",
"raw": "\"length\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 3223,
"end": 3253,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 3223,
"end": 3252,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3223,
"end": 3234,
"ctxt": 0
},
"value": "setProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3235,
"end": 3236,
"ctxt": 0
},
"value": "a",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 3238,
"end": 3246,
"ctxt": 0
},
"value": "length",
"raw": "\"length\""
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3248,
"end": 3251,
"ctxt": 0
},
"value": "len",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 3266,
"end": 3269,
"ctxt": 0
},
"value": "f12",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 3270,
"end": 3289,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3270,
"end": 3289,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3271,
"end": 3289,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTupleType",
"span": {
"start": 3273,
"end": 3289,
"ctxt": 0
},
"elemTypes": [
{
"type": "TsTupleElement",
"span": {
"start": 3274,
"end": 3279,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsTypeReference",
"span": {
"start": 3274,
"end": 3279,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3274,
"end": 3279,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
}
},
{
"type": "TsTupleElement",
"span": {
"start": 3281,
"end": 3288,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 3281,
"end": 3288,
"ctxt": 0
},
"kind": "boolean"
}
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 3257,
"end": 3424,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 3291,
"end": 3424,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 3297,
"end": 3332,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3301,
"end": 3331,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3301,
"end": 3304,
"ctxt": 0
},
"value": "len",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 3307,
"end": 3331,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3307,
"end": 3318,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3319,
"end": 3320,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 3322,
"end": 3330,
"ctxt": 0
},
"value": "length",
"raw": "\"length\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3337,
"end": 3366,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3341,
"end": 3365,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3341,
"end": 3343,
"ctxt": 0
},
"value": "s2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 3346,
"end": 3365,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3346,
"end": 3357,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3358,
"end": 3359,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 3361,
"end": 3364,
"ctxt": 0
},
"value": "0",
"raw": "\"0\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3381,
"end": 3410,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3385,
"end": 3409,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3385,
"end": 3387,
"ctxt": 0
},
"value": "b2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 3390,
"end": 3409,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3390,
"end": 3401,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3402,
"end": 3403,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 3405,
"end": 3408,
"ctxt": 0
},
"value": "1",
"raw": "\"1\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 3435,
"end": 3438,
"ctxt": 0
},
"value": "f13",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 3439,
"end": 3447,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3439,
"end": 3447,
"ctxt": 0
},
"value": "foo",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3442,
"end": 3447,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 3444,
"end": 3447,
"ctxt": 0
},
"kind": "any"
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 3449,
"end": 3457,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3449,
"end": 3457,
"ctxt": 0
},
"value": "bar",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3452,
"end": 3457,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 3454,
"end": 3457,
"ctxt": 0
},
"kind": "any"
}
}
}
}
],
"decorators": [],
"span": {
"start": 3426,
"end": 3593,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 3459,
"end": 3593,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 3465,
"end": 3495,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3469,
"end": 3494,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3469,
"end": 3470,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 3473,
"end": 3494,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3473,
"end": 3484,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3485,
"end": 3488,
"ctxt": 0
},
"value": "foo",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 3490,
"end": 3493,
"ctxt": 0
},
"value": "x",
"raw": "\"x\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3508,
"end": 3540,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3512,
"end": 3539,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3512,
"end": 3513,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 3516,
"end": 3539,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3516,
"end": 3527,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3528,
"end": 3531,
"ctxt": 0
},
"value": "foo",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 3533,
"end": 3538,
"ctxt": 0
},
"value": "100",
"raw": "\"100\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3553,
"end": 3583,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3557,
"end": 3582,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3557,
"end": 3558,
"ctxt": 0
},
"value": "z",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 3561,
"end": 3582,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3561,
"end": 3572,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3573,
"end": 3576,
"ctxt": 0
},
"value": "foo",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3578,
"end": 3581,
"ctxt": 0
},
"value": "bar",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 3601,
"end": 3610,
"ctxt": 0
},
"value": "Component",
"optional": false
},
"declare": false,
"span": {
"start": 3595,
"end": 3846,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 3627,
"end": 3643,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 3627,
"end": 3632,
"ctxt": 0
},
"value": "props",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3632,
"end": 3642,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3634,
"end": 3642,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3634,
"end": 3642,
"ctxt": 0
},
"value": "PropType",
"optional": false
},
"typeParams": null
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
},
{
"type": "ClassMethod",
"span": {
"start": 3648,
"end": 3733,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 3648,
"end": 3659,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"function": {
"params": [
{
"type": "Parameter",
"span": {
"start": 3686,
"end": 3692,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3686,
"end": 3692,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3689,
"end": 3692,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3691,
"end": 3692,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3691,
"end": 3692,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 3648,
"end": 3733,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 3694,
"end": 3733,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 3704,
"end": 3727,
"ctxt": 0
},
"argument": {
"type": "MemberExpression",
"span": {
"start": 3711,
"end": 3726,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3711,
"end": 3721,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 3711,
"end": 3715,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3716,
"end": 3721,
"ctxt": 0
},
"value": "props",
"optional": false
}
},
"property": {
"type": "Computed",
"span": {
"start": 3721,
"end": 3726,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3722,
"end": 3725,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3659,
"end": 3685,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3660,
"end": 3684,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3660,
"end": 3661,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 3670,
"end": 3684,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3676,
"end": 3684,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3676,
"end": 3684,
"ctxt": 0
},
"value": "PropType",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
"kind": "method",
"isStatic": false,
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false
},
{
"type": "ClassMethod",
"span": {
"start": 3738,
"end": 3844,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 3738,
"end": 3749,
"ctxt": 0
},
"value": "setProperty",
"optional": false
},
"function": {
"params": [
{
"type": "Parameter",
"span": {
"start": 3776,
"end": 3782,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3776,
"end": 3782,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3779,
"end": 3782,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3781,
"end": 3782,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3781,
"end": 3782,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 3784,
"end": 3802,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3784,
"end": 3802,
"ctxt": 0
},
"value": "value",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3789,
"end": 3802,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 3791,
"end": 3802,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 3791,
"end": 3799,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3791,
"end": 3799,
"ctxt": 0
},
"value": "PropType",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 3800,
"end": 3801,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3800,
"end": 3801,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 3738,
"end": 3844,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 3804,
"end": 3844,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 3814,
"end": 3838,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3814,
"end": 3837,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 3814,
"end": 3829,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3814,
"end": 3824,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 3814,
"end": 3818,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3819,
"end": 3824,
"ctxt": 0
},
"value": "props",
"optional": false
}
},
"property": {
"type": "Computed",
"span": {
"start": 3824,
"end": 3829,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3825,
"end": 3828,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
},
"right": {
"type": "Identifier",
"span": {
"start": 3832,
"end": 3837,
"ctxt": 0
},
"value": "value",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3749,
"end": 3775,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3750,
"end": 3774,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3750,
"end": 3751,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 3760,
"end": 3774,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3766,
"end": 3774,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3766,
"end": 3774,
"ctxt": 0
},
"value": "PropType",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
"kind": "method",
"isStatic": false,
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3610,
"end": 3620,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3611,
"end": 3619,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3611,
"end": 3619,
"ctxt": 0
},
"value": "PropType",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"superTypeParams": null,
"implements": []
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 3857,
"end": 3860,
"ctxt": 0
},
"value": "f20",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 3861,
"end": 3888,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3861,
"end": 3888,
"ctxt": 0
},
"value": "component",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3870,
"end": 3888,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3872,
"end": 3888,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3872,
"end": 3881,
"ctxt": 0
},
"value": "Component",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3881,
"end": 3888,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 3882,
"end": 3887,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3882,
"end": 3887,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 3848,
"end": 4320,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 3890,
"end": 4320,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 3896,
"end": 3937,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3900,
"end": 3936,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3900,
"end": 3904,
"ctxt": 0
},
"value": "name",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 3907,
"end": 3936,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 3907,
"end": 3928,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3907,
"end": 3916,
"ctxt": 0
},
"value": "component",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3917,
"end": 3928,
"ctxt": 0
},
"value": "getProperty",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 3929,
"end": 3935,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3953,
"end": 4022,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3957,
"end": 4021,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3957,
"end": 3970,
"ctxt": 0
},
"value": "widthOrHeight",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 3973,
"end": 4021,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 3973,
"end": 3994,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3973,
"end": 3982,
"ctxt": 0
},
"value": "component",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3983,
"end": 3994,
"ctxt": 0
},
"value": "getProperty",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ConditionalExpression",
"span": {
"start": 3995,
"end": 4020,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 3995,
"end": 3999,
"ctxt": 0
},
"value": "cond",
"optional": false
},
"consequent": {
"type": "StringLiteral",
"span": {
"start": 4002,
"end": 4009,
"ctxt": 0
},
"value": "width",
"raw": "\"width\""
},
"alternate": {
"type": "StringLiteral",
"span": {
"start": 4012,
"end": 4020,
"ctxt": 0
},
"value": "height",
"raw": "\"height\""
}
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 4038,
"end": 4107,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4042,
"end": 4106,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4042,
"end": 4055,
"ctxt": 0
},
"value": "nameOrVisible",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 4058,
"end": 4106,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 4058,
"end": 4079,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4058,
"end": 4067,
"ctxt": 0
},
"value": "component",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4068,
"end": 4079,
"ctxt": 0
},
"value": "getProperty",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ConditionalExpression",
"span": {
"start": 4080,
"end": 4105,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 4080,
"end": 4084,
"ctxt": 0
},
"value": "cond",
"optional": false
},
"consequent": {
"type": "StringLiteral",
"span": {
"start": 4087,
"end": 4093,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
},
"alternate": {
"type": "StringLiteral",
"span": {
"start": 4096,
"end": 4105,
"ctxt": 0
},
"value": "visible",
"raw": "\"visible\""
}
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 4133,
"end": 4176,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 4133,
"end": 4175,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 4133,
"end": 4154,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4133,
"end": 4142,
"ctxt": 0
},
"value": "component",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4143,
"end": 4154,
"ctxt": 0
},
"value": "setProperty",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 4155,
"end": 4161,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 4163,
"end": 4174,
"ctxt": 0
},
"value": "rectangle",
"raw": "\"rectangle\""
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 4181,
"end": 4233,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 4181,
"end": 4233,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 4181,
"end": 4202,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4181,
"end": 4190,
"ctxt": 0
},
"value": "component",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4191,
"end": 4202,
"ctxt": 0
},
"value": "setProperty",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ConditionalExpression",
"span": {
"start": 4203,
"end": 4228,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 4203,
"end": 4207,
"ctxt": 0
},
"value": "cond",
"optional": false
},
"consequent": {
"type": "StringLiteral",
"span": {
"start": 4210,
"end": 4217,
"ctxt": 0
},
"value": "width",
"raw": "\"width\""
},
"alternate": {
"type": "StringLiteral",
"span": {
"start": 4220,
"end": 4228,
"ctxt": 0
},
"value": "height",
"raw": "\"height\""
}
}
},
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 4230,
"end": 4232,
"ctxt": 0
},
"value": 10.0,
"raw": "10"
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 4238,
"end": 4293,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 4238,
"end": 4292,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 4238,
"end": 4259,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4238,
"end": 4247,
"ctxt": 0
},
"value": "component",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4248,
"end": 4259,
"ctxt": 0
},
"value": "setProperty",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ConditionalExpression",
"span": {
"start": 4260,
"end": 4285,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 4260,
"end": 4264,
"ctxt": 0
},
"value": "cond",
"optional": false
},
"consequent": {
"type": "StringLiteral",
"span": {
"start": 4267,
"end": 4273,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
},
"alternate": {
"type": "StringLiteral",
"span": {
"start": 4276,
"end": 4285,
"ctxt": 0
},
"value": "visible",
"raw": "\"visible\""
}
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 4287,
"end": 4291,
"ctxt": 0
},
"value": true
}
}
],
"typeArguments": null
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4331,
"end": 4336,
"ctxt": 0
},
"value": "pluck",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 4359,
"end": 4369,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4359,
"end": 4369,
"ctxt": 0
},
"value": "array",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4364,
"end": 4369,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 4366,
"end": 4369,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 4366,
"end": 4367,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4366,
"end": 4367,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 4371,
"end": 4377,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4371,
"end": 4377,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4374,
"end": 4377,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4376,
"end": 4377,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4376,
"end": 4377,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 4322,
"end": 4417,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 4379,
"end": 4417,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 4385,
"end": 4415,
"ctxt": 0
},
"argument": {
"type": "CallExpression",
"span": {
"start": 4392,
"end": 4414,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 4392,
"end": 4401,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4392,
"end": 4397,
"ctxt": 0
},
"value": "array",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4398,
"end": 4401,
"ctxt": 0
},
"value": "map",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 4402,
"end": 4413,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4402,
"end": 4403,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": null
}
],
"body": {
"type": "MemberExpression",
"span": {
"start": 4407,
"end": 4413,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4407,
"end": 4408,
"ctxt": 0
},
"value": "x",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 4408,
"end": 4413,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4409,
"end": 4412,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
],
"typeArguments": null
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4336,
"end": 4358,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4337,
"end": 4338,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4337,
"end": 4338,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 4340,
"end": 4357,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4340,
"end": 4341,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 4350,
"end": 4357,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4356,
"end": 4357,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4356,
"end": 4357,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4428,
"end": 4431,
"ctxt": 0
},
"value": "f30",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 4432,
"end": 4447,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4432,
"end": 4447,
"ctxt": 0
},
"value": "shapes",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4438,
"end": 4447,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 4440,
"end": 4447,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 4440,
"end": 4445,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4440,
"end": 4445,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 4419,
"end": 4652,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 4449,
"end": 4652,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 4455,
"end": 4489,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4459,
"end": 4488,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4459,
"end": 4464,
"ctxt": 0
},
"value": "names",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 4467,
"end": 4488,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 4467,
"end": 4472,
"ctxt": 0
},
"value": "pluck",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4473,
"end": 4479,
"ctxt": 0
},
"value": "shapes",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 4481,
"end": 4487,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 4509,
"end": 4545,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4513,
"end": 4544,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4513,
"end": 4519,
"ctxt": 0
},
"value": "widths",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 4522,
"end": 4544,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 4522,
"end": 4527,
"ctxt": 0
},
"value": "pluck",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4528,
"end": 4534,
"ctxt": 0
},
"value": "shapes",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 4536,
"end": 4543,
"ctxt": 0
},
"value": "width",
"raw": "\"width\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 4563,
"end": 4625,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4567,
"end": 4624,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4567,
"end": 4581,
"ctxt": 0
},
"value": "nameOrVisibles",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 4584,
"end": 4624,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 4584,
"end": 4589,
"ctxt": 0
},
"value": "pluck",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4590,
"end": 4596,
"ctxt": 0
},
"value": "shapes",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "ConditionalExpression",
"span": {
"start": 4598,
"end": 4623,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 4598,
"end": 4602,
"ctxt": 0
},
"value": "cond",
"optional": false
},
"consequent": {
"type": "StringLiteral",
"span": {
"start": 4605,
"end": 4611,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
},
"alternate": {
"type": "StringLiteral",
"span": {
"start": 4614,
"end": 4623,
"ctxt": 0
},
"value": "visible",
"raw": "\"visible\""
}
}
}
],
"typeArguments": null
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4663,
"end": 4666,
"ctxt": 0
},
"value": "f31",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 4690,
"end": 4696,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4690,
"end": 4696,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4693,
"end": 4696,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4695,
"end": 4696,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4695,
"end": 4696,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 4654,
"end": 4816,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 4698,
"end": 4816,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 4704,
"end": 4778,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4710,
"end": 4777,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4710,
"end": 4715,
"ctxt": 0
},
"value": "shape",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4715,
"end": 4722,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4717,
"end": 4722,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4717,
"end": 4722,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "ObjectExpression",
"span": {
"start": 4725,
"end": 4777,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 4727,
"end": 4731,
"ctxt": 0
},
"value": "name",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 4733,
"end": 4738,
"ctxt": 0
},
"value": "foo",
"raw": "\"foo\""
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 4740,
"end": 4745,
"ctxt": 0
},
"value": "width",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 4747,
"end": 4748,
"ctxt": 0
},
"value": 5.0,
"raw": "5"
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 4750,
"end": 4756,
"ctxt": 0
},
"value": "height",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 4758,
"end": 4760,
"ctxt": 0
},
"value": 10.0,
"raw": "10"
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 4762,
"end": 4769,
"ctxt": 0
},
"value": "visible",
"optional": false
},
"value": {
"type": "BooleanLiteral",
"span": {
"start": 4771,
"end": 4775,
"ctxt": 0
},
"value": true
}
}
]
},
"definite": false
}
]
},
{
"type": "ReturnStatement",
"span": {
"start": 4783,
"end": 4801,
"ctxt": 0
},
"argument": {
"type": "MemberExpression",
"span": {
"start": 4790,
"end": 4800,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4790,
"end": 4795,
"ctxt": 0
},
"value": "shape",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 4795,
"end": 4800,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4796,
"end": 4799,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4666,
"end": 4689,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4667,
"end": 4688,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4667,
"end": 4668,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 4677,
"end": 4688,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4683,
"end": 4688,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4683,
"end": 4688,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4827,
"end": 4830,
"ctxt": 0
},
"value": "f32",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 4861,
"end": 4867,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4861,
"end": 4867,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4864,
"end": 4867,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4866,
"end": 4867,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4866,
"end": 4867,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 4818,
"end": 4987,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 4869,
"end": 4987,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 4875,
"end": 4949,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4881,
"end": 4948,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4881,
"end": 4886,
"ctxt": 0
},
"value": "shape",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4886,
"end": 4893,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4888,
"end": 4893,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4888,
"end": 4893,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "ObjectExpression",
"span": {
"start": 4896,
"end": 4948,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 4898,
"end": 4902,
"ctxt": 0
},
"value": "name",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 4904,
"end": 4909,
"ctxt": 0
},
"value": "foo",
"raw": "\"foo\""
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 4911,
"end": 4916,
"ctxt": 0
},
"value": "width",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 4918,
"end": 4919,
"ctxt": 0
},
"value": 5.0,
"raw": "5"
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 4921,
"end": 4927,
"ctxt": 0
},
"value": "height",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 4929,
"end": 4931,
"ctxt": 0
},
"value": 10.0,
"raw": "10"
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 4933,
"end": 4940,
"ctxt": 0
},
"value": "visible",
"optional": false
},
"value": {
"type": "BooleanLiteral",
"span": {
"start": 4942,
"end": 4946,
"ctxt": 0
},
"value": true
}
}
]
},
"definite": false
}
]
},
{
"type": "ReturnStatement",
"span": {
"start": 4954,
"end": 4972,
"ctxt": 0
},
"argument": {
"type": "MemberExpression",
"span": {
"start": 4961,
"end": 4971,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4961,
"end": 4966,
"ctxt": 0
},
"value": "shape",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 4966,
"end": 4971,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4967,
"end": 4970,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4830,
"end": 4860,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4831,
"end": 4859,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4831,
"end": 4832,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsUnionType",
"span": {
"start": 4841,
"end": 4859,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 4841,
"end": 4848,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4841,
"end": 4848,
"ctxt": 0
},
"value": "width",
"raw": "\"width\""
}
},
{
"type": "TsLiteralType",
"span": {
"start": 4851,
"end": 4859,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4851,
"end": 4859,
"ctxt": 0
},
"value": "height",
"raw": "\"height\""
}
}
]
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4998,
"end": 5001,
"ctxt": 0
},
"value": "f33",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 5038,
"end": 5046,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 5038,
"end": 5046,
"ctxt": 0
},
"value": "shape",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5043,
"end": 5046,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5045,
"end": 5046,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5045,
"end": 5046,
"ctxt": 0
},
"value": "S",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 5048,
"end": 5054,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 5048,
"end": 5054,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5051,
"end": 5054,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5053,
"end": 5054,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5053,
"end": 5054,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 4989,
"end": 5159,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 5056,
"end": 5159,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 5062,
"end": 5100,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5066,
"end": 5099,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5066,
"end": 5070,
"ctxt": 0
},
"value": "name",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 5073,
"end": 5099,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5073,
"end": 5084,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 5085,
"end": 5090,
"ctxt": 0
},
"value": "shape",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 5092,
"end": 5098,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 5105,
"end": 5140,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5109,
"end": 5139,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5109,
"end": 5113,
"ctxt": 0
},
"value": "prop",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 5116,
"end": 5139,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5116,
"end": 5127,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 5128,
"end": 5133,
"ctxt": 0
},
"value": "shape",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 5135,
"end": 5138,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ReturnStatement",
"span": {
"start": 5145,
"end": 5157,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 5152,
"end": 5156,
"ctxt": 0
},
"value": "prop",
"optional": false
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5001,
"end": 5037,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5002,
"end": 5017,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5002,
"end": 5003,
"ctxt": 0
},
"value": "S",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 5012,
"end": 5017,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5012,
"end": 5017,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 5019,
"end": 5036,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5019,
"end": 5020,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 5029,
"end": 5036,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5035,
"end": 5036,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5035,
"end": 5036,
"ctxt": 0
},
"value": "S",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 5170,
"end": 5173,
"ctxt": 0
},
"value": "f34",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 5174,
"end": 5189,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 5174,
"end": 5189,
"ctxt": 0
},
"value": "ts",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5176,
"end": 5189,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5178,
"end": 5189,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5178,
"end": 5189,
"ctxt": 0
},
"value": "TaggedShape",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 5161,
"end": 5264,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 5191,
"end": 5264,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 5197,
"end": 5223,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5201,
"end": 5222,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5201,
"end": 5205,
"ctxt": 0
},
"value": "tag1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 5208,
"end": 5222,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5208,
"end": 5211,
"ctxt": 0
},
"value": "f33",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 5212,
"end": 5214,
"ctxt": 0
},
"value": "ts",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 5216,
"end": 5221,
"ctxt": 0
},
"value": "tag",
"raw": "\"tag\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 5228,
"end": 5262,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5232,
"end": 5261,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5232,
"end": 5236,
"ctxt": 0
},
"value": "tag2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 5239,
"end": 5261,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5239,
"end": 5250,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 5251,
"end": 5253,
"ctxt": 0
},
"value": "ts",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 5255,
"end": 5260,
"ctxt": 0
},
"value": "tag",
"raw": "\"tag\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 5272,
"end": 5273,
"ctxt": 0
},
"value": "C",
"optional": false
},
"declare": false,
"span": {
"start": 5266,
"end": 5347,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 5280,
"end": 5297,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 5287,
"end": 5288,
"ctxt": 0
},
"value": "x",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5288,
"end": 5296,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 5290,
"end": 5296,
"ctxt": 0
},
"kind": "string"
}
},
"isStatic": false,
"decorators": [],
"accessibility": "public",
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
},
{
"type": "ClassProperty",
"span": {
"start": 5302,
"end": 5322,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 5312,
"end": 5313,
"ctxt": 0
},
"value": "y",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5313,
"end": 5321,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 5315,
"end": 5321,
"ctxt": 0
},
"kind": "string"
}
},
"isStatic": false,
"decorators": [],
"accessibility": "protected",
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
},
{
"type": "ClassProperty",
"span": {
"start": 5327,
"end": 5345,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 5335,
"end": 5336,
"ctxt": 0
},
"value": "z",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5336,
"end": 5344,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 5338,
"end": 5344,
"ctxt": 0
},
"kind": "string"
}
},
"isStatic": false,
"decorators": [],
"accessibility": "private",
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 5522,
"end": 5525,
"ctxt": 0
},
"value": "f40",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 5526,
"end": 5530,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 5526,
"end": 5530,
"ctxt": 0
},
"value": "c",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5527,
"end": 5530,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5529,
"end": 5530,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5529,
"end": 5530,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 5513,
"end": 5667,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 5532,
"end": 5667,
"ctxt": 0
},
"stmts": [
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 5538,
"end": 5554,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 5543,
"end": 5544,
"ctxt": 0
},
"value": "X",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 5547,
"end": 5553,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 5547,
"end": 5548,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5547,
"end": 5548,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 5549,
"end": 5552,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 5549,
"end": 5552,
"ctxt": 0
},
"value": "x",
"raw": "\"x\""
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 5559,
"end": 5575,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 5564,
"end": 5565,
"ctxt": 0
},
"value": "Y",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 5568,
"end": 5574,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 5568,
"end": 5569,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5568,
"end": 5569,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 5570,
"end": 5573,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 5570,
"end": 5573,
"ctxt": 0
},
"value": "y",
"raw": "\"y\""
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 5580,
"end": 5596,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 5585,
"end": 5586,
"ctxt": 0
},
"value": "Z",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 5589,
"end": 5595,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 5589,
"end": 5590,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5589,
"end": 5590,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 5591,
"end": 5594,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 5591,
"end": 5594,
"ctxt": 0
},
"value": "z",
"raw": "\"z\""
}
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 5601,
"end": 5619,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5605,
"end": 5618,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5605,
"end": 5606,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5606,
"end": 5609,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5608,
"end": 5609,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5608,
"end": 5609,
"ctxt": 0
},
"value": "X",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 5612,
"end": 5618,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5612,
"end": 5613,
"ctxt": 0
},
"value": "c",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 5613,
"end": 5618,
"ctxt": 0
},
"expression": {
"type": "StringLiteral",
"span": {
"start": 5614,
"end": 5617,
"ctxt": 0
},
"value": "x",
"raw": "\"x\""
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 5624,
"end": 5642,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5628,
"end": 5641,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5628,
"end": 5629,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5629,
"end": 5632,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5631,
"end": 5632,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5631,
"end": 5632,
"ctxt": 0
},
"value": "Y",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 5635,
"end": 5641,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5635,
"end": 5636,
"ctxt": 0
},
"value": "c",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 5636,
"end": 5641,
"ctxt": 0
},
"expression": {
"type": "StringLiteral",
"span": {
"start": 5637,
"end": 5640,
"ctxt": 0
},
"value": "y",
"raw": "\"y\""
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 5647,
"end": 5665,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5651,
"end": 5664,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5651,
"end": 5652,
"ctxt": 0
},
"value": "z",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5652,
"end": 5655,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5654,
"end": 5655,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5654,
"end": 5655,
"ctxt": 0
},
"value": "Z",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 5658,
"end": 5664,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5658,
"end": 5659,
"ctxt": 0
},
"value": "c",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 5659,
"end": 5664,
"ctxt": 0
},
"expression": {
"type": "StringLiteral",
"span": {
"start": 5660,
"end": 5663,
"ctxt": 0
},
"value": "z",
"raw": "\"z\""
}
}
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 5678,
"end": 5681,
"ctxt": 0
},
"value": "f50",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 5685,
"end": 5695,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 5685,
"end": 5695,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5686,
"end": 5695,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 5688,
"end": 5695,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5694,
"end": 5695,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5694,
"end": 5695,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 5697,
"end": 5706,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 5697,
"end": 5706,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5698,
"end": 5706,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 5700,
"end": 5706,
"ctxt": 0
},
"kind": "string"
}
}
}
}
],
"decorators": [],
"span": {
"start": 5669,
"end": 5768,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 5708,
"end": 5768,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 5714,
"end": 5738,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5720,
"end": 5737,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5720,
"end": 5722,
"ctxt": 0
},
"value": "x1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsAsExpression",
"span": {
"start": 5725,
"end": 5737,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5725,
"end": 5726,
"ctxt": 0
},
"value": "s",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 5730,
"end": 5737,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5736,
"end": 5737,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5736,
"end": 5737,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 5743,
"end": 5766,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5749,
"end": 5765,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5749,
"end": 5751,
"ctxt": 0
},
"value": "x2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsAsExpression",
"span": {
"start": 5754,
"end": 5765,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5754,
"end": 5755,
"ctxt": 0
},
"value": "k",
"optional": false
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 5759,
"end": 5765,
"ctxt": 0
},
"kind": "string"
}
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5681,
"end": 5684,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5682,
"end": 5683,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5682,
"end": 5683,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 5779,
"end": 5782,
"ctxt": 0
},
"value": "f51",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 5805,
"end": 5809,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 5805,
"end": 5809,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5806,
"end": 5809,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5808,
"end": 5809,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5808,
"end": 5809,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 5811,
"end": 5820,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 5811,
"end": 5820,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5812,
"end": 5820,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 5814,
"end": 5820,
"ctxt": 0
},
"kind": "string"
}
}
}
}
],
"decorators": [],
"span": {
"start": 5770,
"end": 5882,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 5822,
"end": 5882,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 5828,
"end": 5852,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5834,
"end": 5851,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5834,
"end": 5836,
"ctxt": 0
},
"value": "x1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsAsExpression",
"span": {
"start": 5839,
"end": 5851,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5839,
"end": 5840,
"ctxt": 0
},
"value": "s",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 5844,
"end": 5851,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5850,
"end": 5851,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5850,
"end": 5851,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 5857,
"end": 5880,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5863,
"end": 5879,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5863,
"end": 5865,
"ctxt": 0
},
"value": "x2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsAsExpression",
"span": {
"start": 5868,
"end": 5879,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5868,
"end": 5869,
"ctxt": 0
},
"value": "k",
"optional": false
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 5873,
"end": 5879,
"ctxt": 0
},
"kind": "string"
}
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5782,
"end": 5804,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5783,
"end": 5784,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5783,
"end": 5784,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 5786,
"end": 5803,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5786,
"end": 5787,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 5796,
"end": 5803,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5802,
"end": 5803,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5802,
"end": 5803,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 5893,
"end": 5896,
"ctxt": 0
},
"value": "f52",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 5900,
"end": 5929,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 5900,
"end": 5929,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5903,
"end": 5929,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 5905,
"end": 5929,
"ctxt": 0
},
"members": [
{
"type": "TsIndexSignature",
"params": [
{
"type": "Identifier",
"span": {
"start": 5908,
"end": 5917,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5909,
"end": 5917,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 5911,
"end": 5917,
"ctxt": 0
},
"kind": "string"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5918,
"end": 5927,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 5920,
"end": 5927,
"ctxt": 0
},
"kind": "boolean"
}
},
"readonly": false,
"static": false,
"span": {
"start": 5907,
"end": 5927,
"ctxt": 0
}
}
]
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 5931,
"end": 5958,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 5931,
"end": 5958,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5932,
"end": 5958,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5934,
"end": 5958,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5934,
"end": 5941,
"ctxt": 0
},
"value": "Exclude",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 5941,
"end": 5958,
"ctxt": 0
},
"params": [
{
"type": "TsTypeOperator",
"span": {
"start": 5942,
"end": 5949,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5948,
"end": 5949,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5948,
"end": 5949,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
{
"type": "TsKeywordType",
"span": {
"start": 5951,
"end": 5957,
"ctxt": 0
},
"kind": "symbol"
}
]
}
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 5960,
"end": 5969,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 5960,
"end": 5969,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5961,
"end": 5969,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 5963,
"end": 5969,
"ctxt": 0
},
"kind": "string"
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 5971,
"end": 5980,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 5971,
"end": 5980,
"ctxt": 0
},
"value": "n",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5972,
"end": 5980,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 5974,
"end": 5980,
"ctxt": 0
},
"kind": "number"
}
}
}
}
],
"decorators": [],
"span": {
"start": 5884,
"end": 6054,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 5982,
"end": 6054,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 5988,
"end": 6006,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5994,
"end": 6005,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5994,
"end": 5996,
"ctxt": 0
},
"value": "x1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 5999,
"end": 6005,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5999,
"end": 6002,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 6002,
"end": 6005,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6003,
"end": 6004,
"ctxt": 0
},
"value": "s",
"optional": false
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 6011,
"end": 6029,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6017,
"end": 6028,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6017,
"end": 6019,
"ctxt": 0
},
"value": "x2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 6022,
"end": 6028,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6022,
"end": 6025,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 6025,
"end": 6028,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6026,
"end": 6027,
"ctxt": 0
},
"value": "n",
"optional": false
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 6034,
"end": 6052,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6040,
"end": 6051,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6040,
"end": 6042,
"ctxt": 0
},
"value": "x3",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 6045,
"end": 6051,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6045,
"end": 6048,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 6048,
"end": 6051,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6049,
"end": 6050,
"ctxt": 0
},
"value": "k",
"optional": false
}
}
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5896,
"end": 5899,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5897,
"end": 5898,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5897,
"end": 5898,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 6065,
"end": 6068,
"ctxt": 0
},
"value": "f53",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 6108,
"end": 6137,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 6108,
"end": 6137,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6111,
"end": 6137,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 6113,
"end": 6137,
"ctxt": 0
},
"members": [
{
"type": "TsIndexSignature",
"params": [
{
"type": "Identifier",
"span": {
"start": 6116,
"end": 6125,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6117,
"end": 6125,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6119,
"end": 6125,
"ctxt": 0
},
"kind": "string"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6126,
"end": 6135,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6128,
"end": 6135,
"ctxt": 0
},
"kind": "boolean"
}
},
"readonly": false,
"static": false,
"span": {
"start": 6115,
"end": 6135,
"ctxt": 0
}
}
]
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 6139,
"end": 6143,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 6139,
"end": 6143,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6140,
"end": 6143,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6142,
"end": 6143,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6142,
"end": 6143,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 6145,
"end": 6154,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 6145,
"end": 6154,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6146,
"end": 6154,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6148,
"end": 6154,
"ctxt": 0
},
"kind": "string"
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 6156,
"end": 6165,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 6156,
"end": 6165,
"ctxt": 0
},
"value": "n",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6157,
"end": 6165,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6159,
"end": 6165,
"ctxt": 0
},
"kind": "number"
}
}
}
}
],
"decorators": [],
"span": {
"start": 6056,
"end": 6239,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 6167,
"end": 6239,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 6173,
"end": 6191,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6179,
"end": 6190,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6179,
"end": 6181,
"ctxt": 0
},
"value": "x1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 6184,
"end": 6190,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6184,
"end": 6187,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 6187,
"end": 6190,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6188,
"end": 6189,
"ctxt": 0
},
"value": "s",
"optional": false
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 6196,
"end": 6214,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6202,
"end": 6213,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6202,
"end": 6204,
"ctxt": 0
},
"value": "x2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 6207,
"end": 6213,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6207,
"end": 6210,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 6210,
"end": 6213,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6211,
"end": 6212,
"ctxt": 0
},
"value": "n",
"optional": false
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 6219,
"end": 6237,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6225,
"end": 6236,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6225,
"end": 6227,
"ctxt": 0
},
"value": "x3",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 6230,
"end": 6236,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6230,
"end": 6233,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 6233,
"end": 6236,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6234,
"end": 6235,
"ctxt": 0
},
"value": "k",
"optional": false
}
}
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 6068,
"end": 6107,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 6069,
"end": 6070,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 6069,
"end": 6070,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 6072,
"end": 6106,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 6072,
"end": 6073,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 6082,
"end": 6106,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6082,
"end": 6089,
"ctxt": 0
},
"value": "Exclude",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 6089,
"end": 6106,
"ctxt": 0
},
"params": [
{
"type": "TsTypeOperator",
"span": {
"start": 6090,
"end": 6097,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6096,
"end": 6097,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6096,
"end": 6097,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
{
"type": "TsKeywordType",
"span": {
"start": 6099,
"end": 6105,
"ctxt": 0
},
"kind": "symbol"
}
]
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 6250,
"end": 6253,
"ctxt": 0
},
"value": "f54",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 6257,
"end": 6263,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 6257,
"end": 6263,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6260,
"end": 6263,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6262,
"end": 6263,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6262,
"end": 6263,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 6265,
"end": 6277,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 6265,
"end": 6277,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6268,
"end": 6277,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 6270,
"end": 6277,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6276,
"end": 6277,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6276,
"end": 6277,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 6241,
"end": 6351,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 6279,
"end": 6351,
"ctxt": 0
},
"stmts": [
{
"type": "ForInStatement",
"span": {
"start": 6285,
"end": 6316,
"ctxt": 0
},
"left": {
"type": "VariableDeclaration",
"span": {
"start": 6290,
"end": 6295,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6294,
"end": 6295,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6294,
"end": 6295,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": null
},
"init": null,
"definite": false
}
]
},
"right": {
"type": "MemberExpression",
"span": {
"start": 6299,
"end": 6307,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6299,
"end": 6302,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 6302,
"end": 6307,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6303,
"end": 6306,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
},
"body": {
"type": "BlockStatement",
"span": {
"start": 6309,
"end": 6316,
"ctxt": 0
},
"stmts": []
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 6321,
"end": 6349,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6327,
"end": 6348,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6327,
"end": 6328,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 6331,
"end": 6348,
"ctxt": 0
},
"operator": "in",
"left": {
"type": "StringLiteral",
"span": {
"start": 6331,
"end": 6336,
"ctxt": 0
},
"value": "foo",
"raw": "\"foo\""
},
"right": {
"type": "MemberExpression",
"span": {
"start": 6340,
"end": 6348,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6340,
"end": 6343,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 6343,
"end": 6348,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6344,
"end": 6347,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
}
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 6253,
"end": 6256,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 6254,
"end": 6255,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 6254,
"end": 6255,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 6362,
"end": 6365,
"ctxt": 0
},
"value": "f55",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 6388,
"end": 6394,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 6388,
"end": 6394,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6391,
"end": 6394,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6393,
"end": 6394,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6393,
"end": 6394,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 6396,
"end": 6402,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 6396,
"end": 6402,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6399,
"end": 6402,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6401,
"end": 6402,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6401,
"end": 6402,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 6353,
"end": 6476,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 6404,
"end": 6476,
"ctxt": 0
},
"stmts": [
{
"type": "ForInStatement",
"span": {
"start": 6410,
"end": 6441,
"ctxt": 0
},
"left": {
"type": "VariableDeclaration",
"span": {
"start": 6415,
"end": 6420,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6419,
"end": 6420,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6419,
"end": 6420,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": null
},
"init": null,
"definite": false
}
]
},
"right": {
"type": "MemberExpression",
"span": {
"start": 6424,
"end": 6432,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6424,
"end": 6427,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 6427,
"end": 6432,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6428,
"end": 6431,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
},
"body": {
"type": "BlockStatement",
"span": {
"start": 6434,
"end": 6441,
"ctxt": 0
},
"stmts": []
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 6446,
"end": 6474,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6452,
"end": 6473,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6452,
"end": 6453,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 6456,
"end": 6473,
"ctxt": 0
},
"operator": "in",
"left": {
"type": "StringLiteral",
"span": {
"start": 6456,
"end": 6461,
"ctxt": 0
},
"value": "foo",
"raw": "\"foo\""
},
"right": {
"type": "MemberExpression",
"span": {
"start": 6465,
"end": 6473,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6465,
"end": 6468,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 6468,
"end": 6473,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6469,
"end": 6472,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
}
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 6365,
"end": 6387,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 6366,
"end": 6367,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 6366,
"end": 6367,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 6369,
"end": 6386,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 6369,
"end": 6370,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 6379,
"end": 6386,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6385,
"end": 6386,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6385,
"end": 6386,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 6487,
"end": 6490,
"ctxt": 0
},
"value": "f60",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 6494,
"end": 6503,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 6494,
"end": 6503,
"ctxt": 0
},
"value": "source",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6500,
"end": 6503,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6502,
"end": 6503,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6502,
"end": 6503,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 6505,
"end": 6514,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 6505,
"end": 6514,
"ctxt": 0
},
"value": "target",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6511,
"end": 6514,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6513,
"end": 6514,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6513,
"end": 6514,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 6478,
"end": 6584,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 6516,
"end": 6584,
"ctxt": 0
},
"stmts": [
{
"type": "ForInStatement",
"span": {
"start": 6522,
"end": 6582,
"ctxt": 0
},
"left": {
"type": "VariableDeclaration",
"span": {
"start": 6527,
"end": 6532,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6531,
"end": 6532,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6531,
"end": 6532,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": null
},
"init": null,
"definite": false
}
]
},
"right": {
"type": "Identifier",
"span": {
"start": 6536,
"end": 6542,
"ctxt": 0
},
"value": "source",
"optional": false
},
"body": {
"type": "BlockStatement",
"span": {
"start": 6544,
"end": 6582,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 6554,
"end": 6576,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 6554,
"end": 6575,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 6554,
"end": 6563,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6554,
"end": 6560,
"ctxt": 0
},
"value": "target",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 6560,
"end": 6563,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6561,
"end": 6562,
"ctxt": 0
},
"value": "k",
"optional": false
}
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 6566,
"end": 6575,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6566,
"end": 6572,
"ctxt": 0
},
"value": "source",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 6572,
"end": 6575,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6573,
"end": 6574,
"ctxt": 0
},
"value": "k",
"optional": false
}
}
}
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 6490,
"end": 6493,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 6491,
"end": 6492,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 6491,
"end": 6492,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 6595,
"end": 6598,
"ctxt": 0
},
"value": "f70",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 6599,
"end": 6657,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 6599,
"end": 6657,
"ctxt": 0
},
"value": "func",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6603,
"end": 6657,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 6605,
"end": 6657,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 6612,
"end": 6629,
"ctxt": 0
},
"value": "k1",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6614,
"end": 6629,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 6616,
"end": 6629,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsParenthesizedType",
"span": {
"start": 6622,
"end": 6629,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 6623,
"end": 6628,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 6623,
"end": 6624,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6623,
"end": 6624,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 6627,
"end": 6628,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6627,
"end": 6628,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 6631,
"end": 6648,
"ctxt": 0
},
"value": "k2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6633,
"end": 6648,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 6635,
"end": 6648,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsParenthesizedType",
"span": {
"start": 6641,
"end": 6648,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 6642,
"end": 6647,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 6642,
"end": 6643,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6642,
"end": 6643,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 6646,
"end": 6647,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6646,
"end": 6647,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 6605,
"end": 6611,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 6606,
"end": 6607,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 6606,
"end": 6607,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 6609,
"end": 6610,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 6609,
"end": 6610,
"ctxt": 0
},
"value": "U",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6650,
"end": 6657,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6653,
"end": 6657,
"ctxt": 0
},
"kind": "void"
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 6586,
"end": 6842,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 6659,
"end": 6842,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 6665,
"end": 6720,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 6665,
"end": 6719,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 6665,
"end": 6669,
"ctxt": 0
},
"value": "func",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 6710,
"end": 6713,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 6715,
"end": 6718,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
}
],
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 6669,
"end": 6709,
"ctxt": 0
},
"params": [
{
"type": "TsTypeLiteral",
"span": {
"start": 6670,
"end": 6688,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 6672,
"end": 6679,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6672,
"end": 6673,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6673,
"end": 6678,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6675,
"end": 6678,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 6680,
"end": 6686,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6680,
"end": 6681,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6681,
"end": 6686,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6683,
"end": 6686,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 6690,
"end": 6708,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 6692,
"end": 6699,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6692,
"end": 6693,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6693,
"end": 6698,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6695,
"end": 6698,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 6700,
"end": 6706,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6700,
"end": 6701,
"ctxt": 0
},
"value": "c",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6701,
"end": 6706,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6703,
"end": 6706,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
}
]
}
]
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 6725,
"end": 6780,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 6725,
"end": 6779,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 6725,
"end": 6729,
"ctxt": 0
},
"value": "func",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 6770,
"end": 6773,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 6775,
"end": 6778,
"ctxt": 0
},
"value": "b",
"raw": "'b'"
}
}
],
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 6729,
"end": 6769,
"ctxt": 0
},
"params": [
{
"type": "TsTypeLiteral",
"span": {
"start": 6730,
"end": 6748,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 6732,
"end": 6739,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6732,
"end": 6733,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6733,
"end": 6738,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6735,
"end": 6738,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 6740,
"end": 6746,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6740,
"end": 6741,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6741,
"end": 6746,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6743,
"end": 6746,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 6750,
"end": 6768,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 6752,
"end": 6759,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6752,
"end": 6753,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6753,
"end": 6758,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6755,
"end": 6758,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 6760,
"end": 6766,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6760,
"end": 6761,
"ctxt": 0
},
"value": "c",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6761,
"end": 6766,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6763,
"end": 6766,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
}
]
}
]
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 6785,
"end": 6840,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 6785,
"end": 6839,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 6785,
"end": 6789,
"ctxt": 0
},
"value": "func",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 6830,
"end": 6833,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 6835,
"end": 6838,
"ctxt": 0
},
"value": "c",
"raw": "'c'"
}
}
],
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 6789,
"end": 6829,
"ctxt": 0
},
"params": [
{
"type": "TsTypeLiteral",
"span": {
"start": 6790,
"end": 6808,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 6792,
"end": 6799,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6792,
"end": 6793,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6793,
"end": 6798,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6795,
"end": 6798,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 6800,
"end": 6806,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6800,
"end": 6801,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6801,
"end": 6806,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6803,
"end": 6806,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 6810,
"end": 6828,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 6812,
"end": 6819,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6812,
"end": 6813,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6813,
"end": 6818,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6815,
"end": 6818,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 6820,
"end": 6826,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6820,
"end": 6821,
"ctxt": 0
},
"value": "c",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6821,
"end": 6826,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6823,
"end": 6826,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
}
]
}
]
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 6853,
"end": 6856,
"ctxt": 0
},
"value": "f71",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 6857,
"end": 6899,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 6857,
"end": 6899,
"ctxt": 0
},
"value": "func",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6861,
"end": 6899,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 6863,
"end": 6899,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 6870,
"end": 6874,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6871,
"end": 6874,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6873,
"end": 6874,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6873,
"end": 6874,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 6876,
"end": 6880,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6877,
"end": 6880,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6879,
"end": 6880,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6879,
"end": 6880,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 6863,
"end": 6869,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 6864,
"end": 6865,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 6864,
"end": 6865,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 6867,
"end": 6868,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 6867,
"end": 6868,
"ctxt": 0
},
"value": "U",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6882,
"end": 6899,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6885,
"end": 6899,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6885,
"end": 6892,
"ctxt": 0
},
"value": "Partial",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 6892,
"end": 6899,
"ctxt": 0
},
"params": [
{
"type": "TsIntersectionType",
"span": {
"start": 6893,
"end": 6898,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 6893,
"end": 6894,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6893,
"end": 6894,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 6897,
"end": 6898,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6897,
"end": 6898,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
]
}
]
}
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 6844,
"end": 7054,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 6901,
"end": 7054,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 6907,
"end": 6955,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6911,
"end": 6954,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6911,
"end": 6912,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 6915,
"end": 6954,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 6915,
"end": 6919,
"ctxt": 0
},
"value": "func",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 6920,
"end": 6940,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 6922,
"end": 6923,
"ctxt": 0
},
"value": "a",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 6925,
"end": 6926,
"ctxt": 0
},
"value": 1.0,
"raw": "1"
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 6928,
"end": 6929,
"ctxt": 0
},
"value": "b",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 6931,
"end": 6938,
"ctxt": 0
},
"value": "hello",
"raw": "\"hello\""
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 6942,
"end": 6953,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 6944,
"end": 6945,
"ctxt": 0
},
"value": "c",
"optional": false
},
"value": {
"type": "BooleanLiteral",
"span": {
"start": 6947,
"end": 6951,
"ctxt": 0
},
"value": true
}
}
]
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 6960,
"end": 6964,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 6960,
"end": 6963,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6960,
"end": 6961,
"ctxt": 0
},
"value": "x",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6962,
"end": 6963,
"ctxt": 0
},
"value": "a",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 6992,
"end": 6996,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 6992,
"end": 6995,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6992,
"end": 6993,
"ctxt": 0
},
"value": "x",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6994,
"end": 6995,
"ctxt": 0
},
"value": "b",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 7024,
"end": 7028,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 7024,
"end": 7027,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7024,
"end": 7025,
"ctxt": 0
},
"value": "x",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7026,
"end": 7027,
"ctxt": 0
},
"value": "c",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 7065,
"end": 7068,
"ctxt": 0
},
"value": "f72",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 7069,
"end": 7142,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 7069,
"end": 7142,
"ctxt": 0
},
"value": "func",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 7073,
"end": 7142,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 7075,
"end": 7142,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 7111,
"end": 7115,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 7112,
"end": 7115,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 7114,
"end": 7115,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7114,
"end": 7115,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 7117,
"end": 7121,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 7118,
"end": 7121,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 7120,
"end": 7121,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7120,
"end": 7121,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 7123,
"end": 7127,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 7124,
"end": 7127,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 7126,
"end": 7127,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7126,
"end": 7127,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 7075,
"end": 7110,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 7076,
"end": 7077,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 7076,
"end": 7077,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 7079,
"end": 7080,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 7079,
"end": 7080,
"ctxt": 0
},
"value": "U",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 7082,
"end": 7109,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 7082,
"end": 7083,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsUnionType",
"span": {
"start": 7092,
"end": 7109,
"ctxt": 0
},
"types": [
{
"type": "TsTypeOperator",
"span": {
"start": 7092,
"end": 7099,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 7098,
"end": 7099,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7098,
"end": 7099,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
{
"type": "TsTypeOperator",
"span": {
"start": 7102,
"end": 7109,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 7108,
"end": 7109,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7108,
"end": 7109,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
]
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 7129,
"end": 7142,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 7132,
"end": 7142,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsParenthesizedType",
"span": {
"start": 7132,
"end": 7139,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 7133,
"end": 7138,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 7133,
"end": 7134,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7133,
"end": 7134,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 7137,
"end": 7138,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7137,
"end": 7138,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
]
}
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 7140,
"end": 7141,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7140,
"end": 7141,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 7056,
"end": 7355,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 7144,
"end": 7355,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 7150,
"end": 7203,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 7154,
"end": 7202,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 7154,
"end": 7155,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 7158,
"end": 7202,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 7158,
"end": 7162,
"ctxt": 0
},
"value": "func",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 7163,
"end": 7183,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7165,
"end": 7166,
"ctxt": 0
},
"value": "a",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 7168,
"end": 7169,
"ctxt": 0
},
"value": 1.0,
"raw": "1"
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7171,
"end": 7172,
"ctxt": 0
},
"value": "b",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 7174,
"end": 7181,
"ctxt": 0
},
"value": "hello",
"raw": "\"hello\""
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 7185,
"end": 7196,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7187,
"end": 7188,
"ctxt": 0
},
"value": "c",
"optional": false
},
"value": {
"type": "BooleanLiteral",
"span": {
"start": 7190,
"end": 7194,
"ctxt": 0
},
"value": true
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 7198,
"end": 7201,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 7219,
"end": 7272,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 7223,
"end": 7271,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 7223,
"end": 7224,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 7227,
"end": 7271,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 7227,
"end": 7231,
"ctxt": 0
},
"value": "func",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 7232,
"end": 7252,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7234,
"end": 7235,
"ctxt": 0
},
"value": "a",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 7237,
"end": 7238,
"ctxt": 0
},
"value": 1.0,
"raw": "1"
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7240,
"end": 7241,
"ctxt": 0
},
"value": "b",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 7243,
"end": 7250,
"ctxt": 0
},
"value": "hello",
"raw": "\"hello\""
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 7254,
"end": 7265,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7256,
"end": 7257,
"ctxt": 0
},
"value": "c",
"optional": false
},
"value": {
"type": "BooleanLiteral",
"span": {
"start": 7259,
"end": 7263,
"ctxt": 0
},
"value": true
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 7267,
"end": 7270,
"ctxt": 0
},
"value": "b",
"raw": "'b'"
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 7288,
"end": 7341,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 7292,
"end": 7340,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 7292,
"end": 7293,
"ctxt": 0
},
"value": "c",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 7296,
"end": 7340,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 7296,
"end": 7300,
"ctxt": 0
},
"value": "func",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 7301,
"end": 7321,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7303,
"end": 7304,
"ctxt": 0
},
"value": "a",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 7306,
"end": 7307,
"ctxt": 0
},
"value": 1.0,
"raw": "1"
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7309,
"end": 7310,
"ctxt": 0
},
"value": "b",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 7312,
"end": 7319,
"ctxt": 0
},
"value": "hello",
"raw": "\"hello\""
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 7323,
"end": 7334,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7325,
"end": 7326,
"ctxt": 0
},
"value": "c",
"optional": false
},
"value": {
"type": "BooleanLiteral",
"span": {
"start": 7328,
"end": 7332,
"ctxt": 0
},
"value": true
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 7336,
"end": 7339,
"ctxt": 0
},
"value": "c",
"raw": "'c'"
}
}
],
"typeArguments": null
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 7366,
"end": 7369,
"ctxt": 0
},
"value": "f73",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 7370,
"end": 7439,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 7370,
"end": 7439,
"ctxt": 0
},
"value": "func",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 7374,
"end": 7439,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 7376,
"end": 7439,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 7408,
"end": 7412,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 7409,
"end": 7412,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 7411,
"end": 7412,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7411,
"end": 7412,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 7414,
"end": 7418,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 7415,
"end": 7418,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 7417,
"end": 7418,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7417,
"end": 7418,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 7420,
"end": 7424,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 7421,
"end": 7424,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 7423,
"end": 7424,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7423,
"end": 7424,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 7376,
"end": 7407,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 7377,
"end": 7378,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 7377,
"end": 7378,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 7380,
"end": 7381,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 7380,
"end": 7381,
"ctxt": 0
},
"value": "U",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 7383,
"end": 7406,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 7383,
"end": 7384,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 7393,
"end": 7406,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsParenthesizedType",
"span": {
"start": 7399,
"end": 7406,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 7400,
"end": 7405,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 7400,
"end": 7401,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7400,
"end": 7401,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 7404,
"end": 7405,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7404,
"end": 7405,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
]
}
}
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 7426,
"end": 7439,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 7429,
"end": 7439,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsParenthesizedType",
"span": {
"start": 7429,
"end": 7436,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 7430,
"end": 7435,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 7430,
"end": 7431,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7430,
"end": 7431,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 7434,
"end": 7435,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7434,
"end": 7435,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
]
}
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 7437,
"end": 7438,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7437,
"end": 7438,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 7357,
"end": 7652,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 7441,
"end": 7652,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 7447,
"end": 7500,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 7451,
"end": 7499,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 7451,
"end": 7452,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 7455,
"end": 7499,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 7455,
"end": 7459,
"ctxt": 0
},
"value": "func",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 7460,
"end": 7480,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7462,
"end": 7463,
"ctxt": 0
},
"value": "a",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 7465,
"end": 7466,
"ctxt": 0
},
"value": 1.0,
"raw": "1"
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7468,
"end": 7469,
"ctxt": 0
},
"value": "b",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 7471,
"end": 7478,
"ctxt": 0
},
"value": "hello",
"raw": "\"hello\""
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 7482,
"end": 7493,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7484,
"end": 7485,
"ctxt": 0
},
"value": "c",
"optional": false
},
"value": {
"type": "BooleanLiteral",
"span": {
"start": 7487,
"end": 7491,
"ctxt": 0
},
"value": true
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 7495,
"end": 7498,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 7516,
"end": 7569,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 7520,
"end": 7568,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 7520,
"end": 7521,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 7524,
"end": 7568,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 7524,
"end": 7528,
"ctxt": 0
},
"value": "func",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 7529,
"end": 7549,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7531,
"end": 7532,
"ctxt": 0
},
"value": "a",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 7534,
"end": 7535,
"ctxt": 0
},
"value": 1.0,
"raw": "1"
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7537,
"end": 7538,
"ctxt": 0
},
"value": "b",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 7540,
"end": 7547,
"ctxt": 0
},
"value": "hello",
"raw": "\"hello\""
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 7551,
"end": 7562,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7553,
"end": 7554,
"ctxt": 0
},
"value": "c",
"optional": false
},
"value": {
"type": "BooleanLiteral",
"span": {
"start": 7556,
"end": 7560,
"ctxt": 0
},
"value": true
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 7564,
"end": 7567,
"ctxt": 0
},
"value": "b",
"raw": "'b'"
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 7585,
"end": 7638,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 7589,
"end": 7637,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 7589,
"end": 7590,
"ctxt": 0
},
"value": "c",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 7593,
"end": 7637,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 7593,
"end": 7597,
"ctxt": 0
},
"value": "func",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 7598,
"end": 7618,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7600,
"end": 7601,
"ctxt": 0
},
"value": "a",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 7603,
"end": 7604,
"ctxt": 0
},
"value": 1.0,
"raw": "1"
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7606,
"end": 7607,
"ctxt": 0
},
"value": "b",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 7609,
"end": 7616,
"ctxt": 0
},
"value": "hello",
"raw": "\"hello\""
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 7620,
"end": 7631,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7622,
"end": 7623,
"ctxt": 0
},
"value": "c",
"optional": false
},
"value": {
"type": "BooleanLiteral",
"span": {
"start": 7625,
"end": 7629,
"ctxt": 0
},
"value": true
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 7633,
"end": 7636,
"ctxt": 0
},
"value": "c",
"raw": "'c'"
}
}
],
"typeArguments": null
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 7663,
"end": 7666,
"ctxt": 0
},
"value": "f74",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 7667,
"end": 7736,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 7667,
"end": 7736,
"ctxt": 0
},
"value": "func",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 7671,
"end": 7736,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 7673,
"end": 7736,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 7705,
"end": 7709,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 7706,
"end": 7709,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 7708,
"end": 7709,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7708,
"end": 7709,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 7711,
"end": 7715,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 7712,
"end": 7715,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 7714,
"end": 7715,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7714,
"end": 7715,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 7717,
"end": 7721,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 7718,
"end": 7721,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 7720,
"end": 7721,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7720,
"end": 7721,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 7673,
"end": 7704,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 7674,
"end": 7675,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 7674,
"end": 7675,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 7677,
"end": 7678,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 7677,
"end": 7678,
"ctxt": 0
},
"value": "U",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 7680,
"end": 7703,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 7680,
"end": 7681,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 7690,
"end": 7703,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsParenthesizedType",
"span": {
"start": 7696,
"end": 7703,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 7697,
"end": 7702,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 7697,
"end": 7698,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7697,
"end": 7698,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 7701,
"end": 7702,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7701,
"end": 7702,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
]
}
}
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 7723,
"end": 7736,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 7726,
"end": 7736,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsParenthesizedType",
"span": {
"start": 7726,
"end": 7733,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 7727,
"end": 7732,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 7727,
"end": 7728,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7727,
"end": 7728,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 7731,
"end": 7732,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7731,
"end": 7732,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
]
}
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 7734,
"end": 7735,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7734,
"end": 7735,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 7654,
"end": 7901,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 7738,
"end": 7901,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 7744,
"end": 7803,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 7748,
"end": 7802,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 7748,
"end": 7749,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 7752,
"end": 7802,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 7752,
"end": 7756,
"ctxt": 0
},
"value": "func",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 7757,
"end": 7777,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7759,
"end": 7760,
"ctxt": 0
},
"value": "a",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 7762,
"end": 7763,
"ctxt": 0
},
"value": 1.0,
"raw": "1"
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7765,
"end": 7766,
"ctxt": 0
},
"value": "b",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 7768,
"end": 7775,
"ctxt": 0
},
"value": "hello",
"raw": "\"hello\""
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 7779,
"end": 7796,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7781,
"end": 7782,
"ctxt": 0
},
"value": "a",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 7784,
"end": 7785,
"ctxt": 0
},
"value": 2.0,
"raw": "2"
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7787,
"end": 7788,
"ctxt": 0
},
"value": "b",
"optional": false
},
"value": {
"type": "BooleanLiteral",
"span": {
"start": 7790,
"end": 7794,
"ctxt": 0
},
"value": true
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 7798,
"end": 7801,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 7819,
"end": 7878,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 7823,
"end": 7877,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 7823,
"end": 7824,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 7827,
"end": 7877,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 7827,
"end": 7831,
"ctxt": 0
},
"value": "func",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 7832,
"end": 7852,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7834,
"end": 7835,
"ctxt": 0
},
"value": "a",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 7837,
"end": 7838,
"ctxt": 0
},
"value": 1.0,
"raw": "1"
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7840,
"end": 7841,
"ctxt": 0
},
"value": "b",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 7843,
"end": 7850,
"ctxt": 0
},
"value": "hello",
"raw": "\"hello\""
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 7854,
"end": 7871,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7856,
"end": 7857,
"ctxt": 0
},
"value": "a",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 7859,
"end": 7860,
"ctxt": 0
},
"value": 2.0,
"raw": "2"
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 7862,
"end": 7863,
"ctxt": 0
},
"value": "b",
"optional": false
},
"value": {
"type": "BooleanLiteral",
"span": {
"start": 7865,
"end": 7869,
"ctxt": 0
},
"value": true
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 7873,
"end": 7876,
"ctxt": 0
},
"value": "b",
"raw": "'b'"
}
}
],
"typeArguments": null
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 7912,
"end": 7915,
"ctxt": 0
},
"value": "f80",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 7945,
"end": 7951,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 7945,
"end": 7951,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 7948,
"end": 7951,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 7950,
"end": 7951,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 7950,
"end": 7951,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 7903,
"end": 8198,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 7953,
"end": 8198,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 7959,
"end": 7974,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 7963,
"end": 7973,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 7963,
"end": 7965,
"ctxt": 0
},
"value": "a1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 7968,
"end": 7973,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7968,
"end": 7971,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7972,
"end": 7973,
"ctxt": 0
},
"value": "a",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 7994,
"end": 8012,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 7998,
"end": 8011,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 7998,
"end": 8000,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 8003,
"end": 8011,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8003,
"end": 8006,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 8006,
"end": 8011,
"ctxt": 0
},
"expression": {
"type": "StringLiteral",
"span": {
"start": 8007,
"end": 8010,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 8032,
"end": 8060,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 8036,
"end": 8059,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 8036,
"end": 8038,
"ctxt": 0
},
"value": "a3",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsAsExpression",
"span": {
"start": 8041,
"end": 8059,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 8041,
"end": 8049,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8041,
"end": 8044,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 8044,
"end": 8049,
"ctxt": 0
},
"expression": {
"type": "StringLiteral",
"span": {
"start": 8045,
"end": 8048,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
}
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 8053,
"end": 8059,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 8053,
"end": 8054,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 8053,
"end": 8054,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 8055,
"end": 8058,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 8055,
"end": 8058,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 8076,
"end": 8093,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 8080,
"end": 8092,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 8080,
"end": 8082,
"ctxt": 0
},
"value": "x1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 8085,
"end": 8092,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8085,
"end": 8090,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8085,
"end": 8088,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8089,
"end": 8090,
"ctxt": 0
},
"value": "a",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8091,
"end": 8092,
"ctxt": 0
},
"value": "x",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 8106,
"end": 8129,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 8110,
"end": 8128,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 8110,
"end": 8112,
"ctxt": 0
},
"value": "x2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 8115,
"end": 8128,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8115,
"end": 8123,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8115,
"end": 8118,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 8118,
"end": 8123,
"ctxt": 0
},
"expression": {
"type": "StringLiteral",
"span": {
"start": 8119,
"end": 8122,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
}
},
"property": {
"type": "Computed",
"span": {
"start": 8123,
"end": 8128,
"ctxt": 0
},
"expression": {
"type": "StringLiteral",
"span": {
"start": 8124,
"end": 8127,
"ctxt": 0
},
"value": "x",
"raw": "'x'"
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 8142,
"end": 8180,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 8146,
"end": 8179,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 8146,
"end": 8148,
"ctxt": 0
},
"value": "x3",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsAsExpression",
"span": {
"start": 8151,
"end": 8179,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 8151,
"end": 8164,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8151,
"end": 8159,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8151,
"end": 8154,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 8154,
"end": 8159,
"ctxt": 0
},
"expression": {
"type": "StringLiteral",
"span": {
"start": 8155,
"end": 8158,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
}
},
"property": {
"type": "Computed",
"span": {
"start": 8159,
"end": 8164,
"ctxt": 0
},
"expression": {
"type": "StringLiteral",
"span": {
"start": 8160,
"end": 8163,
"ctxt": 0
},
"value": "x",
"raw": "'x'"
}
}
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 8168,
"end": 8179,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsIndexedAccessType",
"span": {
"start": 8168,
"end": 8174,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 8168,
"end": 8169,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 8168,
"end": 8169,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 8170,
"end": 8173,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 8170,
"end": 8173,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
}
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 8175,
"end": 8178,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 8175,
"end": 8178,
"ctxt": 0
},
"value": "x",
"raw": "'x'"
}
}
}
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 7915,
"end": 7944,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 7916,
"end": 7943,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 7916,
"end": 7917,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeLiteral",
"span": {
"start": 7926,
"end": 7943,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 7928,
"end": 7941,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 7928,
"end": 7929,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 7929,
"end": 7941,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 7931,
"end": 7941,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 7933,
"end": 7939,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 7933,
"end": 7934,
"ctxt": 0
},
"value": "x",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 7934,
"end": 7939,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 7936,
"end": 7939,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
}
]
}
},
"typeParams": null
}
]
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 8209,
"end": 8212,
"ctxt": 0
},
"value": "f81",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 8242,
"end": 8248,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 8242,
"end": 8248,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 8245,
"end": 8248,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 8247,
"end": 8248,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 8247,
"end": 8248,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 8200,
"end": 8294,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 8250,
"end": 8294,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 8256,
"end": 8292,
"ctxt": 0
},
"argument": {
"type": "TsAsExpression",
"span": {
"start": 8263,
"end": 8291,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 8263,
"end": 8276,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8263,
"end": 8271,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8263,
"end": 8266,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 8266,
"end": 8271,
"ctxt": 0
},
"expression": {
"type": "StringLiteral",
"span": {
"start": 8267,
"end": 8270,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
}
},
"property": {
"type": "Computed",
"span": {
"start": 8271,
"end": 8276,
"ctxt": 0
},
"expression": {
"type": "StringLiteral",
"span": {
"start": 8272,
"end": 8275,
"ctxt": 0
},
"value": "x",
"raw": "'x'"
}
}
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 8280,
"end": 8291,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsIndexedAccessType",
"span": {
"start": 8280,
"end": 8286,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 8280,
"end": 8281,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 8280,
"end": 8281,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 8282,
"end": 8285,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 8282,
"end": 8285,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
}
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 8287,
"end": 8290,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 8287,
"end": 8290,
"ctxt": 0
},
"value": "x",
"raw": "'x'"
}
}
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 8212,
"end": 8241,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 8213,
"end": 8240,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 8213,
"end": 8214,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeLiteral",
"span": {
"start": 8223,
"end": 8240,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 8225,
"end": 8238,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 8225,
"end": 8226,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 8226,
"end": 8238,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 8228,
"end": 8238,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 8230,
"end": 8236,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 8230,
"end": 8231,
"ctxt": 0
},
"value": "x",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 8231,
"end": 8236,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 8233,
"end": 8236,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
}
]
}
},
"typeParams": null
}
]
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 8305,
"end": 8308,
"ctxt": 0
},
"value": "f82",
"optional": false
},
"declare": false,
"params": [],
"decorators": [],
"span": {
"start": 8296,
"end": 8413,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 8311,
"end": 8413,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 8317,
"end": 8353,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 8321,
"end": 8352,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 8321,
"end": 8323,
"ctxt": 0
},
"value": "x1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 8326,
"end": 8352,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 8326,
"end": 8329,
"ctxt": 0
},
"value": "f81",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 8330,
"end": 8351,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 8332,
"end": 8333,
"ctxt": 0
},
"value": "a",
"optional": false
},
"value": {
"type": "ObjectExpression",
"span": {
"start": 8335,
"end": 8349,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 8337,
"end": 8338,
"ctxt": 0
},
"value": "x",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 8340,
"end": 8347,
"ctxt": 0
},
"value": "hello",
"raw": "\"hello\""
}
}
]
}
}
]
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 8369,
"end": 8400,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 8373,
"end": 8399,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 8373,
"end": 8375,
"ctxt": 0
},
"value": "x2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 8378,
"end": 8399,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 8378,
"end": 8381,
"ctxt": 0
},
"value": "f81",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 8382,
"end": 8398,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 8384,
"end": 8385,
"ctxt": 0
},
"value": "a",
"optional": false
},
"value": {
"type": "ObjectExpression",
"span": {
"start": 8387,
"end": 8396,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 8389,
"end": 8390,
"ctxt": 0
},
"value": "x",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 8392,
"end": 8394,
"ctxt": 0
},
"value": 42.0,
"raw": "42"
}
}
]
}
}
]
}
}
],
"typeArguments": null
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 8424,
"end": 8427,
"ctxt": 0
},
"value": "f83",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 8486,
"end": 8492,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 8486,
"end": 8492,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 8489,
"end": 8492,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 8491,
"end": 8492,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 8491,
"end": 8492,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 8494,
"end": 8500,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 8494,
"end": 8500,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 8497,
"end": 8500,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 8499,
"end": 8500,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 8499,
"end": 8500,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 8415,
"end": 8544,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 8502,
"end": 8544,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 8508,
"end": 8542,
"ctxt": 0
},
"argument": {
"type": "TsAsExpression",
"span": {
"start": 8515,
"end": 8541,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 8515,
"end": 8528,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8515,
"end": 8523,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8515,
"end": 8518,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 8518,
"end": 8523,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 8519,
"end": 8522,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
},
"property": {
"type": "Computed",
"span": {
"start": 8523,
"end": 8528,
"ctxt": 0
},
"expression": {
"type": "StringLiteral",
"span": {
"start": 8524,
"end": 8527,
"ctxt": 0
},
"value": "x",
"raw": "'x'"
}
}
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 8532,
"end": 8541,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsIndexedAccessType",
"span": {
"start": 8532,
"end": 8536,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 8532,
"end": 8533,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 8532,
"end": 8533,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 8534,
"end": 8535,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 8534,
"end": 8535,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 8537,
"end": 8540,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 8537,
"end": 8540,
"ctxt": 0
},
"value": "x",
"raw": "'x'"
}
}
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 8427,
"end": 8485,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 8428,
"end": 8465,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 8428,
"end": 8429,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeLiteral",
"span": {
"start": 8438,
"end": 8465,
"ctxt": 0
},
"members": [
{
"type": "TsIndexSignature",
"params": [
{
"type": "Identifier",
"span": {
"start": 8441,
"end": 8450,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 8442,
"end": 8450,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 8444,
"end": 8450,
"ctxt": 0
},
"kind": "string"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 8451,
"end": 8463,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 8453,
"end": 8463,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 8455,
"end": 8461,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 8455,
"end": 8456,
"ctxt": 0
},
"value": "x",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 8456,
"end": 8461,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 8458,
"end": 8461,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
}
]
}
},
"readonly": false,
"static": false,
"span": {
"start": 8440,
"end": 8463,
"ctxt": 0
}
}
]
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 8467,
"end": 8484,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 8467,
"end": 8468,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 8477,
"end": 8484,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 8483,
"end": 8484,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 8483,
"end": 8484,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 8555,
"end": 8558,
"ctxt": 0
},
"value": "f84",
"optional": false
},
"declare": false,
"params": [],
"decorators": [],
"span": {
"start": 8546,
"end": 8681,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 8561,
"end": 8681,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 8567,
"end": 8612,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 8571,
"end": 8611,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 8571,
"end": 8573,
"ctxt": 0
},
"value": "x1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 8576,
"end": 8611,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 8576,
"end": 8579,
"ctxt": 0
},
"value": "f83",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 8580,
"end": 8603,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 8582,
"end": 8585,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"value": {
"type": "ObjectExpression",
"span": {
"start": 8587,
"end": 8601,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 8589,
"end": 8590,
"ctxt": 0
},
"value": "x",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 8592,
"end": 8599,
"ctxt": 0
},
"value": "hello",
"raw": "\"hello\""
}
}
]
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 8605,
"end": 8610,
"ctxt": 0
},
"value": "foo",
"raw": "\"foo\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 8628,
"end": 8668,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 8632,
"end": 8667,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 8632,
"end": 8634,
"ctxt": 0
},
"value": "x2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 8637,
"end": 8667,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 8637,
"end": 8640,
"ctxt": 0
},
"value": "f83",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 8641,
"end": 8659,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 8643,
"end": 8646,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"value": {
"type": "ObjectExpression",
"span": {
"start": 8648,
"end": 8657,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 8650,
"end": 8651,
"ctxt": 0
},
"value": "x",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 8653,
"end": 8655,
"ctxt": 0
},
"value": 42.0,
"raw": "42"
}
}
]
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 8661,
"end": 8666,
"ctxt": 0
},
"value": "bar",
"raw": "\"bar\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 8689,
"end": 8691,
"ctxt": 0
},
"value": "C1",
"optional": false
},
"declare": false,
"span": {
"start": 8683,
"end": 9172,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 8698,
"end": 8708,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 8698,
"end": 8699,
"ctxt": 0
},
"value": "x",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 8699,
"end": 8707,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 8701,
"end": 8707,
"ctxt": 0
},
"kind": "number"
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
},
{
"type": "ClassMethod",
"span": {
"start": 8713,
"end": 8780,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 8713,
"end": 8716,
"ctxt": 0
},
"value": "get",
"optional": false
},
"function": {
"params": [
{
"type": "Parameter",
"span": {
"start": 8739,
"end": 8745,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 8739,
"end": 8745,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 8742,
"end": 8745,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 8744,
"end": 8745,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 8744,
"end": 8745,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 8713,
"end": 8780,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 8747,
"end": 8780,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 8757,
"end": 8774,
"ctxt": 0
},
"argument": {
"type": "MemberExpression",
"span": {
"start": 8764,
"end": 8773,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 8764,
"end": 8768,
"ctxt": 0
}
},
"property": {
"type": "Computed",
"span": {
"start": 8768,
"end": 8773,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 8769,
"end": 8772,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 8716,
"end": 8738,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 8717,
"end": 8737,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 8717,
"end": 8718,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 8727,
"end": 8737,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsThisType",
"span": {
"start": 8733,
"end": 8737,
"ctxt": 0
}
}
},
"default": null
}
]
},
"returnType": null
},
"kind": "method",
"isStatic": false,
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false
},
{
"type": "ClassMethod",
"span": {
"start": 8785,
"end": 8869,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 8785,
"end": 8788,
"ctxt": 0
},
"value": "set",
"optional": false
},
"function": {
"params": [
{
"type": "Parameter",
"span": {
"start": 8811,
"end": 8817,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 8811,
"end": 8817,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 8814,
"end": 8817,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 8816,
"end": 8817,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 8816,
"end": 8817,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 8819,
"end": 8833,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 8819,
"end": 8833,
"ctxt": 0
},
"value": "value",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 8824,
"end": 8833,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 8826,
"end": 8833,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsThisType",
"span": {
"start": 8826,
"end": 8830,
"ctxt": 0
}
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 8831,
"end": 8832,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 8831,
"end": 8832,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 8785,
"end": 8869,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 8835,
"end": 8869,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 8845,
"end": 8863,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 8845,
"end": 8862,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 8845,
"end": 8854,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 8845,
"end": 8849,
"ctxt": 0
}
},
"property": {
"type": "Computed",
"span": {
"start": 8849,
"end": 8854,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 8850,
"end": 8853,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
},
"right": {
"type": "Identifier",
"span": {
"start": 8857,
"end": 8862,
"ctxt": 0
},
"value": "value",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 8788,
"end": 8810,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 8789,
"end": 8809,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 8789,
"end": 8790,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 8799,
"end": 8809,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsThisType",
"span": {
"start": 8805,
"end": 8809,
"ctxt": 0
}
}
},
"default": null
}
]
},
"returnType": null
},
"kind": "method",
"isStatic": false,
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false
},
{
"type": "ClassMethod",
"span": {
"start": 8874,
"end": 9170,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 8874,
"end": 8877,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"function": {
"params": [],
"decorators": [],
"span": {
"start": 8874,
"end": 9170,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 8880,
"end": 9170,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 8890,
"end": 8906,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 8894,
"end": 8905,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 8894,
"end": 8896,
"ctxt": 0
},
"value": "x1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 8899,
"end": 8905,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 8899,
"end": 8903,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8904,
"end": 8905,
"ctxt": 0
},
"value": "x",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 8926,
"end": 8945,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 8930,
"end": 8944,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 8930,
"end": 8932,
"ctxt": 0
},
"value": "x2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 8935,
"end": 8944,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 8935,
"end": 8939,
"ctxt": 0
}
},
"property": {
"type": "Computed",
"span": {
"start": 8939,
"end": 8944,
"ctxt": 0
},
"expression": {
"type": "StringLiteral",
"span": {
"start": 8940,
"end": 8943,
"ctxt": 0
},
"value": "x",
"raw": "\"x\""
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 8965,
"end": 8988,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 8969,
"end": 8987,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 8969,
"end": 8971,
"ctxt": 0
},
"value": "x3",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 8974,
"end": 8987,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 8974,
"end": 8982,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 8974,
"end": 8978,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8979,
"end": 8982,
"ctxt": 0
},
"value": "get",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 8983,
"end": 8986,
"ctxt": 0
},
"value": "x",
"raw": "\"x\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 9011,
"end": 9043,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 9015,
"end": 9042,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 9015,
"end": 9017,
"ctxt": 0
},
"value": "x4",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 9020,
"end": 9042,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 9020,
"end": 9031,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ThisExpression",
"span": {
"start": 9032,
"end": 9036,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 9038,
"end": 9041,
"ctxt": 0
},
"value": "x",
"raw": "\"x\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 9065,
"end": 9077,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9065,
"end": 9076,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 9065,
"end": 9071,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 9065,
"end": 9069,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9070,
"end": 9071,
"ctxt": 0
},
"value": "x",
"optional": false
}
},
"right": {
"type": "NumericLiteral",
"span": {
"start": 9074,
"end": 9076,
"ctxt": 0
},
"value": 42.0,
"raw": "42"
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 9086,
"end": 9101,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9086,
"end": 9100,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 9086,
"end": 9095,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 9086,
"end": 9090,
"ctxt": 0
}
},
"property": {
"type": "Computed",
"span": {
"start": 9090,
"end": 9095,
"ctxt": 0
},
"expression": {
"type": "StringLiteral",
"span": {
"start": 9091,
"end": 9094,
"ctxt": 0
},
"value": "x",
"raw": "\"x\""
}
}
},
"right": {
"type": "NumericLiteral",
"span": {
"start": 9098,
"end": 9100,
"ctxt": 0
},
"value": 42.0,
"raw": "42"
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 9110,
"end": 9128,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 9110,
"end": 9127,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 9110,
"end": 9118,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 9110,
"end": 9114,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9115,
"end": 9118,
"ctxt": 0
},
"value": "set",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 9119,
"end": 9122,
"ctxt": 0
},
"value": "x",
"raw": "\"x\""
}
},
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 9124,
"end": 9126,
"ctxt": 0
},
"value": 42.0,
"raw": "42"
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 9137,
"end": 9164,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 9137,
"end": 9163,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 9137,
"end": 9148,
"ctxt": 0
},
"value": "setProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ThisExpression",
"span": {
"start": 9149,
"end": 9153,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 9155,
"end": 9158,
"ctxt": 0
},
"value": "x",
"raw": "\"x\""
}
},
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 9160,
"end": 9162,
"ctxt": 0
},
"value": 42.0,
"raw": "42"
}
}
],
"typeArguments": null
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
"kind": "method",
"isStatic": false,
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 9174,
"end": 9218,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 9179,
"end": 9181,
"ctxt": 0
},
"value": "S2",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 9184,
"end": 9217,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 9190,
"end": 9200,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 9190,
"end": 9191,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9191,
"end": 9199,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 9193,
"end": 9199,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 9205,
"end": 9215,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 9205,
"end": 9206,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9206,
"end": 9214,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 9208,
"end": 9214,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 9229,
"end": 9232,
"ctxt": 0
},
"value": "f90",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 9267,
"end": 9283,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 9267,
"end": 9283,
"ctxt": 0
},
"value": "x1",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9269,
"end": 9283,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 9271,
"end": 9283,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 9271,
"end": 9273,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9271,
"end": 9273,
"ctxt": 0
},
"value": "S2",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeOperator",
"span": {
"start": 9274,
"end": 9282,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 9280,
"end": 9282,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9280,
"end": 9282,
"ctxt": 0
},
"value": "S2",
"optional": false
},
"typeParams": null
}
}
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 9285,
"end": 9300,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 9285,
"end": 9300,
"ctxt": 0
},
"value": "x2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9287,
"end": 9300,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 9289,
"end": 9300,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 9289,
"end": 9290,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9289,
"end": 9290,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeOperator",
"span": {
"start": 9291,
"end": 9299,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 9297,
"end": 9299,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9297,
"end": 9299,
"ctxt": 0
},
"value": "S2",
"optional": false
},
"typeParams": null
}
}
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 9302,
"end": 9311,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 9302,
"end": 9311,
"ctxt": 0
},
"value": "x3",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9304,
"end": 9311,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 9306,
"end": 9311,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 9306,
"end": 9308,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9306,
"end": 9308,
"ctxt": 0
},
"value": "S2",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 9309,
"end": 9310,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9309,
"end": 9310,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 9220,
"end": 9439,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 9313,
"end": 9439,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 9319,
"end": 9327,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9319,
"end": 9326,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 9319,
"end": 9321,
"ctxt": 0
},
"value": "x1",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 9324,
"end": 9326,
"ctxt": 0
},
"value": "x2",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 9332,
"end": 9340,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9332,
"end": 9339,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 9332,
"end": 9334,
"ctxt": 0
},
"value": "x1",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 9337,
"end": 9339,
"ctxt": 0
},
"value": "x3",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 9345,
"end": 9353,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9345,
"end": 9352,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 9345,
"end": 9347,
"ctxt": 0
},
"value": "x2",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 9350,
"end": 9352,
"ctxt": 0
},
"value": "x1",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 9358,
"end": 9366,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9358,
"end": 9365,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 9358,
"end": 9360,
"ctxt": 0
},
"value": "x2",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 9363,
"end": 9365,
"ctxt": 0
},
"value": "x3",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 9371,
"end": 9379,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9371,
"end": 9378,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 9371,
"end": 9373,
"ctxt": 0
},
"value": "x3",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 9376,
"end": 9378,
"ctxt": 0
},
"value": "x1",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 9384,
"end": 9392,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9384,
"end": 9391,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 9384,
"end": 9386,
"ctxt": 0
},
"value": "x3",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 9389,
"end": 9391,
"ctxt": 0
},
"value": "x2",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 9397,
"end": 9407,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 9397,
"end": 9406,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9397,
"end": 9399,
"ctxt": 0
},
"value": "x1",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9400,
"end": 9406,
"ctxt": 0
},
"value": "length",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 9412,
"end": 9422,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 9412,
"end": 9421,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9412,
"end": 9414,
"ctxt": 0
},
"value": "x2",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9415,
"end": 9421,
"ctxt": 0
},
"value": "length",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 9427,
"end": 9437,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 9427,
"end": 9436,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9427,
"end": 9429,
"ctxt": 0
},
"value": "x3",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9430,
"end": 9436,
"ctxt": 0
},
"value": "length",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 9232,
"end": 9266,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 9233,
"end": 9245,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 9233,
"end": 9234,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 9243,
"end": 9245,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9243,
"end": 9245,
"ctxt": 0
},
"value": "S2",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 9247,
"end": 9265,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 9247,
"end": 9248,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 9257,
"end": 9265,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 9263,
"end": 9265,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9263,
"end": 9265,
"ctxt": 0
},
"value": "S2",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 9450,
"end": 9453,
"ctxt": 0
},
"value": "f91",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 9476,
"end": 9480,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 9476,
"end": 9480,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9477,
"end": 9480,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 9479,
"end": 9480,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9479,
"end": 9480,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 9482,
"end": 9495,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 9482,
"end": 9495,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9483,
"end": 9495,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 9485,
"end": 9495,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 9485,
"end": 9486,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9485,
"end": 9486,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeOperator",
"span": {
"start": 9487,
"end": 9494,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 9493,
"end": 9494,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9493,
"end": 9494,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 9497,
"end": 9504,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 9497,
"end": 9504,
"ctxt": 0
},
"value": "z",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9498,
"end": 9504,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 9500,
"end": 9504,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 9500,
"end": 9501,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9500,
"end": 9501,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 9502,
"end": 9503,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9502,
"end": 9503,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 9441,
"end": 9557,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 9506,
"end": 9557,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 9512,
"end": 9522,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 9516,
"end": 9521,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 9516,
"end": 9517,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9517,
"end": 9521,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 9519,
"end": 9521,
"ctxt": 0
},
"members": []
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 9527,
"end": 9533,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9527,
"end": 9532,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 9527,
"end": 9528,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 9531,
"end": 9532,
"ctxt": 0
},
"value": "x",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 9538,
"end": 9544,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9538,
"end": 9543,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 9538,
"end": 9539,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 9542,
"end": 9543,
"ctxt": 0
},
"value": "y",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 9549,
"end": 9555,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9549,
"end": 9554,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 9549,
"end": 9550,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 9553,
"end": 9554,
"ctxt": 0
},
"value": "z",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 9453,
"end": 9475,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 9454,
"end": 9455,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 9454,
"end": 9455,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 9457,
"end": 9474,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 9457,
"end": 9458,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 9467,
"end": 9474,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 9473,
"end": 9474,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9473,
"end": 9474,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 9568,
"end": 9571,
"ctxt": 0
},
"value": "f92",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 9594,
"end": 9598,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 9594,
"end": 9598,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9595,
"end": 9598,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 9597,
"end": 9598,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9597,
"end": 9598,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 9600,
"end": 9613,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 9600,
"end": 9613,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9601,
"end": 9613,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 9603,
"end": 9613,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 9603,
"end": 9604,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9603,
"end": 9604,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeOperator",
"span": {
"start": 9605,
"end": 9612,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 9611,
"end": 9612,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9611,
"end": 9612,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 9615,
"end": 9622,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 9615,
"end": 9622,
"ctxt": 0
},
"value": "z",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9616,
"end": 9622,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 9618,
"end": 9622,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 9618,
"end": 9619,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9618,
"end": 9619,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 9620,
"end": 9621,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9620,
"end": 9621,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 9559,
"end": 9694,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 9624,
"end": 9694,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 9630,
"end": 9659,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 9634,
"end": 9658,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 9634,
"end": 9635,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9635,
"end": 9658,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 9637,
"end": 9658,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 9637,
"end": 9639,
"ctxt": 0
},
"members": []
},
{
"type": "TsKeywordType",
"span": {
"start": 9642,
"end": 9646,
"ctxt": 0
},
"kind": "null"
},
{
"type": "TsKeywordType",
"span": {
"start": 9649,
"end": 9658,
"ctxt": 0
},
"kind": "undefined"
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 9664,
"end": 9670,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9664,
"end": 9669,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 9664,
"end": 9665,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 9668,
"end": 9669,
"ctxt": 0
},
"value": "x",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 9675,
"end": 9681,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9675,
"end": 9680,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 9675,
"end": 9676,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 9679,
"end": 9680,
"ctxt": 0
},
"value": "y",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 9686,
"end": 9692,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9686,
"end": 9691,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 9686,
"end": 9687,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 9690,
"end": 9691,
"ctxt": 0
},
"value": "z",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 9571,
"end": 9593,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 9572,
"end": 9573,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 9572,
"end": 9573,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 9575,
"end": 9592,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 9575,
"end": 9576,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 9585,
"end": 9592,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 9591,
"end": 9592,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9591,
"end": 9592,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 9725,
"end": 9729,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"declare": false,
"span": {
"start": 9719,
"end": 9898,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassMethod",
"span": {
"start": 9736,
"end": 9805,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 9736,
"end": 9739,
"ctxt": 0
},
"value": "get",
"optional": false
},
"function": {
"params": [
{
"type": "Parameter",
"span": {
"start": 9762,
"end": 9769,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 9762,
"end": 9769,
"ctxt": 0
},
"value": "prop",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9766,
"end": 9769,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 9768,
"end": 9769,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9768,
"end": 9769,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 9736,
"end": 9805,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 9771,
"end": 9805,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 9781,
"end": 9799,
"ctxt": 0
},
"argument": {
"type": "MemberExpression",
"span": {
"start": 9788,
"end": 9798,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 9788,
"end": 9792,
"ctxt": 0
}
},
"property": {
"type": "Computed",
"span": {
"start": 9792,
"end": 9798,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 9793,
"end": 9797,
"ctxt": 0
},
"value": "prop",
"optional": false
}
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 9739,
"end": 9761,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 9740,
"end": 9760,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 9740,
"end": 9741,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 9750,
"end": 9760,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsThisType",
"span": {
"start": 9756,
"end": 9760,
"ctxt": 0
}
}
},
"default": null
}
]
},
"returnType": null
},
"kind": "method",
"isStatic": false,
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false
},
{
"type": "ClassMethod",
"span": {
"start": 9810,
"end": 9896,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 9810,
"end": 9813,
"ctxt": 0
},
"value": "set",
"optional": false
},
"function": {
"params": [
{
"type": "Parameter",
"span": {
"start": 9836,
"end": 9843,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 9836,
"end": 9843,
"ctxt": 0
},
"value": "prop",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9840,
"end": 9843,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 9842,
"end": 9843,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9842,
"end": 9843,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 9845,
"end": 9859,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 9845,
"end": 9859,
"ctxt": 0
},
"value": "value",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9850,
"end": 9859,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 9852,
"end": 9859,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsThisType",
"span": {
"start": 9852,
"end": 9856,
"ctxt": 0
}
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 9857,
"end": 9858,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9857,
"end": 9858,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 9810,
"end": 9896,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 9861,
"end": 9896,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 9871,
"end": 9890,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9871,
"end": 9889,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 9871,
"end": 9881,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 9871,
"end": 9875,
"ctxt": 0
}
},
"property": {
"type": "Computed",
"span": {
"start": 9875,
"end": 9881,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 9876,
"end": 9880,
"ctxt": 0
},
"value": "prop",
"optional": false
}
}
},
"right": {
"type": "Identifier",
"span": {
"start": 9884,
"end": 9889,
"ctxt": 0
},
"value": "value",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 9813,
"end": 9835,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 9814,
"end": 9834,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 9814,
"end": 9815,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 9824,
"end": 9834,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsThisType",
"span": {
"start": 9830,
"end": 9834,
"ctxt": 0
}
}
},
"default": null
}
]
},
"returnType": null
},
"kind": "method",
"isStatic": false,
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 9906,
"end": 9912,
"ctxt": 0
},
"value": "Person",
"optional": false
},
"declare": false,
"span": {
"start": 9900,
"end": 10094,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 9932,
"end": 9946,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 9932,
"end": 9937,
"ctxt": 0
},
"value": "parts",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9937,
"end": 9945,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 9939,
"end": 9945,
"ctxt": 0
},
"kind": "number"
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
},
{
"type": "Constructor",
"span": {
"start": 9951,
"end": 10036,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 9951,
"end": 9962,
"ctxt": 0
},
"value": "constructor",
"optional": false
},
"params": [
{
"type": "Parameter",
"span": {
"start": 9963,
"end": 9976,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 9963,
"end": 9976,
"ctxt": 0
},
"value": "parts",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9968,
"end": 9976,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 9970,
"end": 9976,
"ctxt": 0
},
"kind": "number"
}
}
}
}
],
"body": {
"type": "BlockStatement",
"span": {
"start": 9978,
"end": 10036,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 9988,
"end": 9996,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 9988,
"end": 9995,
"ctxt": 0
},
"callee": {
"type": "Super",
"span": {
"start": 9988,
"end": 9993,
"ctxt": 0
}
},
"arguments": [],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 10005,
"end": 10030,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 10005,
"end": 10029,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 10005,
"end": 10013,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 10005,
"end": 10009,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10010,
"end": 10013,
"ctxt": 0
},
"value": "set",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 10014,
"end": 10021,
"ctxt": 0
},
"value": "parts",
"raw": "\"parts\""
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 10023,
"end": 10028,
"ctxt": 0
},
"value": "parts",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"accessibility": null,
"isOptional": false
},
{
"type": "ClassMethod",
"span": {
"start": 10041,
"end": 10092,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 10041,
"end": 10049,
"ctxt": 0
},
"value": "getParts",
"optional": false
},
"function": {
"params": [],
"decorators": [],
"span": {
"start": 10041,
"end": 10092,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 10052,
"end": 10092,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 10062,
"end": 10086,
"ctxt": 0
},
"argument": {
"type": "CallExpression",
"span": {
"start": 10069,
"end": 10086,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 10069,
"end": 10077,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 10069,
"end": 10073,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10074,
"end": 10077,
"ctxt": 0
},
"value": "get",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 10078,
"end": 10085,
"ctxt": 0
},
"value": "parts",
"raw": "\"parts\""
}
}
],
"typeArguments": null
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
"kind": "method",
"isStatic": false,
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false
}
],
"superClass": {
"type": "Identifier",
"span": {
"start": 9921,
"end": 9925,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 10102,
"end": 10113,
"ctxt": 0
},
"value": "OtherPerson",
"optional": false
},
"declare": false,
"span": {
"start": 10096,
"end": 10283,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 10120,
"end": 10134,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 10120,
"end": 10125,
"ctxt": 0
},
"value": "parts",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10125,
"end": 10133,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 10127,
"end": 10133,
"ctxt": 0
},
"kind": "number"
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
},
{
"type": "Constructor",
"span": {
"start": 10139,
"end": 10216,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 10139,
"end": 10150,
"ctxt": 0
},
"value": "constructor",
"optional": false
},
"params": [
{
"type": "Parameter",
"span": {
"start": 10151,
"end": 10164,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 10151,
"end": 10164,
"ctxt": 0
},
"value": "parts",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10156,
"end": 10164,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 10158,
"end": 10164,
"ctxt": 0
},
"kind": "number"
}
}
}
}
],
"body": {
"type": "BlockStatement",
"span": {
"start": 10166,
"end": 10216,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 10176,
"end": 10210,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 10176,
"end": 10209,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 10176,
"end": 10187,
"ctxt": 0
},
"value": "setProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ThisExpression",
"span": {
"start": 10188,
"end": 10192,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 10194,
"end": 10201,
"ctxt": 0
},
"value": "parts",
"raw": "\"parts\""
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 10203,
"end": 10208,
"ctxt": 0
},
"value": "parts",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"accessibility": null,
"isOptional": false
},
{
"type": "ClassMethod",
"span": {
"start": 10221,
"end": 10281,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 10221,
"end": 10229,
"ctxt": 0
},
"value": "getParts",
"optional": false
},
"function": {
"params": [],
"decorators": [],
"span": {
"start": 10221,
"end": 10281,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 10232,
"end": 10281,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 10242,
"end": 10275,
"ctxt": 0
},
"argument": {
"type": "CallExpression",
"span": {
"start": 10249,
"end": 10275,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 10249,
"end": 10260,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ThisExpression",
"span": {
"start": 10261,
"end": 10265,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 10267,
"end": 10274,
"ctxt": 0
},
"value": "parts",
"raw": "\"parts\""
}
}
],
"typeArguments": null
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
"kind": "method",
"isStatic": false,
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 10325,
"end": 10329,
"ctxt": 0
},
"value": "path",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 10353,
"end": 10359,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 10353,
"end": 10359,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10356,
"end": 10359,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10358,
"end": 10359,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10358,
"end": 10359,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 10361,
"end": 10369,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 10361,
"end": 10369,
"ctxt": 0
},
"value": "key1",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10365,
"end": 10369,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10367,
"end": 10369,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10367,
"end": 10369,
"ctxt": 0
},
"value": "K1",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 10316,
"end": 10378,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 10329,
"end": 10352,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 10330,
"end": 10331,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 10330,
"end": 10331,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 10333,
"end": 10351,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 10333,
"end": 10335,
"ctxt": 0
},
"value": "K1",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 10344,
"end": 10351,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10350,
"end": 10351,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10350,
"end": 10351,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 10370,
"end": 10377,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 10372,
"end": 10377,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 10372,
"end": 10373,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10372,
"end": 10373,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 10374,
"end": 10376,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10374,
"end": 10376,
"ctxt": 0
},
"value": "K1",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 10388,
"end": 10392,
"ctxt": 0
},
"value": "path",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 10440,
"end": 10446,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 10440,
"end": 10446,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10443,
"end": 10446,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10445,
"end": 10446,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10445,
"end": 10446,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 10448,
"end": 10456,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 10448,
"end": 10456,
"ctxt": 0
},
"value": "key1",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10452,
"end": 10456,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10454,
"end": 10456,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10454,
"end": 10456,
"ctxt": 0
},
"value": "K1",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 10458,
"end": 10466,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 10458,
"end": 10466,
"ctxt": 0
},
"value": "key2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10462,
"end": 10466,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10464,
"end": 10466,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10464,
"end": 10466,
"ctxt": 0
},
"value": "K2",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 10379,
"end": 10479,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 10392,
"end": 10439,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 10393,
"end": 10394,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 10393,
"end": 10394,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 10396,
"end": 10414,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 10396,
"end": 10398,
"ctxt": 0
},
"value": "K1",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 10407,
"end": 10414,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10413,
"end": 10414,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10413,
"end": 10414,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 10416,
"end": 10438,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 10416,
"end": 10418,
"ctxt": 0
},
"value": "K2",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 10427,
"end": 10438,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 10433,
"end": 10438,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 10433,
"end": 10434,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10433,
"end": 10434,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 10435,
"end": 10437,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10435,
"end": 10437,
"ctxt": 0
},
"value": "K1",
"optional": false
},
"typeParams": null
}
}
},
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 10467,
"end": 10478,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 10469,
"end": 10478,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsIndexedAccessType",
"span": {
"start": 10469,
"end": 10474,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 10469,
"end": 10470,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10469,
"end": 10470,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 10471,
"end": 10473,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10471,
"end": 10473,
"ctxt": 0
},
"value": "K1",
"optional": false
},
"typeParams": null
}
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 10475,
"end": 10477,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10475,
"end": 10477,
"ctxt": 0
},
"value": "K2",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 10489,
"end": 10493,
"ctxt": 0
},
"value": "path",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 10569,
"end": 10575,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 10569,
"end": 10575,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10572,
"end": 10575,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10574,
"end": 10575,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10574,
"end": 10575,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 10577,
"end": 10585,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 10577,
"end": 10585,
"ctxt": 0
},
"value": "key1",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10581,
"end": 10585,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10583,
"end": 10585,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10583,
"end": 10585,
"ctxt": 0
},
"value": "K1",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 10587,
"end": 10595,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 10587,
"end": 10595,
"ctxt": 0
},
"value": "key2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10591,
"end": 10595,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10593,
"end": 10595,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10593,
"end": 10595,
"ctxt": 0
},
"value": "K2",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 10597,
"end": 10605,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 10597,
"end": 10605,
"ctxt": 0
},
"value": "key3",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10601,
"end": 10605,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10603,
"end": 10605,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10603,
"end": 10605,
"ctxt": 0
},
"value": "K3",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 10480,
"end": 10622,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 10493,
"end": 10568,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 10494,
"end": 10495,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 10494,
"end": 10495,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 10497,
"end": 10515,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 10497,
"end": 10499,
"ctxt": 0
},
"value": "K1",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 10508,
"end": 10515,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10514,
"end": 10515,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10514,
"end": 10515,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 10517,
"end": 10539,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 10517,
"end": 10519,
"ctxt": 0
},
"value": "K2",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 10528,
"end": 10539,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 10534,
"end": 10539,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 10534,
"end": 10535,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10534,
"end": 10535,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 10536,
"end": 10538,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10536,
"end": 10538,
"ctxt": 0
},
"value": "K1",
"optional": false
},
"typeParams": null
}
}
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 10541,
"end": 10567,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 10541,
"end": 10543,
"ctxt": 0
},
"value": "K3",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 10552,
"end": 10567,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 10558,
"end": 10567,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsIndexedAccessType",
"span": {
"start": 10558,
"end": 10563,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 10558,
"end": 10559,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10558,
"end": 10559,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 10560,
"end": 10562,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10560,
"end": 10562,
"ctxt": 0
},
"value": "K1",
"optional": false
},
"typeParams": null
}
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 10564,
"end": 10566,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10564,
"end": 10566,
"ctxt": 0
},
"value": "K2",
"optional": false
},
"typeParams": null
}
}
},
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 10606,
"end": 10621,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 10608,
"end": 10621,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsIndexedAccessType",
"span": {
"start": 10608,
"end": 10617,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsIndexedAccessType",
"span": {
"start": 10608,
"end": 10613,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 10608,
"end": 10609,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10608,
"end": 10609,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 10610,
"end": 10612,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10610,
"end": 10612,
"ctxt": 0
},
"value": "K1",
"optional": false
},
"typeParams": null
}
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 10614,
"end": 10616,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10614,
"end": 10616,
"ctxt": 0
},
"value": "K2",
"optional": false
},
"typeParams": null
}
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 10618,
"end": 10620,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10618,
"end": 10620,
"ctxt": 0
},
"value": "K3",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 10632,
"end": 10636,
"ctxt": 0
},
"value": "path",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 10637,
"end": 10645,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 10637,
"end": 10645,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10640,
"end": 10645,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 10642,
"end": 10645,
"ctxt": 0
},
"kind": "any"
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 10647,
"end": 10675,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "RestElement",
"span": {
"start": 10647,
"end": 10675,
"ctxt": 0
},
"rest": {
"start": 10647,
"end": 10650,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 10650,
"end": 10654,
"ctxt": 0
},
"value": "keys",
"optional": false,
"typeAnnotation": null
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10654,
"end": 10675,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 10656,
"end": 10675,
"ctxt": 0
},
"elemType": {
"type": "TsParenthesizedType",
"span": {
"start": 10656,
"end": 10673,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 10657,
"end": 10672,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 10657,
"end": 10663,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 10666,
"end": 10672,
"ctxt": 0
},
"kind": "number"
}
]
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 10623,
"end": 10682,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 10676,
"end": 10681,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 10678,
"end": 10681,
"ctxt": 0
},
"kind": "any"
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 10692,
"end": 10696,
"ctxt": 0
},
"value": "path",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 10697,
"end": 10705,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 10697,
"end": 10705,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10700,
"end": 10705,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 10702,
"end": 10705,
"ctxt": 0
},
"kind": "any"
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 10707,
"end": 10735,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "RestElement",
"span": {
"start": 10707,
"end": 10735,
"ctxt": 0
},
"rest": {
"start": 10707,
"end": 10710,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 10710,
"end": 10714,
"ctxt": 0
},
"value": "keys",
"optional": false,
"typeAnnotation": null
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10714,
"end": 10735,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 10716,
"end": 10735,
"ctxt": 0
},
"elemType": {
"type": "TsParenthesizedType",
"span": {
"start": 10716,
"end": 10733,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 10717,
"end": 10732,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 10717,
"end": 10723,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 10726,
"end": 10732,
"ctxt": 0
},
"kind": "number"
}
]
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 10683,
"end": 10846,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 10742,
"end": 10846,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 10748,
"end": 10765,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 10752,
"end": 10764,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 10752,
"end": 10758,
"ctxt": 0
},
"value": "result",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "Identifier",
"span": {
"start": 10761,
"end": 10764,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"definite": false
}
]
},
{
"type": "ForOfStatement",
"span": {
"start": 10770,
"end": 10825,
"ctxt": 0
},
"await": null,
"left": {
"type": "VariableDeclaration",
"span": {
"start": 10775,
"end": 10780,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 10779,
"end": 10780,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 10779,
"end": 10780,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": null
},
"init": null,
"definite": false
}
]
},
"right": {
"type": "Identifier",
"span": {
"start": 10784,
"end": 10788,
"ctxt": 0
},
"value": "keys",
"optional": false
},
"body": {
"type": "BlockStatement",
"span": {
"start": 10790,
"end": 10825,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 10800,
"end": 10819,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 10800,
"end": 10818,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 10800,
"end": 10806,
"ctxt": 0
},
"value": "result",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 10809,
"end": 10818,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10809,
"end": 10815,
"ctxt": 0
},
"value": "result",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 10815,
"end": 10818,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 10816,
"end": 10817,
"ctxt": 0
},
"value": "k",
"optional": false
}
}
}
}
}
]
}
},
{
"type": "ReturnStatement",
"span": {
"start": 10830,
"end": 10844,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 10837,
"end": 10843,
"ctxt": 0
},
"value": "result",
"optional": false
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 10736,
"end": 10741,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 10738,
"end": 10741,
"ctxt": 0
},
"kind": "any"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 10848,
"end": 10913,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 10853,
"end": 10858,
"ctxt": 0
},
"value": "Thing",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 10861,
"end": 10912,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 10867,
"end": 10895,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 10867,
"end": 10868,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10868,
"end": 10894,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 10870,
"end": 10894,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 10872,
"end": 10882,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 10872,
"end": 10873,
"ctxt": 0
},
"value": "x",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10873,
"end": 10881,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 10875,
"end": 10881,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 10883,
"end": 10892,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 10883,
"end": 10884,
"ctxt": 0
},
"value": "y",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10884,
"end": 10892,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 10886,
"end": 10892,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 10900,
"end": 10910,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 10900,
"end": 10901,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10901,
"end": 10910,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 10903,
"end": 10910,
"ctxt": 0
},
"kind": "boolean"
}
},
"typeParams": null
}
]
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 10925,
"end": 10927,
"ctxt": 0
},
"value": "f1",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 10928,
"end": 10940,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 10928,
"end": 10940,
"ctxt": 0
},
"value": "thing",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 10933,
"end": 10940,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10935,
"end": 10940,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10935,
"end": 10940,
"ctxt": 0
},
"value": "Thing",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 10916,
"end": 11144,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 10942,
"end": 11144,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 10948,
"end": 10974,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 10952,
"end": 10973,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 10952,
"end": 10954,
"ctxt": 0
},
"value": "x1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 10957,
"end": 10973,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 10957,
"end": 10961,
"ctxt": 0
},
"value": "path",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 10962,
"end": 10967,
"ctxt": 0
},
"value": "thing",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 10969,
"end": 10972,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 11008,
"end": 11039,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 11012,
"end": 11038,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 11012,
"end": 11014,
"ctxt": 0
},
"value": "x2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 11017,
"end": 11038,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 11017,
"end": 11021,
"ctxt": 0
},
"value": "path",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 11022,
"end": 11027,
"ctxt": 0
},
"value": "thing",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 11029,
"end": 11032,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 11034,
"end": 11037,
"ctxt": 0
},
"value": "y",
"raw": "'y'"
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 11055,
"end": 11081,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 11059,
"end": 11080,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 11059,
"end": 11061,
"ctxt": 0
},
"value": "x3",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 11064,
"end": 11080,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 11064,
"end": 11068,
"ctxt": 0
},
"value": "path",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 11069,
"end": 11074,
"ctxt": 0
},
"value": "thing",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 11076,
"end": 11079,
"ctxt": 0
},
"value": "b",
"raw": "'b'"
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 11098,
"end": 11134,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 11102,
"end": 11133,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 11102,
"end": 11104,
"ctxt": 0
},
"value": "x4",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 11107,
"end": 11133,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 11107,
"end": 11111,
"ctxt": 0
},
"value": "path",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 11112,
"end": 11117,
"ctxt": 0
},
"value": "thing",
"optional": false
}
},
{
"spread": {
"start": 11119,
"end": 11122,
"ctxt": 0
},
"expression": {
"type": "ArrayExpression",
"span": {
"start": 11122,
"end": 11132,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 11123,
"end": 11126,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 11128,
"end": 11131,
"ctxt": 0
},
"value": "x",
"raw": "'x'"
}
}
]
}
}
],
"typeArguments": null
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "VariableDeclaration",
"span": {
"start": 11179,
"end": 11332,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 11185,
"end": 11331,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 11185,
"end": 11194,
"ctxt": 0
},
"value": "assignTo2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 11197,
"end": 11331,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 11245,
"end": 11254,
"ctxt": 0
},
"value": "object",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 11251,
"end": 11254,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 11253,
"end": 11254,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11253,
"end": 11254,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 11256,
"end": 11264,
"ctxt": 0
},
"value": "key1",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 11260,
"end": 11264,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 11262,
"end": 11264,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11262,
"end": 11264,
"ctxt": 0
},
"value": "K1",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 11266,
"end": 11274,
"ctxt": 0
},
"value": "key2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 11270,
"end": 11274,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 11272,
"end": 11274,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11272,
"end": 11274,
"ctxt": 0
},
"value": "K2",
"optional": false
},
"typeParams": null
}
}
}
],
"body": {
"type": "ArrowFunctionExpression",
"span": {
"start": 11283,
"end": 11331,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 11284,
"end": 11300,
"ctxt": 0
},
"value": "value",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 11289,
"end": 11300,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 11291,
"end": 11300,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsIndexedAccessType",
"span": {
"start": 11291,
"end": 11296,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 11291,
"end": 11292,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11291,
"end": 11292,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 11293,
"end": 11295,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11293,
"end": 11295,
"ctxt": 0
},
"value": "K1",
"optional": false
},
"typeParams": null
}
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 11297,
"end": 11299,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11297,
"end": 11299,
"ctxt": 0
},
"value": "K2",
"optional": false
},
"typeParams": null
}
}
}
}
],
"body": {
"type": "AssignmentExpression",
"span": {
"start": 11305,
"end": 11331,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 11305,
"end": 11323,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 11305,
"end": 11317,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 11305,
"end": 11311,
"ctxt": 0
},
"value": "object",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 11311,
"end": 11317,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 11312,
"end": 11316,
"ctxt": 0
},
"value": "key1",
"optional": false
}
}
},
"property": {
"type": "Computed",
"span": {
"start": 11317,
"end": 11323,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 11318,
"end": 11322,
"ctxt": 0
},
"value": "key2",
"optional": false
}
}
},
"right": {
"type": "Identifier",
"span": {
"start": 11326,
"end": 11331,
"ctxt": 0
},
"value": "value",
"optional": false
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 11197,
"end": 11244,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 11198,
"end": 11199,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 11198,
"end": 11199,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 11201,
"end": 11219,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 11201,
"end": 11203,
"ctxt": 0
},
"value": "K1",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 11212,
"end": 11219,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 11218,
"end": 11219,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11218,
"end": 11219,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 11221,
"end": 11243,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 11221,
"end": 11223,
"ctxt": 0
},
"value": "K2",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 11232,
"end": 11243,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 11238,
"end": 11243,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 11238,
"end": 11239,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11238,
"end": 11239,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 11240,
"end": 11242,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11240,
"end": 11242,
"ctxt": 0
},
"value": "K1",
"optional": false
},
"typeParams": null
}
}
},
"default": null
}
]
},
"returnType": null
},
"definite": false
}
]
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 11382,
"end": 11385,
"ctxt": 0
},
"value": "one",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 11389,
"end": 11412,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 11389,
"end": 11412,
"ctxt": 0
},
"value": "handler",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 11396,
"end": 11412,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 11398,
"end": 11412,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 11399,
"end": 11403,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 11400,
"end": 11403,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 11402,
"end": 11403,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11402,
"end": 11403,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 11405,
"end": 11412,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 11408,
"end": 11412,
"ctxt": 0
},
"kind": "void"
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 11365,
"end": 11416,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 11385,
"end": 11388,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 11386,
"end": 11387,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 11386,
"end": 11387,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 11413,
"end": 11416,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 11415,
"end": 11416,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11415,
"end": 11416,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 11417,
"end": 11442,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 11421,
"end": 11442,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 11421,
"end": 11426,
"ctxt": 0
},
"value": "empty",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 11429,
"end": 11442,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 11429,
"end": 11432,
"ctxt": 0
},
"value": "one",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 11433,
"end": 11441,
"ctxt": 0
},
"params": [],
"body": {
"type": "BlockStatement",
"span": {
"start": 11439,
"end": 11441,
"ctxt": 0
},
"stmts": []
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 11472,
"end": 11528,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 11477,
"end": 11485,
"ctxt": 0
},
"value": "Handlers",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 11485,
"end": 11488,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 11486,
"end": 11487,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 11486,
"end": 11487,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsMappedType",
"span": {
"start": 11491,
"end": 11528,
"ctxt": 0
},
"readonly": null,
"typeParam": {
"type": "TsTypeParameter",
"span": {
"start": 11494,
"end": 11506,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 11494,
"end": 11495,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 11499,
"end": 11506,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 11505,
"end": 11506,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11505,
"end": 11506,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
},
"nameType": null,
"optional": null,
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 11509,
"end": 11526,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 11510,
"end": 11517,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 11511,
"end": 11517,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 11513,
"end": 11517,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 11513,
"end": 11514,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11513,
"end": 11514,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 11515,
"end": 11516,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11515,
"end": 11516,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 11519,
"end": 11526,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 11522,
"end": 11526,
"ctxt": 0
},
"kind": "void"
}
}
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 11546,
"end": 11548,
"ctxt": 0
},
"value": "on",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 11552,
"end": 11576,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 11552,
"end": 11576,
"ctxt": 0
},
"value": "handlerHash",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 11563,
"end": 11576,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 11565,
"end": 11576,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11565,
"end": 11573,
"ctxt": 0
},
"value": "Handlers",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 11573,
"end": 11576,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 11574,
"end": 11575,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11574,
"end": 11575,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 11529,
"end": 11580,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 11548,
"end": 11551,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 11549,
"end": 11550,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 11549,
"end": 11550,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 11577,
"end": 11580,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 11579,
"end": 11580,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11579,
"end": 11580,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 11581,
"end": 11623,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 11585,
"end": 11622,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 11585,
"end": 11597,
"ctxt": 0
},
"value": "hashOfEmpty1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 11600,
"end": 11622,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 11600,
"end": 11602,
"ctxt": 0
},
"value": "on",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 11603,
"end": 11621,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 11605,
"end": 11609,
"ctxt": 0
},
"value": "test",
"optional": false
},
"value": {
"type": "ArrowFunctionExpression",
"span": {
"start": 11611,
"end": 11619,
"ctxt": 0
},
"params": [],
"body": {
"type": "BlockStatement",
"span": {
"start": 11617,
"end": 11619,
"ctxt": 0
},
"stmts": []
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 11631,
"end": 11683,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 11635,
"end": 11682,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 11635,
"end": 11647,
"ctxt": 0
},
"value": "hashOfEmpty2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 11650,
"end": 11682,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 11650,
"end": 11652,
"ctxt": 0
},
"value": "on",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 11653,
"end": 11681,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 11655,
"end": 11659,
"ctxt": 0
},
"value": "test",
"optional": false
},
"value": {
"type": "ArrowFunctionExpression",
"span": {
"start": 11661,
"end": 11679,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 11662,
"end": 11672,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 11663,
"end": 11672,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 11665,
"end": 11672,
"ctxt": 0
},
"kind": "boolean"
}
}
}
],
"body": {
"type": "BlockStatement",
"span": {
"start": 11677,
"end": 11679,
"ctxt": 0
},
"stmts": []
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 11729,
"end": 11808,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 11739,
"end": 11747,
"ctxt": 0
},
"value": "Options1",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 11747,
"end": 11763,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 11748,
"end": 11752,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 11748,
"end": 11752,
"ctxt": 0
},
"value": "Data",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 11754,
"end": 11762,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 11754,
"end": 11762,
"ctxt": 0
},
"value": "Computed",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 11764,
"end": 11808,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 11770,
"end": 11781,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 11770,
"end": 11774,
"ctxt": 0
},
"value": "data",
"optional": false
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 11775,
"end": 11781,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 11777,
"end": 11781,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11777,
"end": 11781,
"ctxt": 0
},
"value": "Data",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 11786,
"end": 11806,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 11786,
"end": 11794,
"ctxt": 0
},
"value": "computed",
"optional": false
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 11795,
"end": 11805,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 11797,
"end": 11805,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11797,
"end": 11805,
"ctxt": 0
},
"value": "Computed",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 11824,
"end": 11834,
"ctxt": 0
},
"value": "Component1",
"optional": false
},
"declare": true,
"span": {
"start": 11810,
"end": 11980,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "Constructor",
"span": {
"start": 11857,
"end": 11904,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 11857,
"end": 11868,
"ctxt": 0
},
"value": "constructor",
"optional": false
},
"params": [
{
"type": "Parameter",
"span": {
"start": 11869,
"end": 11902,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 11869,
"end": 11902,
"ctxt": 0
},
"value": "options",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 11876,
"end": 11902,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 11878,
"end": 11902,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11878,
"end": 11886,
"ctxt": 0
},
"value": "Options1",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 11886,
"end": 11902,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 11887,
"end": 11891,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11887,
"end": 11891,
"ctxt": 0
},
"value": "Data",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 11893,
"end": 11901,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11893,
"end": 11901,
"ctxt": 0
},
"value": "Computed",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
}
],
"body": null,
"accessibility": null,
"isOptional": false
},
{
"type": "ClassMethod",
"span": {
"start": 11909,
"end": 11978,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 11909,
"end": 11912,
"ctxt": 0
},
"value": "get",
"optional": false
},
"function": {
"params": [
{
"type": "Parameter",
"span": {
"start": 11948,
"end": 11954,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 11948,
"end": 11954,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 11951,
"end": 11954,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 11953,
"end": 11954,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11953,
"end": 11954,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 11909,
"end": 11978,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 11912,
"end": 11947,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 11913,
"end": 11946,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 11913,
"end": 11914,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 11923,
"end": 11946,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsParenthesizedType",
"span": {
"start": 11929,
"end": 11946,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 11930,
"end": 11945,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 11930,
"end": 11934,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11930,
"end": 11934,
"ctxt": 0
},
"value": "Data",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 11937,
"end": 11945,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11937,
"end": 11945,
"ctxt": 0
},
"value": "Computed",
"optional": false
},
"typeParams": null
}
]
}
}
},
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 11955,
"end": 11977,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 11957,
"end": 11977,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsParenthesizedType",
"span": {
"start": 11957,
"end": 11974,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 11958,
"end": 11973,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 11958,
"end": 11962,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11958,
"end": 11962,
"ctxt": 0
},
"value": "Data",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 11965,
"end": 11973,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11965,
"end": 11973,
"ctxt": 0
},
"value": "Computed",
"optional": false
},
"typeParams": null
}
]
}
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 11975,
"end": 11976,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 11975,
"end": 11976,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
},
"kind": "method",
"isStatic": false,
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 11834,
"end": 11850,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 11835,
"end": 11839,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 11835,
"end": 11839,
"ctxt": 0
},
"value": "Data",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 11841,
"end": 11849,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 11841,
"end": 11849,
"ctxt": 0
},
"value": "Computed",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"superTypeParams": null,
"implements": []
},
{
"type": "VariableDeclaration",
"span": {
"start": 11982,
"end": 12047,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 11986,
"end": 12046,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 11986,
"end": 11988,
"ctxt": 0
},
"value": "c1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 11991,
"end": 12046,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 11995,
"end": 12005,
"ctxt": 0
},
"value": "Component1",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 12006,
"end": 12045,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 12012,
"end": 12016,
"ctxt": 0
},
"value": "data",
"optional": false
},
"value": {
"type": "ObjectExpression",
"span": {
"start": 12018,
"end": 12043,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 12028,
"end": 12033,
"ctxt": 0
},
"value": "hello",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 12035,
"end": 12037,
"ctxt": 0
},
"value": "",
"raw": "\"\""
}
}
]
}
}
]
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 12049,
"end": 12065,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 12049,
"end": 12064,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 12049,
"end": 12055,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12049,
"end": 12051,
"ctxt": 0
},
"value": "c1",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12052,
"end": 12055,
"ctxt": 0
},
"value": "get",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 12056,
"end": 12063,
"ctxt": 0
},
"value": "hello",
"raw": "\"hello\""
}
}
],
"typeArguments": null
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 12089,
"end": 12168,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 12099,
"end": 12107,
"ctxt": 0
},
"value": "Options2",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 12107,
"end": 12123,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 12108,
"end": 12112,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 12108,
"end": 12112,
"ctxt": 0
},
"value": "Data",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 12114,
"end": 12122,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 12114,
"end": 12122,
"ctxt": 0
},
"value": "Computed",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 12124,
"end": 12168,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 12130,
"end": 12141,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 12130,
"end": 12134,
"ctxt": 0
},
"value": "data",
"optional": false
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 12135,
"end": 12141,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 12137,
"end": 12141,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12137,
"end": 12141,
"ctxt": 0
},
"value": "Data",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 12146,
"end": 12166,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 12146,
"end": 12154,
"ctxt": 0
},
"value": "computed",
"optional": false
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 12155,
"end": 12165,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 12157,
"end": 12165,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12157,
"end": 12165,
"ctxt": 0
},
"value": "Computed",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 12184,
"end": 12194,
"ctxt": 0
},
"value": "Component2",
"optional": false
},
"declare": true,
"span": {
"start": 12170,
"end": 12344,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "Constructor",
"span": {
"start": 12217,
"end": 12264,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 12217,
"end": 12228,
"ctxt": 0
},
"value": "constructor",
"optional": false
},
"params": [
{
"type": "Parameter",
"span": {
"start": 12229,
"end": 12262,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 12229,
"end": 12262,
"ctxt": 0
},
"value": "options",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 12236,
"end": 12262,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 12238,
"end": 12262,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12238,
"end": 12246,
"ctxt": 0
},
"value": "Options2",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 12246,
"end": 12262,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 12247,
"end": 12251,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12247,
"end": 12251,
"ctxt": 0
},
"value": "Data",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 12253,
"end": 12261,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12253,
"end": 12261,
"ctxt": 0
},
"value": "Computed",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
}
],
"body": null,
"accessibility": null,
"isOptional": false
},
{
"type": "ClassMethod",
"span": {
"start": 12269,
"end": 12342,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 12269,
"end": 12272,
"ctxt": 0
},
"value": "get",
"optional": false
},
"function": {
"params": [
{
"type": "Parameter",
"span": {
"start": 12312,
"end": 12318,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 12312,
"end": 12318,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 12315,
"end": 12318,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 12317,
"end": 12318,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12317,
"end": 12318,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 12269,
"end": 12342,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 12272,
"end": 12311,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 12273,
"end": 12310,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 12273,
"end": 12274,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsUnionType",
"span": {
"start": 12283,
"end": 12310,
"ctxt": 0
},
"types": [
{
"type": "TsTypeOperator",
"span": {
"start": 12283,
"end": 12293,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 12289,
"end": 12293,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12289,
"end": 12293,
"ctxt": 0
},
"value": "Data",
"optional": false
},
"typeParams": null
}
},
{
"type": "TsTypeOperator",
"span": {
"start": 12296,
"end": 12310,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 12302,
"end": 12310,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12302,
"end": 12310,
"ctxt": 0
},
"value": "Computed",
"optional": false
},
"typeParams": null
}
}
]
},
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 12319,
"end": 12341,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 12321,
"end": 12341,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsParenthesizedType",
"span": {
"start": 12321,
"end": 12338,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 12322,
"end": 12337,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 12322,
"end": 12326,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12322,
"end": 12326,
"ctxt": 0
},
"value": "Data",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 12329,
"end": 12337,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12329,
"end": 12337,
"ctxt": 0
},
"value": "Computed",
"optional": false
},
"typeParams": null
}
]
}
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 12339,
"end": 12340,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12339,
"end": 12340,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
},
"kind": "method",
"isStatic": false,
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 12194,
"end": 12210,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 12195,
"end": 12199,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 12195,
"end": 12199,
"ctxt": 0
},
"value": "Data",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 12201,
"end": 12209,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 12201,
"end": 12209,
"ctxt": 0
},
"value": "Computed",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"superTypeParams": null,
"implements": []
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 12368,
"end": 12398,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 12378,
"end": 12379,
"ctxt": 0
},
"value": "R",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 12380,
"end": 12398,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 12386,
"end": 12396,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 12386,
"end": 12387,
"ctxt": 0
},
"value": "p",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 12387,
"end": 12395,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 12389,
"end": 12395,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 12409,
"end": 12410,
"ctxt": 0
},
"value": "f",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 12430,
"end": 12434,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 12430,
"end": 12434,
"ctxt": 0
},
"value": "p",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 12431,
"end": 12434,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 12433,
"end": 12434,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12433,
"end": 12434,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 12400,
"end": 12477,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 12436,
"end": 12477,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 12442,
"end": 12453,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 12446,
"end": 12452,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 12446,
"end": 12447,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 12447,
"end": 12452,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 12449,
"end": 12452,
"ctxt": 0
},
"kind": "any"
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 12458,
"end": 12467,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 12458,
"end": 12466,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 12458,
"end": 12462,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12458,
"end": 12459,
"ctxt": 0
},
"value": "a",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 12459,
"end": 12462,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 12460,
"end": 12461,
"ctxt": 0
},
"value": "p",
"optional": false
}
}
},
"property": {
"type": "Identifier",
"span": {
"start": 12463,
"end": 12466,
"ctxt": 0
},
"value": "add",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 12410,
"end": 12429,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 12411,
"end": 12428,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 12411,
"end": 12412,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 12421,
"end": 12428,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 12427,
"end": 12428,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12427,
"end": 12428,
"ctxt": 0
},
"value": "R",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 12501,
"end": 12576,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 12506,
"end": 12522,
"ctxt": 0
},
"value": "MethodDescriptor",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 12525,
"end": 12576,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 12528,
"end": 12541,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 12528,
"end": 12532,
"ctxt": 0
},
"value": "name",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 12532,
"end": 12540,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 12534,
"end": 12540,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 12543,
"end": 12555,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 12543,
"end": 12547,
"ctxt": 0
},
"value": "args",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 12547,
"end": 12554,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 12549,
"end": 12554,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 12549,
"end": 12552,
"ctxt": 0
},
"kind": "any"
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 12557,
"end": 12574,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 12557,
"end": 12568,
"ctxt": 0
},
"value": "returnValue",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 12568,
"end": 12573,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 12570,
"end": 12573,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
}
]
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 12595,
"end": 12609,
"ctxt": 0
},
"value": "dispatchMethod",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 12638,
"end": 12653,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 12638,
"end": 12653,
"ctxt": 0
},
"value": "name",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 12642,
"end": 12653,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 12644,
"end": 12653,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 12644,
"end": 12645,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12644,
"end": 12645,
"ctxt": 0
},
"value": "M",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 12646,
"end": 12652,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 12646,
"end": 12652,
"ctxt": 0
},
"value": "name",
"raw": "'name'"
}
}
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 12655,
"end": 12670,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 12655,
"end": 12670,
"ctxt": 0
},
"value": "args",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 12659,
"end": 12670,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 12661,
"end": 12670,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 12661,
"end": 12662,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12661,
"end": 12662,
"ctxt": 0
},
"value": "M",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 12663,
"end": 12669,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 12663,
"end": 12669,
"ctxt": 0
},
"value": "args",
"raw": "'args'"
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 12578,
"end": 12690,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 12609,
"end": 12637,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 12610,
"end": 12636,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 12610,
"end": 12611,
"ctxt": 0
},
"value": "M",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 12620,
"end": 12636,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12620,
"end": 12636,
"ctxt": 0
},
"value": "MethodDescriptor",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 12671,
"end": 12689,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 12673,
"end": 12689,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 12673,
"end": 12674,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12673,
"end": 12674,
"ctxt": 0
},
"value": "M",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 12675,
"end": 12688,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 12675,
"end": 12688,
"ctxt": 0
},
"value": "returnValue",
"raw": "'returnValue'"
}
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 12692,
"end": 12793,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 12697,
"end": 12717,
"ctxt": 0
},
"value": "SomeMethodDescriptor",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 12720,
"end": 12793,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 12723,
"end": 12742,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 12723,
"end": 12727,
"ctxt": 0
},
"value": "name",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 12727,
"end": 12741,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 12729,
"end": 12741,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 12729,
"end": 12741,
"ctxt": 0
},
"value": "someMethod",
"raw": "\"someMethod\""
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 12744,
"end": 12767,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 12744,
"end": 12748,
"ctxt": 0
},
"value": "args",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 12748,
"end": 12766,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTupleType",
"span": {
"start": 12750,
"end": 12766,
"ctxt": 0
},
"elemTypes": [
{
"type": "TsTupleElement",
"span": {
"start": 12751,
"end": 12757,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 12751,
"end": 12757,
"ctxt": 0
},
"kind": "string"
}
},
{
"type": "TsTupleElement",
"span": {
"start": 12759,
"end": 12765,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsKeywordType",
"span": {
"start": 12759,
"end": 12765,
"ctxt": 0
},
"kind": "number"
}
}
]
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 12769,
"end": 12791,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 12769,
"end": 12780,
"ctxt": 0
},
"value": "returnValue",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 12780,
"end": 12790,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 12782,
"end": 12790,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 12782,
"end": 12788,
"ctxt": 0
},
"kind": "string"
}
}
},
"typeParams": null
}
]
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 12795,
"end": 12874,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 12799,
"end": 12873,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 12799,
"end": 12805,
"ctxt": 0
},
"value": "result",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 12808,
"end": 12873,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 12808,
"end": 12822,
"ctxt": 0
},
"value": "dispatchMethod",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 12845,
"end": 12857,
"ctxt": 0
},
"value": "someMethod",
"raw": "\"someMethod\""
}
},
{
"spread": null,
"expression": {
"type": "ArrayExpression",
"span": {
"start": 12859,
"end": 12872,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 12860,
"end": 12867,
"ctxt": 0
},
"value": "hello",
"raw": "\"hello\""
}
},
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 12869,
"end": 12871,
"ctxt": 0
},
"value": 35.0,
"raw": "35"
}
}
]
}
}
],
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 12822,
"end": 12844,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 12823,
"end": 12843,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12823,
"end": 12843,
"ctxt": 0
},
"value": "SomeMethodDescriptor",
"optional": false
},
"typeParams": null
}
]
}
},
"definite": false
}
]
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 12898,
"end": 12923,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 12903,
"end": 12911,
"ctxt": 0
},
"value": "KeyTypes",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 12914,
"end": 12923,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 12914,
"end": 12917,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 12914,
"end": 12917,
"ctxt": 0
},
"value": "a",
"raw": "\"a\""
}
},
{
"type": "TsLiteralType",
"span": {
"start": 12920,
"end": 12923,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 12920,
"end": 12923,
"ctxt": 0
},
"value": "b",
"raw": "\"b\""
}
}
]
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 12924,
"end": 12970,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 12928,
"end": 12969,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 12928,
"end": 12936,
"ctxt": 0
},
"value": "MyThingy",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 12936,
"end": 12969,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsMappedType",
"span": {
"start": 12938,
"end": 12969,
"ctxt": 0
},
"readonly": null,
"typeParam": {
"type": "TsTypeParameter",
"span": {
"start": 12941,
"end": 12956,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 12941,
"end": 12944,
"ctxt": 0
},
"value": "key",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 12948,
"end": 12956,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 12948,
"end": 12956,
"ctxt": 0
},
"value": "KeyTypes",
"optional": false
},
"typeParams": null
},
"default": null
},
"nameType": null,
"optional": null,
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 12959,
"end": 12967,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 12959,
"end": 12965,
"ctxt": 0
},
"kind": "string"
}
}
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 12981,
"end": 12994,
"ctxt": 0
},
"value": "addToMyThingy",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 13015,
"end": 13021,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 13015,
"end": 13021,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13018,
"end": 13021,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 13020,
"end": 13021,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13020,
"end": 13021,
"ctxt": 0
},
"value": "S",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 12972,
"end": 13055,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 13023,
"end": 13055,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 13029,
"end": 13053,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 13029,
"end": 13052,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 13029,
"end": 13047,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 13029,
"end": 13042,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 13029,
"end": 13037,
"ctxt": 0
},
"value": "MyThingy",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 13037,
"end": 13042,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 13038,
"end": 13041,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
},
"property": {
"type": "Identifier",
"span": {
"start": 13043,
"end": 13047,
"ctxt": 0
},
"value": "push",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 13048,
"end": 13051,
"ctxt": 0
},
"value": "a",
"raw": "\"a\""
}
}
],
"typeArguments": null
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 12994,
"end": 13014,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 12995,
"end": 13013,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 12995,
"end": 12996,
"ctxt": 0
},
"value": "S",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 13005,
"end": 13013,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13005,
"end": 13013,
"ctxt": 0
},
"value": "KeyTypes",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"returnType": null
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 13079,
"end": 13140,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 13084,
"end": 13091,
"ctxt": 0
},
"value": "Handler",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 13091,
"end": 13094,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 13092,
"end": 13093,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 13092,
"end": 13093,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 13097,
"end": 13139,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 13103,
"end": 13137,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 13103,
"end": 13111,
"ctxt": 0
},
"value": "onChange",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13111,
"end": 13136,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 13113,
"end": 13136,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 13114,
"end": 13127,
"ctxt": 0
},
"value": "name",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13118,
"end": 13127,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 13120,
"end": 13127,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 13126,
"end": 13127,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13126,
"end": 13127,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13129,
"end": 13136,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 13132,
"end": 13136,
"ctxt": 0
},
"kind": "void"
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 13151,
"end": 13174,
"ctxt": 0
},
"value": "onChangeGenericFunction",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 13178,
"end": 13216,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 13178,
"end": 13216,
"ctxt": 0
},
"value": "handler",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13185,
"end": 13216,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 13187,
"end": 13216,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13187,
"end": 13194,
"ctxt": 0
},
"value": "Handler",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 13194,
"end": 13216,
"ctxt": 0
},
"params": [
{
"type": "TsIntersectionType",
"span": {
"start": 13195,
"end": 13215,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 13195,
"end": 13196,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13195,
"end": 13196,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeLiteral",
"span": {
"start": 13199,
"end": 13215,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 13200,
"end": 13214,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 13200,
"end": 13206,
"ctxt": 0
},
"value": "preset",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13206,
"end": 13214,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 13208,
"end": 13214,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
]
}
]
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 13142,
"end": 13252,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 13218,
"end": 13252,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 13224,
"end": 13250,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 13224,
"end": 13250,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 13224,
"end": 13240,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 13224,
"end": 13231,
"ctxt": 0
},
"value": "handler",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 13232,
"end": 13240,
"ctxt": 0
},
"value": "onChange",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 13241,
"end": 13249,
"ctxt": 0
},
"value": "preset",
"raw": "'preset'"
}
}
],
"typeArguments": null
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 13174,
"end": 13177,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 13175,
"end": 13176,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 13175,
"end": 13176,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 13285,
"end": 13294,
"ctxt": 0
},
"value": "updateIds",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 13347,
"end": 13353,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 13347,
"end": 13353,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13350,
"end": 13353,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 13352,
"end": 13353,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13352,
"end": 13353,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 13359,
"end": 13372,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 13359,
"end": 13372,
"ctxt": 0
},
"value": "idFields",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13367,
"end": 13372,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 13369,
"end": 13372,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 13369,
"end": 13370,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13369,
"end": 13370,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 13378,
"end": 13416,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 13378,
"end": 13416,
"ctxt": 0
},
"value": "idMapping",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13387,
"end": 13416,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 13389,
"end": 13416,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13389,
"end": 13396,
"ctxt": 0
},
"value": "Partial",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 13396,
"end": 13416,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 13397,
"end": 13415,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13397,
"end": 13403,
"ctxt": 0
},
"value": "Record",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 13403,
"end": 13415,
"ctxt": 0
},
"params": [
{
"type": "TsIndexedAccessType",
"span": {
"start": 13404,
"end": 13408,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 13404,
"end": 13405,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13404,
"end": 13405,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 13406,
"end": 13407,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13406,
"end": 13407,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
},
{
"type": "TsIndexedAccessType",
"span": {
"start": 13410,
"end": 13414,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 13410,
"end": 13411,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13410,
"end": 13411,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 13412,
"end": 13413,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13412,
"end": 13413,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
]
}
}
]
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 13276,
"end": 13631,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 13438,
"end": 13631,
"ctxt": 0
},
"stmts": [
{
"type": "ForOfStatement",
"span": {
"start": 13444,
"end": 13613,
"ctxt": 0
},
"await": null,
"left": {
"type": "VariableDeclaration",
"span": {
"start": 13449,
"end": 13462,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13455,
"end": 13462,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13455,
"end": 13462,
"ctxt": 0
},
"value": "idField",
"optional": false,
"typeAnnotation": null
},
"init": null,
"definite": false
}
]
},
"right": {
"type": "Identifier",
"span": {
"start": 13466,
"end": 13474,
"ctxt": 0
},
"value": "idFields",
"optional": false
},
"body": {
"type": "BlockStatement",
"span": {
"start": 13476,
"end": 13613,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 13486,
"end": 13542,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13492,
"end": 13541,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13492,
"end": 13497,
"ctxt": 0
},
"value": "newId",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13497,
"end": 13515,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 13499,
"end": 13515,
"ctxt": 0
},
"types": [
{
"type": "TsIndexedAccessType",
"span": {
"start": 13499,
"end": 13503,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 13499,
"end": 13500,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13499,
"end": 13500,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 13501,
"end": 13502,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13501,
"end": 13502,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
},
{
"type": "TsKeywordType",
"span": {
"start": 13506,
"end": 13515,
"ctxt": 0
},
"kind": "undefined"
}
]
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 13518,
"end": 13541,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 13518,
"end": 13527,
"ctxt": 0
},
"value": "idMapping",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 13527,
"end": 13541,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 13528,
"end": 13540,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 13528,
"end": 13531,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 13531,
"end": 13540,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 13532,
"end": 13539,
"ctxt": 0
},
"value": "idField",
"optional": false
}
}
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 13551,
"end": 13607,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 13555,
"end": 13560,
"ctxt": 0
},
"value": "newId",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 13562,
"end": 13607,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 13576,
"end": 13597,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 13576,
"end": 13596,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 13576,
"end": 13588,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 13576,
"end": 13579,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 13579,
"end": 13588,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 13580,
"end": 13587,
"ctxt": 0
},
"value": "idField",
"optional": false
}
}
},
"right": {
"type": "Identifier",
"span": {
"start": 13591,
"end": 13596,
"ctxt": 0
},
"value": "newId",
"optional": false
}
}
}
]
},
"alternate": null
}
]
}
},
{
"type": "ReturnStatement",
"span": {
"start": 13618,
"end": 13629,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 13625,
"end": 13628,
"ctxt": 0
},
"value": "obj",
"optional": false
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 13294,
"end": 13341,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 13295,
"end": 13322,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 13295,
"end": 13296,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 13305,
"end": 13322,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13305,
"end": 13311,
"ctxt": 0
},
"value": "Record",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 13311,
"end": 13322,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 13312,
"end": 13313,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13312,
"end": 13313,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
},
{
"type": "TsKeywordType",
"span": {
"start": 13315,
"end": 13321,
"ctxt": 0
},
"kind": "string"
}
]
}
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 13324,
"end": 13340,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 13324,
"end": 13325,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsKeywordType",
"span": {
"start": 13334,
"end": 13340,
"ctxt": 0
},
"kind": "string"
},
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 13418,
"end": 13437,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 13420,
"end": 13437,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13420,
"end": 13426,
"ctxt": 0
},
"value": "Record",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 13426,
"end": 13437,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 13427,
"end": 13428,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13427,
"end": 13428,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
},
{
"type": "TsKeywordType",
"span": {
"start": 13430,
"end": 13436,
"ctxt": 0
},
"kind": "string"
}
]
}
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 13664,
"end": 13674,
"ctxt": 0
},
"value": "updateIds2",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 13734,
"end": 13740,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 13734,
"end": 13740,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13737,
"end": 13740,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 13739,
"end": 13740,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13739,
"end": 13740,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 13746,
"end": 13752,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 13746,
"end": 13752,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13749,
"end": 13752,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 13751,
"end": 13752,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13751,
"end": 13752,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 13758,
"end": 13796,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 13758,
"end": 13796,
"ctxt": 0
},
"value": "stringMap",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13767,
"end": 13796,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 13769,
"end": 13796,
"ctxt": 0
},
"members": [
{
"type": "TsIndexSignature",
"params": [
{
"type": "Identifier",
"span": {
"start": 13772,
"end": 13785,
"ctxt": 0
},
"value": "oldId",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13777,
"end": 13785,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 13779,
"end": 13785,
"ctxt": 0
},
"kind": "string"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13786,
"end": 13794,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 13788,
"end": 13794,
"ctxt": 0
},
"kind": "string"
}
},
"readonly": false,
"static": false,
"span": {
"start": 13771,
"end": 13794,
"ctxt": 0
}
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 13655,
"end": 13859,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 13799,
"end": 13859,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 13805,
"end": 13822,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13809,
"end": 13821,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13809,
"end": 13810,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 13813,
"end": 13821,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 13813,
"end": 13816,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 13816,
"end": 13821,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 13817,
"end": 13820,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 13827,
"end": 13840,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 13827,
"end": 13839,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 13827,
"end": 13836,
"ctxt": 0
},
"value": "stringMap",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 13836,
"end": 13839,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 13837,
"end": 13838,
"ctxt": 0
},
"value": "x",
"optional": false
}
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 13674,
"end": 13728,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 13675,
"end": 13708,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 13675,
"end": 13676,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeLiteral",
"span": {
"start": 13685,
"end": 13708,
"ctxt": 0
},
"members": [
{
"type": "TsIndexSignature",
"params": [
{
"type": "Identifier",
"span": {
"start": 13688,
"end": 13697,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13689,
"end": 13697,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 13691,
"end": 13697,
"ctxt": 0
},
"kind": "string"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13698,
"end": 13706,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 13700,
"end": 13706,
"ctxt": 0
},
"kind": "string"
}
},
"readonly": false,
"static": false,
"span": {
"start": 13687,
"end": 13706,
"ctxt": 0
}
}
]
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 13710,
"end": 13727,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 13710,
"end": 13711,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 13720,
"end": 13727,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 13726,
"end": 13727,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13726,
"end": 13727,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 13900,
"end": 13904,
"ctxt": 0
},
"value": "head",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 13927,
"end": 13934,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 13927,
"end": 13934,
"ctxt": 0
},
"value": "list",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13931,
"end": 13934,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 13933,
"end": 13934,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13933,
"end": 13934,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 13883,
"end": 13942,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 13904,
"end": 13926,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 13905,
"end": 13925,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 13905,
"end": 13906,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 13915,
"end": 13925,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13915,
"end": 13920,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 13920,
"end": 13925,
"ctxt": 0
},
"params": [
{
"type": "TsKeywordType",
"span": {
"start": 13921,
"end": 13924,
"ctxt": 0
},
"kind": "any"
}
]
}
},
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 13935,
"end": 13941,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 13937,
"end": 13941,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 13937,
"end": 13938,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13937,
"end": 13938,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 13939,
"end": 13940,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 13939,
"end": 13940,
"ctxt": 0
},
"value": 0.0,
"raw": "0"
}
}
}
}
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 13972,
"end": 13973,
"ctxt": 0
},
"value": "A",
"optional": false
},
"declare": false,
"span": {
"start": 13966,
"end": 14009,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 13980,
"end": 14007,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 13980,
"end": 13985,
"ctxt": 0
},
"value": "props",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13985,
"end": 14006,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 13987,
"end": 14006,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 13987,
"end": 13988,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 13987,
"end": 13988,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeLiteral",
"span": {
"start": 13991,
"end": 14006,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 13993,
"end": 14004,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 13993,
"end": 13996,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 13996,
"end": 14004,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 13998,
"end": 14004,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
]
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 13973,
"end": 13976,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 13974,
"end": 13975,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 13974,
"end": 13975,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 14017,
"end": 14018,
"ctxt": 0
},
"value": "B",
"optional": false
},
"declare": false,
"span": {
"start": 14011,
"end": 14079,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassMethod",
"span": {
"start": 14046,
"end": 14077,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 14046,
"end": 14047,
"ctxt": 0
},
"value": "f",
"optional": false
},
"function": {
"params": [
{
"type": "Parameter",
"span": {
"start": 14048,
"end": 14064,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 14048,
"end": 14064,
"ctxt": 0
},
"value": "p",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 14049,
"end": 14064,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 14051,
"end": 14064,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsThisType",
"span": {
"start": 14051,
"end": 14055,
"ctxt": 0
}
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 14056,
"end": 14063,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 14056,
"end": 14063,
"ctxt": 0
},
"value": "props",
"raw": "\"props\""
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 14046,
"end": 14077,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 14066,
"end": 14077,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 14070,
"end": 14074,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 14070,
"end": 14073,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 14070,
"end": 14071,
"ctxt": 0
},
"value": "p",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 14072,
"end": 14073,
"ctxt": 0
},
"value": "x",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
"kind": "method",
"isStatic": false,
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false
}
],
"superClass": {
"type": "Identifier",
"span": {
"start": 14027,
"end": 14028,
"ctxt": 0
},
"value": "A",
"optional": false
},
"isAbstract": false,
"typeParams": null,
"superTypeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 14028,
"end": 14042,
"ctxt": 0
},
"params": [
{
"type": "TsTypeLiteral",
"span": {
"start": 14029,
"end": 14041,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 14031,
"end": 14040,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 14031,
"end": 14032,
"ctxt": 0
},
"value": "x",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 14032,
"end": 14040,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 14034,
"end": 14040,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
]
},
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 14109,
"end": 14113,
"ctxt": 0
},
"value": "Form",
"optional": false
},
"declare": false,
"span": {
"start": 14103,
"end": 14304,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 14123,
"end": 14192,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 14131,
"end": 14149,
"ctxt": 0
},
"value": "childFormFactories",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 14149,
"end": 14192,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsMappedType",
"span": {
"start": 14151,
"end": 14192,
"ctxt": 0
},
"readonly": null,
"typeParam": {
"type": "TsTypeParameter",
"span": {
"start": 14153,
"end": 14165,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 14153,
"end": 14154,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 14158,
"end": 14165,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 14164,
"end": 14165,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14164,
"end": 14165,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
},
"nameType": null,
"optional": null,
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 14168,
"end": 14191,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 14169,
"end": 14176,
"ctxt": 0
},
"value": "v",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 14170,
"end": 14176,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 14172,
"end": 14176,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 14172,
"end": 14173,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14172,
"end": 14173,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 14174,
"end": 14175,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14174,
"end": 14175,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 14178,
"end": 14191,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 14181,
"end": 14191,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14181,
"end": 14185,
"ctxt": 0
},
"value": "Form",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 14185,
"end": 14191,
"ctxt": 0
},
"params": [
{
"type": "TsIndexedAccessType",
"span": {
"start": 14186,
"end": 14190,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 14186,
"end": 14187,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14186,
"end": 14187,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 14188,
"end": 14189,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14188,
"end": 14189,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
]
}
}
}
}
}
},
"isStatic": false,
"decorators": [],
"accessibility": "private",
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
},
{
"type": "ClassMethod",
"span": {
"start": 14198,
"end": 14302,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 14205,
"end": 14208,
"ctxt": 0
},
"value": "set",
"optional": false
},
"function": {
"params": [
{
"type": "Parameter",
"span": {
"start": 14228,
"end": 14235,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 14228,
"end": 14235,
"ctxt": 0
},
"value": "prop",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 14232,
"end": 14235,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 14234,
"end": 14235,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14234,
"end": 14235,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 14237,
"end": 14248,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 14237,
"end": 14248,
"ctxt": 0
},
"value": "value",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 14242,
"end": 14248,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 14244,
"end": 14248,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 14244,
"end": 14245,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14244,
"end": 14245,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 14246,
"end": 14247,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14246,
"end": 14247,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 14198,
"end": 14302,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 14250,
"end": 14302,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 14260,
"end": 14296,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 14260,
"end": 14296,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 14260,
"end": 14289,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 14260,
"end": 14283,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 14260,
"end": 14264,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 14265,
"end": 14283,
"ctxt": 0
},
"value": "childFormFactories",
"optional": false
}
},
"property": {
"type": "Computed",
"span": {
"start": 14283,
"end": 14289,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 14284,
"end": 14288,
"ctxt": 0
},
"value": "prop",
"optional": false
}
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 14290,
"end": 14295,
"ctxt": 0
},
"value": "value",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 14208,
"end": 14227,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 14209,
"end": 14226,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 14209,
"end": 14210,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 14219,
"end": 14226,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 14225,
"end": 14226,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14225,
"end": 14226,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
"kind": "method",
"isStatic": false,
"accessibility": "public",
"isAbstract": false,
"isOptional": false,
"isOverride": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 14113,
"end": 14116,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 14114,
"end": 14115,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 14114,
"end": 14115,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 14334,
"end": 14345,
"ctxt": 0
},
"value": "SampleClass",
"optional": false
},
"declare": false,
"span": {
"start": 14328,
"end": 14460,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 14355,
"end": 14381,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 14362,
"end": 14367,
"ctxt": 0
},
"value": "props",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 14367,
"end": 14380,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 14369,
"end": 14380,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14369,
"end": 14377,
"ctxt": 0
},
"value": "Readonly",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 14377,
"end": 14380,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 14378,
"end": 14379,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14378,
"end": 14379,
"ctxt": 0
},
"value": "P",
"optional": false
},
"typeParams": null
}
]
}
}
},
"isStatic": false,
"decorators": [],
"accessibility": "public",
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
},
{
"type": "Constructor",
"span": {
"start": 14386,
"end": 14458,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 14386,
"end": 14397,
"ctxt": 0
},
"value": "constructor",
"optional": false
},
"params": [
{
"type": "Parameter",
"span": {
"start": 14398,
"end": 14406,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 14398,
"end": 14406,
"ctxt": 0
},
"value": "props",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 14403,
"end": 14406,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 14405,
"end": 14406,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14405,
"end": 14406,
"ctxt": 0
},
"value": "P",
"optional": false
},
"typeParams": null
}
}
}
}
],
"body": {
"type": "BlockStatement",
"span": {
"start": 14408,
"end": 14458,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 14418,
"end": 14452,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 14418,
"end": 14451,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 14418,
"end": 14428,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 14418,
"end": 14422,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 14423,
"end": 14428,
"ctxt": 0
},
"value": "props",
"optional": false
}
},
"right": {
"type": "CallExpression",
"span": {
"start": 14431,
"end": 14451,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 14431,
"end": 14444,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 14431,
"end": 14437,
"ctxt": 0
},
"value": "Object",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 14438,
"end": 14444,
"ctxt": 0
},
"value": "freeze",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 14445,
"end": 14450,
"ctxt": 0
},
"value": "props",
"optional": false
}
}
],
"typeArguments": null
}
}
}
]
},
"accessibility": null,
"isOptional": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 14345,
"end": 14348,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 14346,
"end": 14347,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 14346,
"end": 14347,
"ctxt": 0
},
"value": "P",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"superTypeParams": null,
"implements": []
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 14462,
"end": 14496,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 14472,
"end": 14475,
"ctxt": 0
},
"value": "Foo",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 14476,
"end": 14496,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 14482,
"end": 14494,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 14482,
"end": 14485,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 14485,
"end": 14493,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 14487,
"end": 14493,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 14515,
"end": 14520,
"ctxt": 0
},
"value": "merge",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 14527,
"end": 14534,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 14527,
"end": 14534,
"ctxt": 0
},
"value": "obj1",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 14531,
"end": 14534,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 14533,
"end": 14534,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14533,
"end": 14534,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 14536,
"end": 14543,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 14536,
"end": 14543,
"ctxt": 0
},
"value": "obj2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 14540,
"end": 14543,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 14542,
"end": 14543,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14542,
"end": 14543,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 14498,
"end": 14552,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 14520,
"end": 14526,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 14521,
"end": 14522,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 14521,
"end": 14522,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 14524,
"end": 14525,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 14524,
"end": 14525,
"ctxt": 0
},
"value": "U",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 14544,
"end": 14551,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 14546,
"end": 14551,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 14546,
"end": 14547,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14546,
"end": 14547,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 14550,
"end": 14551,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14550,
"end": 14551,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
]
}
}
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 14560,
"end": 14578,
"ctxt": 0
},
"value": "AnotherSampleClass",
"optional": false
},
"declare": false,
"span": {
"start": 14554,
"end": 14789,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "Constructor",
"span": {
"start": 14617,
"end": 14721,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 14617,
"end": 14628,
"ctxt": 0
},
"value": "constructor",
"optional": false
},
"params": [
{
"type": "Parameter",
"span": {
"start": 14629,
"end": 14637,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 14629,
"end": 14637,
"ctxt": 0
},
"value": "props",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 14634,
"end": 14637,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 14636,
"end": 14637,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14636,
"end": 14637,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
],
"body": {
"type": "BlockStatement",
"span": {
"start": 14639,
"end": 14721,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 14649,
"end": 14681,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 14655,
"end": 14680,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 14655,
"end": 14658,
"ctxt": 0
},
"value": "foo",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 14658,
"end": 14663,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 14660,
"end": 14663,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14660,
"end": 14663,
"ctxt": 0
},
"value": "Foo",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "ObjectExpression",
"span": {
"start": 14666,
"end": 14680,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 14668,
"end": 14671,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 14673,
"end": 14678,
"ctxt": 0
},
"value": "bar",
"raw": "\"bar\""
}
}
]
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 14690,
"end": 14715,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 14690,
"end": 14714,
"ctxt": 0
},
"callee": {
"type": "Super",
"span": {
"start": 14690,
"end": 14695,
"ctxt": 0
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "CallExpression",
"span": {
"start": 14696,
"end": 14713,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 14696,
"end": 14701,
"ctxt": 0
},
"value": "merge",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 14702,
"end": 14707,
"ctxt": 0
},
"value": "props",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 14709,
"end": 14712,
"ctxt": 0
},
"value": "foo",
"optional": false
}
}
],
"typeArguments": null
}
}
],
"typeArguments": null
}
}
]
},
"accessibility": null,
"isOptional": false
},
{
"type": "ClassMethod",
"span": {
"start": 14727,
"end": 14787,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 14734,
"end": 14746,
"ctxt": 0
},
"value": "brokenMethod",
"optional": false
},
"function": {
"params": [],
"decorators": [],
"span": {
"start": 14727,
"end": 14787,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 14749,
"end": 14787,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 14759,
"end": 14781,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 14759,
"end": 14780,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 14759,
"end": 14773,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 14759,
"end": 14769,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 14759,
"end": 14763,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 14764,
"end": 14769,
"ctxt": 0
},
"value": "props",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 14770,
"end": 14773,
"ctxt": 0
},
"value": "foo",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 14774,
"end": 14780,
"ctxt": 0
},
"value": "concat",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
"kind": "method",
"isStatic": false,
"accessibility": "public",
"isAbstract": false,
"isOptional": false,
"isOverride": false
}
],
"superClass": {
"type": "Identifier",
"span": {
"start": 14590,
"end": 14601,
"ctxt": 0
},
"value": "SampleClass",
"optional": false
},
"isAbstract": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 14578,
"end": 14581,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 14579,
"end": 14580,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 14579,
"end": 14580,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"superTypeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 14601,
"end": 14610,
"ctxt": 0
},
"params": [
{
"type": "TsIntersectionType",
"span": {
"start": 14602,
"end": 14609,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 14602,
"end": 14603,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14602,
"end": 14603,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 14606,
"end": 14609,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14606,
"end": 14609,
"ctxt": 0
},
"value": "Foo",
"optional": false
},
"typeParams": null
}
]
}
]
},
"implements": []
},
{
"type": "ExpressionStatement",
"span": {
"start": 14790,
"end": 14817,
"ctxt": 0
},
"expression": {
"type": "NewExpression",
"span": {
"start": 14790,
"end": 14816,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 14794,
"end": 14812,
"ctxt": 0
},
"value": "AnotherSampleClass",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 14813,
"end": 14815,
"ctxt": 0
},
"properties": []
}
}
],
"typeArguments": null
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 14858,
"end": 14860,
"ctxt": 0
},
"value": "f3",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 14900,
"end": 14904,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 14900,
"end": 14904,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 14901,
"end": 14904,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 14903,
"end": 14904,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14903,
"end": 14904,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 14906,
"end": 14910,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 14906,
"end": 14910,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 14907,
"end": 14910,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 14909,
"end": 14910,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14909,
"end": 14910,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 14912,
"end": 14920,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 14912,
"end": 14920,
"ctxt": 0
},
"value": "tk",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 14914,
"end": 14920,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 14916,
"end": 14920,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 14916,
"end": 14917,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14916,
"end": 14917,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 14918,
"end": 14919,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14918,
"end": 14919,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 14849,
"end": 15047,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 14928,
"end": 15047,
"ctxt": 0
},
"stmts": [
{
"type": "ForInStatement",
"span": {
"start": 14934,
"end": 15045,
"ctxt": 0
},
"left": {
"type": "VariableDeclaration",
"span": {
"start": 14939,
"end": 14946,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 14943,
"end": 14946,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 14943,
"end": 14946,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": null
},
"init": null,
"definite": false
}
]
},
"right": {
"type": "Identifier",
"span": {
"start": 14950,
"end": 14951,
"ctxt": 0
},
"value": "t",
"optional": false
},
"body": {
"type": "BlockStatement",
"span": {
"start": 14953,
"end": 15045,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 14963,
"end": 14970,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 14963,
"end": 14970,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 14963,
"end": 14966,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 14969,
"end": 14970,
"ctxt": 0
},
"value": "k",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 15000,
"end": 15012,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 15000,
"end": 15011,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 15000,
"end": 15006,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15000,
"end": 15001,
"ctxt": 0
},
"value": "t",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 15001,
"end": 15006,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 15002,
"end": 15005,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
},
"right": {
"type": "Identifier",
"span": {
"start": 15009,
"end": 15011,
"ctxt": 0
},
"value": "tk",
"optional": false
}
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 14860,
"end": 14899,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 14861,
"end": 14862,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 14861,
"end": 14862,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 14864,
"end": 14898,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 14864,
"end": 14865,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 14874,
"end": 14898,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14874,
"end": 14881,
"ctxt": 0
},
"value": "Extract",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 14881,
"end": 14898,
"ctxt": 0
},
"params": [
{
"type": "TsTypeOperator",
"span": {
"start": 14882,
"end": 14889,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 14888,
"end": 14889,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 14888,
"end": 14889,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
{
"type": "TsKeywordType",
"span": {
"start": 14891,
"end": 14897,
"ctxt": 0
},
"kind": "string"
}
]
}
},
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 14921,
"end": 14927,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 14923,
"end": 14927,
"ctxt": 0
},
"kind": "void"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 15060,
"end": 15198,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 15065,
"end": 15075,
"ctxt": 0
},
"value": "Predicates",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 15075,
"end": 15089,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 15076,
"end": 15088,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 15076,
"end": 15088,
"ctxt": 0
},
"value": "TaggedRecord",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsMappedType",
"span": {
"start": 15092,
"end": 15198,
"ctxt": 0
},
"readonly": null,
"typeParam": {
"type": "TsTypeParameter",
"span": {
"start": 15097,
"end": 15120,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 15097,
"end": 15098,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 15102,
"end": 15120,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 15108,
"end": 15120,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15108,
"end": 15120,
"ctxt": 0
},
"value": "TaggedRecord",
"optional": false
},
"typeParams": null
}
},
"default": null
},
"nameType": null,
"optional": null,
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 15123,
"end": 15196,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 15124,
"end": 15165,
"ctxt": 0
},
"value": "variant",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 15131,
"end": 15165,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 15133,
"end": 15165,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 15133,
"end": 15145,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15133,
"end": 15145,
"ctxt": 0
},
"value": "TaggedRecord",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeOperator",
"span": {
"start": 15146,
"end": 15164,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 15152,
"end": 15164,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15152,
"end": 15164,
"ctxt": 0
},
"value": "TaggedRecord",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 15167,
"end": 15196,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypePredicate",
"span": {
"start": 15170,
"end": 15196,
"ctxt": 0
},
"asserts": false,
"paramName": {
"type": "Identifier",
"span": {
"start": 15170,
"end": 15177,
"ctxt": 0
},
"value": "variant",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 15181,
"end": 15196,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 15181,
"end": 15196,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 15181,
"end": 15193,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15181,
"end": 15193,
"ctxt": 0
},
"value": "TaggedRecord",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 15194,
"end": 15195,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15194,
"end": 15195,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 15223,
"end": 15316,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 15228,
"end": 15235,
"ctxt": 0
},
"value": "Example",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 15235,
"end": 15280,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 15236,
"end": 15279,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 15236,
"end": 15237,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsMappedType",
"span": {
"start": 15246,
"end": 15279,
"ctxt": 0
},
"readonly": null,
"typeParam": {
"type": "TsTypeParameter",
"span": {
"start": 15249,
"end": 15261,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 15249,
"end": 15250,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 15254,
"end": 15261,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 15260,
"end": 15261,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15260,
"end": 15261,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
},
"nameType": null,
"optional": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 15264,
"end": 15277,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 15266,
"end": 15275,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 15266,
"end": 15270,
"ctxt": 0
},
"value": "prop",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 15270,
"end": 15275,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 15272,
"end": 15275,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
}
]
}
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsMappedType",
"span": {
"start": 15283,
"end": 15315,
"ctxt": 0
},
"readonly": null,
"typeParam": {
"type": "TsTypeParameter",
"span": {
"start": 15286,
"end": 15298,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 15286,
"end": 15287,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 15291,
"end": 15298,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 15297,
"end": 15298,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15297,
"end": 15298,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
},
"nameType": null,
"optional": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 15301,
"end": 15313,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsIndexedAccessType",
"span": {
"start": 15301,
"end": 15305,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 15301,
"end": 15302,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15301,
"end": 15302,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 15303,
"end": 15304,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15303,
"end": 15304,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 15306,
"end": 15312,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 15306,
"end": 15312,
"ctxt": 0
},
"value": "prop",
"raw": "\"prop\""
}
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 15317,
"end": 15385,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 15322,
"end": 15328,
"ctxt": 0
},
"value": "Result",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 15331,
"end": 15384,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15331,
"end": 15338,
"ctxt": 0
},
"value": "Example",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 15338,
"end": 15384,
"ctxt": 0
},
"params": [
{
"type": "TsTypeLiteral",
"span": {
"start": 15339,
"end": 15383,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 15341,
"end": 15361,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 15341,
"end": 15342,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 15342,
"end": 15360,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 15344,
"end": 15360,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 15346,
"end": 15358,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 15346,
"end": 15350,
"ctxt": 0
},
"value": "prop",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 15350,
"end": 15358,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 15352,
"end": 15358,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 15362,
"end": 15381,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 15362,
"end": 15363,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 15363,
"end": 15381,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 15365,
"end": 15381,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 15367,
"end": 15379,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 15367,
"end": 15371,
"ctxt": 0
},
"value": "prop",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 15371,
"end": 15379,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 15373,
"end": 15379,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
},
"typeParams": null
}
]
}
]
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 15387,
"end": 15454,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 15392,
"end": 15399,
"ctxt": 0
},
"value": "Helper2",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 15399,
"end": 15402,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 15400,
"end": 15401,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 15400,
"end": 15401,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsMappedType",
"span": {
"start": 15405,
"end": 15453,
"ctxt": 0
},
"readonly": null,
"typeParam": {
"type": "TsTypeParameter",
"span": {
"start": 15408,
"end": 15420,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 15408,
"end": 15409,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 15413,
"end": 15420,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 15419,
"end": 15420,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15419,
"end": 15420,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
},
"nameType": null,
"optional": null,
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 15423,
"end": 15451,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15423,
"end": 15430,
"ctxt": 0
},
"value": "Extract",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 15430,
"end": 15451,
"ctxt": 0
},
"params": [
{
"type": "TsIndexedAccessType",
"span": {
"start": 15431,
"end": 15435,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 15431,
"end": 15432,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15431,
"end": 15432,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 15433,
"end": 15434,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15433,
"end": 15434,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
},
{
"type": "TsTypeLiteral",
"span": {
"start": 15437,
"end": 15450,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 15439,
"end": 15448,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 15439,
"end": 15443,
"ctxt": 0
},
"value": "prop",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 15443,
"end": 15448,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 15445,
"end": 15448,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
}
]
}
]
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 15455,
"end": 15525,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 15460,
"end": 15468,
"ctxt": 0
},
"value": "Example2",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 15468,
"end": 15471,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 15469,
"end": 15470,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 15469,
"end": 15470,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsMappedType",
"span": {
"start": 15474,
"end": 15524,
"ctxt": 0
},
"readonly": null,
"typeParam": {
"type": "TsTypeParameter",
"span": {
"start": 15477,
"end": 15498,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 15477,
"end": 15478,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 15482,
"end": 15498,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 15488,
"end": 15498,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15488,
"end": 15495,
"ctxt": 0
},
"value": "Helper2",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 15495,
"end": 15498,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 15496,
"end": 15497,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15496,
"end": 15497,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
},
"default": null
},
"nameType": null,
"optional": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 15501,
"end": 15522,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsIndexedAccessType",
"span": {
"start": 15501,
"end": 15514,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 15501,
"end": 15511,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15501,
"end": 15508,
"ctxt": 0
},
"value": "Helper2",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 15508,
"end": 15511,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 15509,
"end": 15510,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15509,
"end": 15510,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 15512,
"end": 15513,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15512,
"end": 15513,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 15515,
"end": 15521,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 15515,
"end": 15521,
"ctxt": 0
},
"value": "prop",
"raw": "\"prop\""
}
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 15526,
"end": 15596,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 15531,
"end": 15538,
"ctxt": 0
},
"value": "Result2",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 15541,
"end": 15595,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15541,
"end": 15549,
"ctxt": 0
},
"value": "Example2",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 15549,
"end": 15595,
"ctxt": 0
},
"params": [
{
"type": "TsTypeLiteral",
"span": {
"start": 15550,
"end": 15594,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 15552,
"end": 15572,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "NumericLiteral",
"span": {
"start": 15552,
"end": 15553,
"ctxt": 0
},
"value": 1.0,
"raw": "1"
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 15553,
"end": 15571,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 15555,
"end": 15571,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 15557,
"end": 15569,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 15557,
"end": 15561,
"ctxt": 0
},
"value": "prop",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 15561,
"end": 15569,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 15563,
"end": 15569,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 15573,
"end": 15592,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "NumericLiteral",
"span": {
"start": 15573,
"end": 15574,
"ctxt": 0
},
"value": 2.0,
"raw": "2"
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 15574,
"end": 15592,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 15576,
"end": 15592,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 15578,
"end": 15590,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 15578,
"end": 15582,
"ctxt": 0
},
"value": "prop",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 15582,
"end": 15590,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 15584,
"end": 15590,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
},
"typeParams": null
}
]
}
]
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 15620,
"end": 15676,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 15625,
"end": 15636,
"ctxt": 0
},
"value": "DBBoolTable",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 15636,
"end": 15654,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 15637,
"end": 15653,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 15637,
"end": 15638,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsKeywordType",
"span": {
"start": 15647,
"end": 15653,
"ctxt": 0
},
"kind": "string"
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsMappedType",
"span": {
"start": 15657,
"end": 15676,
"ctxt": 0
},
"readonly": null,
"typeParam": {
"type": "TsTypeParameter",
"span": {
"start": 15660,
"end": 15666,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 15660,
"end": 15661,
"ctxt": 0
},
"value": "k",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 15665,
"end": 15666,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15665,
"end": 15666,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
},
"default": null
},
"nameType": null,
"optional": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 15669,
"end": 15674,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 15669,
"end": 15670,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 15669,
"end": 15670,
"ctxt": 0
},
"value": 0.0,
"raw": "0"
}
},
{
"type": "TsLiteralType",
"span": {
"start": 15673,
"end": 15674,
"ctxt": 0
},
"literal": {
"type": "NumericLiteral",
"span": {
"start": 15673,
"end": 15674,
"ctxt": 0
},
"value": 1.0,
"raw": "1"
}
}
]
}
}
},
{
"type": "TsEnumDeclaration",
"span": {
"start": 15678,
"end": 15736,
"ctxt": 0
},
"declare": false,
"isConst": false,
"id": {
"type": "Identifier",
"span": {
"start": 15683,
"end": 15687,
"ctxt": 0
},
"value": "Flag",
"optional": false
},
"members": [
{
"type": "TsEnumMember",
"span": {
"start": 15694,
"end": 15711,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 15694,
"end": 15700,
"ctxt": 0
},
"value": "FLAG_1",
"optional": false
},
"init": {
"type": "StringLiteral",
"span": {
"start": 15703,
"end": 15711,
"ctxt": 0
},
"value": "flag_1",
"raw": "\"flag_1\""
}
},
{
"type": "TsEnumMember",
"span": {
"start": 15717,
"end": 15734,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 15717,
"end": 15723,
"ctxt": 0
},
"value": "FLAG_2",
"optional": false
},
"init": {
"type": "StringLiteral",
"span": {
"start": 15726,
"end": 15734,
"ctxt": 0
},
"value": "flag_2",
"raw": "\"flag_2\""
}
}
]
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 15738,
"end": 15824,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 15743,
"end": 15757,
"ctxt": 0
},
"value": "SimpleDBRecord",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 15757,
"end": 15778,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 15758,
"end": 15777,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 15758,
"end": 15762,
"ctxt": 0
},
"value": "Flag",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsKeywordType",
"span": {
"start": 15771,
"end": 15777,
"ctxt": 0
},
"kind": "string"
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 15781,
"end": 15824,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 15781,
"end": 15804,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 15783,
"end": 15802,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 15783,
"end": 15794,
"ctxt": 0
},
"value": "staticField",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 15794,
"end": 15802,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 15796,
"end": 15802,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeReference",
"span": {
"start": 15807,
"end": 15824,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15807,
"end": 15818,
"ctxt": 0
},
"value": "DBBoolTable",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 15818,
"end": 15824,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 15819,
"end": 15823,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15819,
"end": 15823,
"ctxt": 0
},
"value": "Flag",
"optional": false
},
"typeParams": null
}
]
}
}
]
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 15834,
"end": 15858,
"ctxt": 0
},
"value": "getFlagsFromSimpleRecord",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 15880,
"end": 15908,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 15880,
"end": 15908,
"ctxt": 0
},
"value": "record",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 15886,
"end": 15908,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 15888,
"end": 15908,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15888,
"end": 15902,
"ctxt": 0
},
"value": "SimpleDBRecord",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 15902,
"end": 15908,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 15903,
"end": 15907,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15903,
"end": 15907,
"ctxt": 0
},
"value": "Flag",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 15910,
"end": 15923,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 15910,
"end": 15923,
"ctxt": 0
},
"value": "flags",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 15915,
"end": 15923,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 15917,
"end": 15923,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 15917,
"end": 15921,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15917,
"end": 15921,
"ctxt": 0
},
"value": "Flag",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 15825,
"end": 15957,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 15925,
"end": 15957,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 15931,
"end": 15955,
"ctxt": 0
},
"argument": {
"type": "MemberExpression",
"span": {
"start": 15938,
"end": 15954,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15938,
"end": 15944,
"ctxt": 0
},
"value": "record",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 15944,
"end": 15954,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 15945,
"end": 15953,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15945,
"end": 15950,
"ctxt": 0
},
"value": "flags",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 15950,
"end": 15953,
"ctxt": 0
},
"expression": {
"type": "NumericLiteral",
"span": {
"start": 15951,
"end": 15952,
"ctxt": 0
},
"value": 0.0,
"raw": "0"
}
}
}
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 15858,
"end": 15879,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 15859,
"end": 15878,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 15859,
"end": 15863,
"ctxt": 0
},
"value": "Flag",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsKeywordType",
"span": {
"start": 15872,
"end": 15878,
"ctxt": 0
},
"kind": "string"
},
"default": null
}
]
},
"returnType": null
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 15959,
"end": 16076,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 15964,
"end": 15979,
"ctxt": 0
},
"value": "DynamicDBRecord",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 15979,
"end": 16000,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 15980,
"end": 15999,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 15980,
"end": 15984,
"ctxt": 0
},
"value": "Flag",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsKeywordType",
"span": {
"start": 15993,
"end": 15999,
"ctxt": 0
},
"kind": "string"
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 16003,
"end": 16076,
"ctxt": 0
},
"types": [
{
"type": "TsParenthesizedType",
"span": {
"start": 16003,
"end": 16056,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 16004,
"end": 16055,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 16004,
"end": 16028,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 16006,
"end": 16026,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 16006,
"end": 16018,
"ctxt": 0
},
"value": "dynamicField",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16018,
"end": 16026,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 16020,
"end": 16026,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 16031,
"end": 16055,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 16033,
"end": 16053,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 16033,
"end": 16045,
"ctxt": 0
},
"value": "dynamicField",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16045,
"end": 16053,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 16047,
"end": 16053,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
]
}
},
{
"type": "TsTypeReference",
"span": {
"start": 16059,
"end": 16076,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16059,
"end": 16070,
"ctxt": 0
},
"value": "DBBoolTable",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 16070,
"end": 16076,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 16071,
"end": 16075,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16071,
"end": 16075,
"ctxt": 0
},
"value": "Flag",
"optional": false
},
"typeParams": null
}
]
}
}
]
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 16086,
"end": 16111,
"ctxt": 0
},
"value": "getFlagsFromDynamicRecord",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 16133,
"end": 16162,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 16133,
"end": 16162,
"ctxt": 0
},
"value": "record",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16139,
"end": 16162,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16141,
"end": 16162,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16141,
"end": 16156,
"ctxt": 0
},
"value": "DynamicDBRecord",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 16156,
"end": 16162,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 16157,
"end": 16161,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16157,
"end": 16161,
"ctxt": 0
},
"value": "Flag",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 16164,
"end": 16177,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 16164,
"end": 16177,
"ctxt": 0
},
"value": "flags",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16169,
"end": 16177,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 16171,
"end": 16177,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 16171,
"end": 16175,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16171,
"end": 16175,
"ctxt": 0
},
"value": "Flag",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 16077,
"end": 16211,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 16179,
"end": 16211,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 16185,
"end": 16209,
"ctxt": 0
},
"argument": {
"type": "MemberExpression",
"span": {
"start": 16192,
"end": 16208,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16192,
"end": 16198,
"ctxt": 0
},
"value": "record",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 16198,
"end": 16208,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 16199,
"end": 16207,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16199,
"end": 16204,
"ctxt": 0
},
"value": "flags",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 16204,
"end": 16207,
"ctxt": 0
},
"expression": {
"type": "NumericLiteral",
"span": {
"start": 16205,
"end": 16206,
"ctxt": 0
},
"value": 0.0,
"raw": "0"
}
}
}
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 16111,
"end": 16132,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 16112,
"end": 16131,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 16112,
"end": 16116,
"ctxt": 0
},
"value": "Flag",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsKeywordType",
"span": {
"start": 16125,
"end": 16131,
"ctxt": 0
},
"kind": "string"
},
"default": null
}
]
},
"returnType": null
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 16235,
"end": 16267,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 16245,
"end": 16246,
"ctxt": 0
},
"value": "I",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 16247,
"end": 16267,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 16253,
"end": 16265,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 16253,
"end": 16256,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16256,
"end": 16264,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 16258,
"end": 16264,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 16286,
"end": 16290,
"ctxt": 0
},
"value": "take",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 16294,
"end": 16298,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 16294,
"end": 16298,
"ctxt": 0
},
"value": "p",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16295,
"end": 16298,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16297,
"end": 16298,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16297,
"end": 16298,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 16269,
"end": 16306,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 16290,
"end": 16293,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 16291,
"end": 16292,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 16291,
"end": 16292,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 16299,
"end": 16305,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 16301,
"end": 16305,
"ctxt": 0
},
"kind": "void"
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 16317,
"end": 16319,
"ctxt": 0
},
"value": "fn",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 16352,
"end": 16356,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 16352,
"end": 16356,
"ctxt": 0
},
"value": "o",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16353,
"end": 16356,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16355,
"end": 16356,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16355,
"end": 16356,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 16358,
"end": 16362,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 16358,
"end": 16362,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16359,
"end": 16362,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16361,
"end": 16362,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16361,
"end": 16362,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 16308,
"end": 16427,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 16364,
"end": 16427,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 16370,
"end": 16404,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 16370,
"end": 16403,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 16370,
"end": 16374,
"ctxt": 0
},
"value": "take",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 16398,
"end": 16402,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16398,
"end": 16399,
"ctxt": 0
},
"value": "o",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 16399,
"end": 16402,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 16400,
"end": 16401,
"ctxt": 0
},
"value": "k",
"optional": false
}
}
}
}
],
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 16374,
"end": 16397,
"ctxt": 0
},
"params": [
{
"type": "TsUnionType",
"span": {
"start": 16375,
"end": 16396,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 16375,
"end": 16377,
"ctxt": 0
},
"members": []
},
{
"type": "TsKeywordType",
"span": {
"start": 16380,
"end": 16384,
"ctxt": 0
},
"kind": "null"
},
{
"type": "TsKeywordType",
"span": {
"start": 16387,
"end": 16396,
"ctxt": 0
},
"kind": "undefined"
}
]
}
]
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 16409,
"end": 16425,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 16409,
"end": 16424,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 16409,
"end": 16413,
"ctxt": 0
},
"value": "take",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 16419,
"end": 16423,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16419,
"end": 16420,
"ctxt": 0
},
"value": "o",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 16420,
"end": 16423,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 16421,
"end": 16422,
"ctxt": 0
},
"value": "k",
"optional": false
}
}
}
}
],
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 16413,
"end": 16418,
"ctxt": 0
},
"params": [
{
"type": "TsKeywordType",
"span": {
"start": 16414,
"end": 16417,
"ctxt": 0
},
"kind": "any"
}
]
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 16319,
"end": 16351,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 16320,
"end": 16331,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 16320,
"end": 16321,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 16330,
"end": 16331,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16330,
"end": 16331,
"ctxt": 0
},
"value": "I",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 16333,
"end": 16350,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 16333,
"end": 16334,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 16343,
"end": 16350,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16349,
"end": 16350,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16349,
"end": 16350,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 16457,
"end": 16466,
"ctxt": 0
},
"value": "Unbounded",
"optional": false
},
"declare": false,
"span": {
"start": 16451,
"end": 16546,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassMethod",
"span": {
"start": 16476,
"end": 16544,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 16476,
"end": 16479,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"function": {
"params": [
{
"type": "Parameter",
"span": {
"start": 16480,
"end": 16493,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 16480,
"end": 16493,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16481,
"end": 16493,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 16483,
"end": 16493,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 16483,
"end": 16484,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16483,
"end": 16484,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeOperator",
"span": {
"start": 16485,
"end": 16492,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16491,
"end": 16492,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16491,
"end": 16492,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 16476,
"end": 16544,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 16495,
"end": 16544,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 16505,
"end": 16538,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 16509,
"end": 16537,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 16509,
"end": 16510,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16510,
"end": 16533,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 16512,
"end": 16533,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 16512,
"end": 16514,
"ctxt": 0
},
"members": []
},
{
"type": "TsKeywordType",
"span": {
"start": 16517,
"end": 16526,
"ctxt": 0
},
"kind": "undefined"
},
{
"type": "TsKeywordType",
"span": {
"start": 16529,
"end": 16533,
"ctxt": 0
},
"kind": "null"
}
]
}
}
},
"init": {
"type": "Identifier",
"span": {
"start": 16536,
"end": 16537,
"ctxt": 0
},
"value": "x",
"optional": false
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
"kind": "method",
"isStatic": false,
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 16466,
"end": 16469,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 16467,
"end": 16468,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 16467,
"end": 16468,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"superTypeParams": null,
"implements": []
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 16570,
"end": 16598,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 16580,
"end": 16582,
"ctxt": 0
},
"value": "I7",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 16583,
"end": 16598,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 16589,
"end": 16596,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 16589,
"end": 16590,
"ctxt": 0
},
"value": "x",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16590,
"end": 16595,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 16592,
"end": 16595,
"ctxt": 0
},
"kind": "any"
}
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 16599,
"end": 16631,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 16604,
"end": 16608,
"ctxt": 0
},
"value": "Foo7",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 16608,
"end": 16626,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 16609,
"end": 16625,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 16609,
"end": 16610,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsKeywordType",
"span": {
"start": 16619,
"end": 16625,
"ctxt": 0
},
"kind": "number"
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16629,
"end": 16630,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16629,
"end": 16630,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 16649,
"end": 16651,
"ctxt": 0
},
"value": "f7",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 16672,
"end": 16679,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 16672,
"end": 16679,
"ctxt": 0
},
"value": "type",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16676,
"end": 16679,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16678,
"end": 16679,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16678,
"end": 16679,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 16632,
"end": 16694,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 16651,
"end": 16671,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 16652,
"end": 16670,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 16652,
"end": 16653,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 16662,
"end": 16670,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16668,
"end": 16670,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16668,
"end": 16670,
"ctxt": 0
},
"value": "I7",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 16680,
"end": 16693,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16682,
"end": 16693,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16682,
"end": 16686,
"ctxt": 0
},
"value": "Foo7",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 16686,
"end": 16693,
"ctxt": 0
},
"params": [
{
"type": "TsIndexedAccessType",
"span": {
"start": 16687,
"end": 16692,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 16687,
"end": 16689,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16687,
"end": 16689,
"ctxt": 0
},
"value": "I7",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 16690,
"end": 16691,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16690,
"end": 16691,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
]
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 16718,
"end": 16771,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 16723,
"end": 16727,
"ctxt": 0
},
"value": "Dict",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 16727,
"end": 16745,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 16728,
"end": 16744,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 16728,
"end": 16729,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsKeywordType",
"span": {
"start": 16738,
"end": 16744,
"ctxt": 0
},
"kind": "string"
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsMappedType",
"span": {
"start": 16748,
"end": 16770,
"ctxt": 0
},
"readonly": null,
"typeParam": {
"type": "TsTypeParameter",
"span": {
"start": 16751,
"end": 16759,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 16751,
"end": 16754,
"ctxt": 0
},
"value": "key",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 16758,
"end": 16759,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16758,
"end": 16759,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"default": null
},
"nameType": null,
"optional": null,
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 16762,
"end": 16768,
"ctxt": 0
},
"kind": "number"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 16772,
"end": 16848,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 16777,
"end": 16785,
"ctxt": 0
},
"value": "DictDict",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 16785,
"end": 16821,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 16786,
"end": 16802,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 16786,
"end": 16787,
"ctxt": 0
},
"value": "V",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsKeywordType",
"span": {
"start": 16796,
"end": 16802,
"ctxt": 0
},
"kind": "string"
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 16804,
"end": 16820,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 16804,
"end": 16805,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsKeywordType",
"span": {
"start": 16814,
"end": 16820,
"ctxt": 0
},
"kind": "string"
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsMappedType",
"span": {
"start": 16824,
"end": 16847,
"ctxt": 0
},
"readonly": null,
"typeParam": {
"type": "TsTypeParameter",
"span": {
"start": 16827,
"end": 16835,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 16827,
"end": 16830,
"ctxt": 0
},
"value": "key",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 16834,
"end": 16835,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16834,
"end": 16835,
"ctxt": 0
},
"value": "V",
"optional": false
},
"typeParams": null
},
"default": null
},
"nameType": null,
"optional": null,
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16838,
"end": 16845,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16838,
"end": 16842,
"ctxt": 0
},
"value": "Dict",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 16842,
"end": 16845,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 16843,
"end": 16844,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16843,
"end": 16844,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 16859,
"end": 16862,
"ctxt": 0
},
"value": "ff1",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 16899,
"end": 16917,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 16899,
"end": 16917,
"ctxt": 0
},
"value": "dd",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16901,
"end": 16917,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16903,
"end": 16917,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16903,
"end": 16911,
"ctxt": 0
},
"value": "DictDict",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 16911,
"end": 16917,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 16912,
"end": 16913,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16912,
"end": 16913,
"ctxt": 0
},
"value": "V",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 16915,
"end": 16916,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16915,
"end": 16916,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 16919,
"end": 16924,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 16919,
"end": 16924,
"ctxt": 0
},
"value": "k1",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16921,
"end": 16924,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16923,
"end": 16924,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16923,
"end": 16924,
"ctxt": 0
},
"value": "V",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 16926,
"end": 16931,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 16926,
"end": 16931,
"ctxt": 0
},
"value": "k2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16928,
"end": 16931,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16930,
"end": 16931,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16930,
"end": 16931,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 16850,
"end": 16967,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 16941,
"end": 16967,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 16947,
"end": 16965,
"ctxt": 0
},
"argument": {
"type": "MemberExpression",
"span": {
"start": 16954,
"end": 16964,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 16954,
"end": 16960,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16954,
"end": 16956,
"ctxt": 0
},
"value": "dd",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 16956,
"end": 16960,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 16957,
"end": 16959,
"ctxt": 0
},
"value": "k1",
"optional": false
}
}
},
"property": {
"type": "Computed",
"span": {
"start": 16960,
"end": 16964,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 16961,
"end": 16963,
"ctxt": 0
},
"value": "k2",
"optional": false
}
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 16862,
"end": 16898,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 16863,
"end": 16879,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 16863,
"end": 16864,
"ctxt": 0
},
"value": "V",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsKeywordType",
"span": {
"start": 16873,
"end": 16879,
"ctxt": 0
},
"kind": "string"
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 16881,
"end": 16897,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 16881,
"end": 16882,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsKeywordType",
"span": {
"start": 16891,
"end": 16897,
"ctxt": 0
},
"kind": "string"
},
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 16932,
"end": 16940,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 16934,
"end": 16940,
"ctxt": 0
},
"kind": "number"
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 16978,
"end": 16981,
"ctxt": 0
},
"value": "ff2",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 17018,
"end": 17036,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 17018,
"end": 17036,
"ctxt": 0
},
"value": "dd",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17020,
"end": 17036,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17022,
"end": 17036,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17022,
"end": 17030,
"ctxt": 0
},
"value": "DictDict",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 17030,
"end": 17036,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 17031,
"end": 17032,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17031,
"end": 17032,
"ctxt": 0
},
"value": "V",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 17034,
"end": 17035,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17034,
"end": 17035,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 17038,
"end": 17043,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 17038,
"end": 17043,
"ctxt": 0
},
"value": "k1",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17040,
"end": 17043,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17042,
"end": 17043,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17042,
"end": 17043,
"ctxt": 0
},
"value": "V",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 17045,
"end": 17050,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 17045,
"end": 17050,
"ctxt": 0
},
"value": "k2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17047,
"end": 17050,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17049,
"end": 17050,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17049,
"end": 17050,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 16969,
"end": 17112,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 17060,
"end": 17112,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 17066,
"end": 17092,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 17072,
"end": 17091,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 17072,
"end": 17073,
"ctxt": 0
},
"value": "d",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17073,
"end": 17082,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17075,
"end": 17082,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17075,
"end": 17079,
"ctxt": 0
},
"value": "Dict",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 17079,
"end": 17082,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 17080,
"end": 17081,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17080,
"end": 17081,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 17085,
"end": 17091,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17085,
"end": 17087,
"ctxt": 0
},
"value": "dd",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 17087,
"end": 17091,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 17088,
"end": 17090,
"ctxt": 0
},
"value": "k1",
"optional": false
}
}
},
"definite": false
}
]
},
{
"type": "ReturnStatement",
"span": {
"start": 17097,
"end": 17110,
"ctxt": 0
},
"argument": {
"type": "MemberExpression",
"span": {
"start": 17104,
"end": 17109,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17104,
"end": 17105,
"ctxt": 0
},
"value": "d",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 17105,
"end": 17109,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 17106,
"end": 17108,
"ctxt": 0
},
"value": "k2",
"optional": false
}
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 16981,
"end": 17017,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 16982,
"end": 16998,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 16982,
"end": 16983,
"ctxt": 0
},
"value": "V",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsKeywordType",
"span": {
"start": 16992,
"end": 16998,
"ctxt": 0
},
"kind": "string"
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 17000,
"end": 17016,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 17000,
"end": 17001,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsKeywordType",
"span": {
"start": 17010,
"end": 17016,
"ctxt": 0
},
"kind": "string"
},
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 17051,
"end": 17059,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 17053,
"end": 17059,
"ctxt": 0
},
"kind": "number"
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 17136,
"end": 17280,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 17142,
"end": 17279,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 17142,
"end": 17145,
"ctxt": 0
},
"value": "cf1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 17148,
"end": 17279,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 17221,
"end": 17225,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17222,
"end": 17225,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17224,
"end": 17225,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17224,
"end": 17225,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 17227,
"end": 17231,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17228,
"end": 17231,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17230,
"end": 17231,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17230,
"end": 17231,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
],
"body": {
"type": "BlockStatement",
"span": {
"start": 17236,
"end": 17279,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 17242,
"end": 17265,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 17248,
"end": 17264,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 17248,
"end": 17249,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17249,
"end": 17257,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 17251,
"end": 17257,
"ctxt": 0
},
"kind": "string"
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 17260,
"end": 17264,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17260,
"end": 17261,
"ctxt": 0
},
"value": "t",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 17261,
"end": 17264,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 17262,
"end": 17263,
"ctxt": 0
},
"value": "k",
"optional": false
}
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 17270,
"end": 17277,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 17270,
"end": 17276,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17270,
"end": 17271,
"ctxt": 0
},
"value": "t",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17272,
"end": 17276,
"ctxt": 0
},
"value": "cool",
"optional": false
}
}
}
]
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 17148,
"end": 17220,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 17149,
"end": 17200,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 17149,
"end": 17150,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsIntersectionType",
"span": {
"start": 17159,
"end": 17200,
"ctxt": 0
},
"types": [
{
"type": "TsMappedType",
"span": {
"start": 17159,
"end": 17180,
"ctxt": 0
},
"readonly": null,
"typeParam": {
"type": "TsTypeParameter",
"span": {
"start": 17162,
"end": 17168,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 17162,
"end": 17163,
"ctxt": 0
},
"value": "P",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 17167,
"end": 17168,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17167,
"end": 17168,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
},
"default": null
},
"nameType": null,
"optional": null,
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 17171,
"end": 17177,
"ctxt": 0
},
"kind": "string"
}
},
{
"type": "TsTypeLiteral",
"span": {
"start": 17183,
"end": 17200,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 17185,
"end": 17198,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 17185,
"end": 17189,
"ctxt": 0
},
"value": "cool",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17189,
"end": 17197,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 17191,
"end": 17197,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
]
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 17202,
"end": 17219,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 17202,
"end": 17203,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 17212,
"end": 17219,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17218,
"end": 17219,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17218,
"end": 17219,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 17282,
"end": 17415,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 17288,
"end": 17414,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 17288,
"end": 17291,
"ctxt": 0
},
"value": "cf2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 17294,
"end": 17414,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 17356,
"end": 17360,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17357,
"end": 17360,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17359,
"end": 17360,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17359,
"end": 17360,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 17362,
"end": 17366,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17363,
"end": 17366,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17365,
"end": 17366,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17365,
"end": 17366,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
],
"body": {
"type": "BlockStatement",
"span": {
"start": 17371,
"end": 17414,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 17377,
"end": 17400,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 17383,
"end": 17399,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 17383,
"end": 17384,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17384,
"end": 17392,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 17386,
"end": 17392,
"ctxt": 0
},
"kind": "string"
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 17395,
"end": 17399,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17395,
"end": 17396,
"ctxt": 0
},
"value": "t",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 17396,
"end": 17399,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 17397,
"end": 17398,
"ctxt": 0
},
"value": "k",
"optional": false
}
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 17405,
"end": 17412,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 17405,
"end": 17411,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17405,
"end": 17406,
"ctxt": 0
},
"value": "t",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17407,
"end": 17411,
"ctxt": 0
},
"value": "cool",
"optional": false
}
}
}
]
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 17294,
"end": 17355,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 17295,
"end": 17335,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 17295,
"end": 17296,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsMappedType",
"span": {
"start": 17305,
"end": 17335,
"ctxt": 0
},
"readonly": null,
"typeParam": {
"type": "TsTypeParameter",
"span": {
"start": 17308,
"end": 17323,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 17308,
"end": 17309,
"ctxt": 0
},
"value": "P",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsUnionType",
"span": {
"start": 17313,
"end": 17323,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 17313,
"end": 17314,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17313,
"end": 17314,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
},
{
"type": "TsLiteralType",
"span": {
"start": 17317,
"end": 17323,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 17317,
"end": 17323,
"ctxt": 0
},
"value": "cool",
"raw": "\"cool\""
}
}
]
},
"default": null
},
"nameType": null,
"optional": null,
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 17326,
"end": 17332,
"ctxt": 0
},
"kind": "string"
}
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 17337,
"end": 17354,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 17337,
"end": 17338,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 17347,
"end": 17354,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17353,
"end": 17354,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17353,
"end": 17354,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
"definite": false
}
]
}
],
"interpreter": null
}