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

8588 lines
229 KiB
JSON

{
"type": "Script",
"span": {
"start": 0,
"end": 3782,
"ctxt": 0
},
"body": [
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 6,
"end": 11,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"declare": false,
"span": {
"start": 0,
"end": 94,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 18,
"end": 31,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 18,
"end": 22,
"ctxt": 0
},
"value": "name",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 22,
"end": 30,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 24,
"end": 30,
"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": 36,
"end": 50,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 36,
"end": 41,
"ctxt": 0
},
"value": "width",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 41,
"end": 49,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 43,
"end": 49,
"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": 55,
"end": 70,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 55,
"end": 61,
"ctxt": 0
},
"value": "height",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 61,
"end": 69,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 63,
"end": 69,
"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": 75,
"end": 92,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 75,
"end": 82,
"ctxt": 0
},
"value": "visible",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 82,
"end": 91,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 84,
"end": 91,
"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": "TsTypeAliasDeclaration",
"span": {
"start": 96,
"end": 136,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 101,
"end": 111,
"ctxt": 0
},
"value": "Dictionary",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 111,
"end": 114,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 112,
"end": 113,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 112,
"end": 113,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 117,
"end": 135,
"ctxt": 0
},
"members": [
{
"type": "TsIndexSignature",
"params": [
{
"type": "Identifier",
"span": {
"start": 120,
"end": 129,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 121,
"end": 129,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 123,
"end": 129,
"ctxt": 0
},
"kind": "string"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 130,
"end": 133,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 132,
"end": 133,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 132,
"end": 133,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"readonly": false,
"static": false,
"span": {
"start": 119,
"end": 133,
"ctxt": 0
}
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 138,
"end": 158,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 143,
"end": 146,
"ctxt": 0
},
"value": "T00",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 149,
"end": 157,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 155,
"end": 157,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 155,
"end": 157,
"ctxt": 0
},
"value": "K0",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 170,
"end": 194,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 175,
"end": 178,
"ctxt": 0
},
"value": "T01",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 181,
"end": 193,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 187,
"end": 193,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 187,
"end": 193,
"ctxt": 0
},
"value": "Object",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 195,
"end": 225,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 200,
"end": 203,
"ctxt": 0
},
"value": "T02",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 206,
"end": 224,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 212,
"end": 224,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 218,
"end": 224,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 218,
"end": 224,
"ctxt": 0
},
"value": "Object",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 226,
"end": 262,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 231,
"end": 234,
"ctxt": 0
},
"value": "T03",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 237,
"end": 261,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 243,
"end": 261,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 249,
"end": 261,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 255,
"end": 261,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 255,
"end": 261,
"ctxt": 0
},
"value": "Object",
"optional": false
},
"typeParams": null
}
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 263,
"end": 305,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 268,
"end": 271,
"ctxt": 0
},
"value": "T04",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 274,
"end": 304,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 280,
"end": 304,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 286,
"end": 304,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 292,
"end": 304,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 298,
"end": 304,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 298,
"end": 304,
"ctxt": 0
},
"value": "Object",
"optional": false
},
"typeParams": null
}
}
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 306,
"end": 354,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 311,
"end": 314,
"ctxt": 0
},
"value": "T05",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 317,
"end": 353,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 323,
"end": 353,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 329,
"end": 353,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 335,
"end": 353,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 341,
"end": 353,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 347,
"end": 353,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 347,
"end": 353,
"ctxt": 0
},
"value": "Object",
"optional": false
},
"typeParams": null
}
}
}
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 355,
"end": 409,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 360,
"end": 363,
"ctxt": 0
},
"value": "T06",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 366,
"end": 408,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 372,
"end": 408,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 378,
"end": 408,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 384,
"end": 408,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 390,
"end": 408,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 396,
"end": 408,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 402,
"end": 408,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 402,
"end": 408,
"ctxt": 0
},
"value": "Object",
"optional": false
},
"typeParams": null
}
}
}
}
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 411,
"end": 436,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 416,
"end": 419,
"ctxt": 0
},
"value": "T10",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 422,
"end": 435,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 422,
"end": 427,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 422,
"end": 427,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 428,
"end": 434,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 428,
"end": 434,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 437,
"end": 461,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 442,
"end": 445,
"ctxt": 0
},
"value": "T11",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 448,
"end": 460,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 448,
"end": 453,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 448,
"end": 453,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 454,
"end": 459,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 454,
"end": 459,
"ctxt": 0
},
"value": "foo",
"raw": "\"foo\""
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 472,
"end": 505,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 477,
"end": 480,
"ctxt": 0
},
"value": "T12",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 483,
"end": 504,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 483,
"end": 488,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 483,
"end": 488,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsUnionType",
"span": {
"start": 489,
"end": 503,
"ctxt": 0
},
"types": [
{
"type": "TsLiteralType",
"span": {
"start": 489,
"end": 495,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 489,
"end": 495,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
}
},
{
"type": "TsLiteralType",
"span": {
"start": 498,
"end": 503,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 498,
"end": 503,
"ctxt": 0
},
"value": "foo",
"raw": "\"foo\""
}
}
]
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 516,
"end": 538,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 521,
"end": 524,
"ctxt": 0
},
"value": "T13",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 527,
"end": 537,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 527,
"end": 532,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 527,
"end": 532,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsKeywordType",
"span": {
"start": 533,
"end": 536,
"ctxt": 0
},
"kind": "any"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 549,
"end": 574,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 554,
"end": 557,
"ctxt": 0
},
"value": "T14",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 560,
"end": 573,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 560,
"end": 565,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 560,
"end": 565,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsKeywordType",
"span": {
"start": 566,
"end": 572,
"ctxt": 0
},
"kind": "string"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 585,
"end": 610,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 590,
"end": 593,
"ctxt": 0
},
"value": "T15",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 596,
"end": 609,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 596,
"end": 601,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 596,
"end": 601,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsKeywordType",
"span": {
"start": 602,
"end": 608,
"ctxt": 0
},
"kind": "number"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 621,
"end": 647,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 626,
"end": 629,
"ctxt": 0
},
"value": "T16",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 632,
"end": 646,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 632,
"end": 637,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 632,
"end": 637,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsKeywordType",
"span": {
"start": 638,
"end": 645,
"ctxt": 0
},
"kind": "boolean"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 658,
"end": 681,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 663,
"end": 666,
"ctxt": 0
},
"value": "T17",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 669,
"end": 680,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 669,
"end": 674,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 669,
"end": 674,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsKeywordType",
"span": {
"start": 675,
"end": 679,
"ctxt": 0
},
"kind": "void"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 692,
"end": 720,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 697,
"end": 700,
"ctxt": 0
},
"value": "T18",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 703,
"end": 719,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 703,
"end": 708,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 703,
"end": 708,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsKeywordType",
"span": {
"start": 709,
"end": 718,
"ctxt": 0
},
"kind": "undefined"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 731,
"end": 763,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 736,
"end": 739,
"ctxt": 0
},
"value": "T19",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 742,
"end": 762,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 742,
"end": 747,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 742,
"end": 747,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeLiteral",
"span": {
"start": 748,
"end": 761,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 750,
"end": 759,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 750,
"end": 751,
"ctxt": 0
},
"value": "x",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 751,
"end": 759,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 753,
"end": 759,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 774,
"end": 808,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 779,
"end": 782,
"ctxt": 0
},
"value": "T20",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 785,
"end": 807,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 785,
"end": 790,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 785,
"end": 790,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsUnionType",
"span": {
"start": 791,
"end": 806,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 791,
"end": 797,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 800,
"end": 806,
"ctxt": 0
},
"kind": "number"
}
]
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 819,
"end": 853,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 824,
"end": 827,
"ctxt": 0
},
"value": "T21",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 830,
"end": 852,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 830,
"end": 835,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 830,
"end": 835,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsIntersectionType",
"span": {
"start": 836,
"end": 851,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 836,
"end": 842,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 845,
"end": 851,
"ctxt": 0
},
"kind": "number"
}
]
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 854,
"end": 889,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 859,
"end": 862,
"ctxt": 0
},
"value": "T22",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 865,
"end": 888,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 865,
"end": 870,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 865,
"end": 870,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsUnionType",
"span": {
"start": 871,
"end": 887,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 871,
"end": 877,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 880,
"end": 887,
"ctxt": 0
},
"kind": "boolean"
}
]
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 901,
"end": 931,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 906,
"end": 909,
"ctxt": 0
},
"value": "T30",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 912,
"end": 930,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsArrayType",
"span": {
"start": 912,
"end": 920,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 912,
"end": 918,
"ctxt": 0
},
"kind": "string"
}
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 921,
"end": 929,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 921,
"end": 929,
"ctxt": 0
},
"value": "length",
"raw": "\"length\""
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 932,
"end": 960,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 937,
"end": 940,
"ctxt": 0
},
"value": "T31",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 943,
"end": 959,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsArrayType",
"span": {
"start": 943,
"end": 951,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 943,
"end": 949,
"ctxt": 0
},
"kind": "string"
}
},
"indexType": {
"type": "TsKeywordType",
"span": {
"start": 952,
"end": 958,
"ctxt": 0
},
"kind": "number"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 961,
"end": 989,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 966,
"end": 969,
"ctxt": 0
},
"value": "T32",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 972,
"end": 988,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsArrayType",
"span": {
"start": 972,
"end": 980,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 972,
"end": 978,
"ctxt": 0
},
"kind": "string"
}
},
"indexType": {
"type": "TsKeywordType",
"span": {
"start": 981,
"end": 987,
"ctxt": 0
},
"kind": "string"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1000,
"end": 1029,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1005,
"end": 1008,
"ctxt": 0
},
"value": "T33",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1011,
"end": 1028,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsArrayType",
"span": {
"start": 1011,
"end": 1019,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 1011,
"end": 1017,
"ctxt": 0
},
"kind": "string"
}
},
"indexType": {
"type": "TsKeywordType",
"span": {
"start": 1020,
"end": 1027,
"ctxt": 0
},
"kind": "boolean"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1041,
"end": 1076,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1046,
"end": 1049,
"ctxt": 0
},
"value": "T40",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1052,
"end": 1075,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 1052,
"end": 1070,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1052,
"end": 1062,
"ctxt": 0
},
"value": "Dictionary",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1062,
"end": 1070,
"ctxt": 0
},
"params": [
{
"type": "TsKeywordType",
"span": {
"start": 1063,
"end": 1069,
"ctxt": 0
},
"kind": "string"
}
]
}
},
"indexType": {
"type": "TsKeywordType",
"span": {
"start": 1071,
"end": 1074,
"ctxt": 0
},
"kind": "any"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1077,
"end": 1115,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1082,
"end": 1085,
"ctxt": 0
},
"value": "T41",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1088,
"end": 1114,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 1088,
"end": 1106,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1088,
"end": 1098,
"ctxt": 0
},
"value": "Dictionary",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1098,
"end": 1106,
"ctxt": 0
},
"params": [
{
"type": "TsKeywordType",
"span": {
"start": 1099,
"end": 1105,
"ctxt": 0
},
"kind": "string"
}
]
}
},
"indexType": {
"type": "TsKeywordType",
"span": {
"start": 1107,
"end": 1113,
"ctxt": 0
},
"kind": "number"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1116,
"end": 1154,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1121,
"end": 1124,
"ctxt": 0
},
"value": "T42",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1127,
"end": 1153,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 1127,
"end": 1145,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1127,
"end": 1137,
"ctxt": 0
},
"value": "Dictionary",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1137,
"end": 1145,
"ctxt": 0
},
"params": [
{
"type": "TsKeywordType",
"span": {
"start": 1138,
"end": 1144,
"ctxt": 0
},
"kind": "string"
}
]
}
},
"indexType": {
"type": "TsKeywordType",
"span": {
"start": 1146,
"end": 1152,
"ctxt": 0
},
"kind": "string"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1155,
"end": 1194,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1160,
"end": 1163,
"ctxt": 0
},
"value": "T43",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1166,
"end": 1193,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 1166,
"end": 1184,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1166,
"end": 1176,
"ctxt": 0
},
"value": "Dictionary",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1176,
"end": 1184,
"ctxt": 0
},
"params": [
{
"type": "TsKeywordType",
"span": {
"start": 1177,
"end": 1183,
"ctxt": 0
},
"kind": "string"
}
]
}
},
"indexType": {
"type": "TsKeywordType",
"span": {
"start": 1185,
"end": 1192,
"ctxt": 0
},
"kind": "boolean"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1206,
"end": 1226,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1211,
"end": 1214,
"ctxt": 0
},
"value": "T50",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1217,
"end": 1225,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsKeywordType",
"span": {
"start": 1217,
"end": 1220,
"ctxt": 0
},
"kind": "any"
},
"indexType": {
"type": "TsKeywordType",
"span": {
"start": 1221,
"end": 1224,
"ctxt": 0
},
"kind": "any"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1227,
"end": 1250,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1232,
"end": 1235,
"ctxt": 0
},
"value": "T51",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1238,
"end": 1249,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsKeywordType",
"span": {
"start": 1238,
"end": 1241,
"ctxt": 0
},
"kind": "any"
},
"indexType": {
"type": "TsKeywordType",
"span": {
"start": 1242,
"end": 1248,
"ctxt": 0
},
"kind": "number"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1251,
"end": 1274,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1256,
"end": 1259,
"ctxt": 0
},
"value": "T52",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1262,
"end": 1273,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsKeywordType",
"span": {
"start": 1262,
"end": 1265,
"ctxt": 0
},
"kind": "any"
},
"indexType": {
"type": "TsKeywordType",
"span": {
"start": 1266,
"end": 1272,
"ctxt": 0
},
"kind": "string"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1275,
"end": 1299,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1280,
"end": 1283,
"ctxt": 0
},
"value": "T53",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1286,
"end": 1298,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsKeywordType",
"span": {
"start": 1286,
"end": 1289,
"ctxt": 0
},
"kind": "any"
},
"indexType": {
"type": "TsKeywordType",
"span": {
"start": 1290,
"end": 1297,
"ctxt": 0
},
"kind": "boolean"
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1311,
"end": 1337,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1316,
"end": 1319,
"ctxt": 0
},
"value": "T60",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1322,
"end": 1336,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeLiteral",
"span": {
"start": 1322,
"end": 1324,
"ctxt": 0
},
"members": []
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 1325,
"end": 1335,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 1325,
"end": 1335,
"ctxt": 0
},
"value": "toString",
"raw": "\"toString\""
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 1338,
"end": 1364,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 1343,
"end": 1346,
"ctxt": 0
},
"value": "T61",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1349,
"end": 1363,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTupleType",
"span": {
"start": 1349,
"end": 1351,
"ctxt": 0
},
"elemTypes": []
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 1352,
"end": 1362,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 1352,
"end": 1362,
"ctxt": 0
},
"value": "toString",
"raw": "\"toString\""
}
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1366,
"end": 1392,
"ctxt": 0
},
"kind": "let",
"declare": true,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1378,
"end": 1391,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1378,
"end": 1382,
"ctxt": 0
},
"value": "cond",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1382,
"end": 1391,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1384,
"end": 1391,
"ctxt": 0
},
"kind": "boolean"
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1403,
"end": 1414,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 1437,
"end": 1443,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1437,
"end": 1443,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1440,
"end": 1443,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1442,
"end": 1443,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1442,
"end": 1443,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 1445,
"end": 1451,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1445,
"end": 1451,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1448,
"end": 1451,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1450,
"end": 1451,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1450,
"end": 1451,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 1394,
"end": 1477,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1453,
"end": 1477,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 1459,
"end": 1475,
"ctxt": 0
},
"argument": {
"type": "MemberExpression",
"span": {
"start": 1466,
"end": 1474,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 1466,
"end": 1469,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 1469,
"end": 1474,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1470,
"end": 1473,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1414,
"end": 1436,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1415,
"end": 1416,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1415,
"end": 1416,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 1418,
"end": 1435,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1418,
"end": 1419,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 1428,
"end": 1435,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1434,
"end": 1435,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1434,
"end": 1435,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1488,
"end": 1499,
"ctxt": 0
},
"value": "setProperty",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 1522,
"end": 1528,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1522,
"end": 1528,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1525,
"end": 1528,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1527,
"end": 1528,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1527,
"end": 1528,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 1530,
"end": 1536,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1530,
"end": 1536,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1533,
"end": 1536,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1535,
"end": 1536,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1535,
"end": 1536,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 1538,
"end": 1549,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1538,
"end": 1549,
"ctxt": 0
},
"value": "value",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1543,
"end": 1549,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 1545,
"end": 1549,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 1545,
"end": 1546,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1545,
"end": 1546,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 1547,
"end": 1548,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1547,
"end": 1548,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 1479,
"end": 1576,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1551,
"end": 1576,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 1557,
"end": 1574,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1557,
"end": 1573,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 1557,
"end": 1565,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 1557,
"end": 1560,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 1560,
"end": 1565,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1561,
"end": 1564,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
},
"right": {
"type": "Identifier",
"span": {
"start": 1568,
"end": 1573,
"ctxt": 0
},
"value": "value",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1499,
"end": 1521,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1500,
"end": 1501,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1500,
"end": 1501,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 1503,
"end": 1520,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1503,
"end": 1504,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 1513,
"end": 1520,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1519,
"end": 1520,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1519,
"end": 1520,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1587,
"end": 1590,
"ctxt": 0
},
"value": "f10",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 1591,
"end": 1603,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1591,
"end": 1603,
"ctxt": 0
},
"value": "shape",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1596,
"end": 1603,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1598,
"end": 1603,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1598,
"end": 1603,
"ctxt": 0
},
"value": "Shape",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 1578,
"end": 1920,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1605,
"end": 1920,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 1611,
"end": 1647,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1615,
"end": 1646,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1615,
"end": 1617,
"ctxt": 0
},
"value": "x1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 1620,
"end": 1646,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 1620,
"end": 1631,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1632,
"end": 1637,
"ctxt": 0
},
"value": "shape",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 1639,
"end": 1645,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1652,
"end": 1688,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1656,
"end": 1687,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1656,
"end": 1658,
"ctxt": 0
},
"value": "x2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 1661,
"end": 1687,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 1661,
"end": 1672,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1673,
"end": 1678,
"ctxt": 0
},
"value": "shape",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 1680,
"end": 1686,
"ctxt": 0
},
"value": "size",
"raw": "\"size\""
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1703,
"end": 1755,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1707,
"end": 1754,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1707,
"end": 1709,
"ctxt": 0
},
"value": "x3",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 1712,
"end": 1754,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 1712,
"end": 1723,
"ctxt": 0
},
"value": "getProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1724,
"end": 1729,
"ctxt": 0
},
"value": "shape",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "ConditionalExpression",
"span": {
"start": 1731,
"end": 1753,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 1731,
"end": 1735,
"ctxt": 0
},
"value": "cond",
"optional": false
},
"consequent": {
"type": "StringLiteral",
"span": {
"start": 1738,
"end": 1744,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
},
"alternate": {
"type": "StringLiteral",
"span": {
"start": 1747,
"end": 1753,
"ctxt": 0
},
"value": "size",
"raw": "\"size\""
}
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1770,
"end": 1810,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 1770,
"end": 1809,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 1770,
"end": 1781,
"ctxt": 0
},
"value": "setProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1782,
"end": 1787,
"ctxt": 0
},
"value": "shape",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 1789,
"end": 1795,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 1797,
"end": 1808,
"ctxt": 0
},
"value": "rectangle",
"raw": "\"rectangle\""
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1815,
"end": 1846,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 1815,
"end": 1845,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 1815,
"end": 1826,
"ctxt": 0
},
"value": "setProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1827,
"end": 1832,
"ctxt": 0
},
"value": "shape",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 1834,
"end": 1840,
"ctxt": 0
},
"value": "size",
"raw": "\"size\""
}
},
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 1842,
"end": 1844,
"ctxt": 0
},
"value": 10.0,
"raw": "10"
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1861,
"end": 1908,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 1861,
"end": 1907,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 1861,
"end": 1872,
"ctxt": 0
},
"value": "setProperty",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1873,
"end": 1878,
"ctxt": 0
},
"value": "shape",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "ConditionalExpression",
"span": {
"start": 1880,
"end": 1902,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 1880,
"end": 1884,
"ctxt": 0
},
"value": "cond",
"optional": false
},
"consequent": {
"type": "StringLiteral",
"span": {
"start": 1887,
"end": 1893,
"ctxt": 0
},
"value": "name",
"raw": "\"name\""
},
"alternate": {
"type": "StringLiteral",
"span": {
"start": 1896,
"end": 1902,
"ctxt": 0
},
"value": "size",
"raw": "\"size\""
}
}
},
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 1904,
"end": 1906,
"ctxt": 0
},
"value": 10.0,
"raw": "10"
}
}
],
"typeArguments": null
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1931,
"end": 1934,
"ctxt": 0
},
"value": "f20",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 1941,
"end": 1949,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1941,
"end": 1949,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1942,
"end": 1949,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 1944,
"end": 1949,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1944,
"end": 1945,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1944,
"end": 1945,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 1948,
"end": 1949,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1948,
"end": 1949,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 1951,
"end": 1959,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1951,
"end": 1959,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1952,
"end": 1959,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 1954,
"end": 1959,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1954,
"end": 1955,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1954,
"end": 1955,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 1958,
"end": 1959,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1958,
"end": 1959,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 1961,
"end": 1978,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1961,
"end": 1978,
"ctxt": 0
},
"value": "k1",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1963,
"end": 1978,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 1965,
"end": 1978,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsParenthesizedType",
"span": {
"start": 1971,
"end": 1978,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 1972,
"end": 1977,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 1972,
"end": 1973,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1972,
"end": 1973,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 1976,
"end": 1977,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1976,
"end": 1977,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 1980,
"end": 2001,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1980,
"end": 2001,
"ctxt": 0
},
"value": "k2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1982,
"end": 2001,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 1984,
"end": 2001,
"ctxt": 0
},
"types": [
{
"type": "TsTypeOperator",
"span": {
"start": 1984,
"end": 1991,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1990,
"end": 1991,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1990,
"end": 1991,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
{
"type": "TsTypeOperator",
"span": {
"start": 1994,
"end": 2001,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2000,
"end": 2001,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2000,
"end": 2001,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
]
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 2003,
"end": 2020,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2003,
"end": 2020,
"ctxt": 0
},
"value": "k3",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2005,
"end": 2020,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 2007,
"end": 2020,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsParenthesizedType",
"span": {
"start": 2013,
"end": 2020,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIntersectionType",
"span": {
"start": 2014,
"end": 2019,
"ctxt": 0
},
"types": [
{
"type": "TsTypeReference",
"span": {
"start": 2014,
"end": 2015,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2014,
"end": 2015,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
{
"type": "TsTypeReference",
"span": {
"start": 2018,
"end": 2019,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2018,
"end": 2019,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 2022,
"end": 2043,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2022,
"end": 2043,
"ctxt": 0
},
"value": "k4",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2024,
"end": 2043,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 2026,
"end": 2043,
"ctxt": 0
},
"types": [
{
"type": "TsTypeOperator",
"span": {
"start": 2026,
"end": 2033,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2032,
"end": 2033,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2032,
"end": 2033,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
{
"type": "TsTypeOperator",
"span": {
"start": 2036,
"end": 2043,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2042,
"end": 2043,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2042,
"end": 2043,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 1922,
"end": 2357,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 2045,
"end": 2357,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 2051,
"end": 2057,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 2051,
"end": 2056,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2051,
"end": 2052,
"ctxt": 0
},
"value": "x",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 2052,
"end": 2056,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2053,
"end": 2055,
"ctxt": 0
},
"value": "k1",
"optional": false
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2062,
"end": 2068,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 2062,
"end": 2067,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2062,
"end": 2063,
"ctxt": 0
},
"value": "x",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 2063,
"end": 2067,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2064,
"end": 2066,
"ctxt": 0
},
"value": "k2",
"optional": false
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2073,
"end": 2079,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 2073,
"end": 2078,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2073,
"end": 2074,
"ctxt": 0
},
"value": "x",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 2074,
"end": 2078,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2075,
"end": 2077,
"ctxt": 0
},
"value": "k3",
"optional": false
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2094,
"end": 2100,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 2094,
"end": 2099,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2094,
"end": 2095,
"ctxt": 0
},
"value": "x",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 2095,
"end": 2099,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2096,
"end": 2098,
"ctxt": 0
},
"value": "k4",
"optional": false
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2116,
"end": 2122,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 2116,
"end": 2121,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2116,
"end": 2117,
"ctxt": 0
},
"value": "y",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 2117,
"end": 2121,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2118,
"end": 2120,
"ctxt": 0
},
"value": "k1",
"optional": false
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2127,
"end": 2133,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 2127,
"end": 2132,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2127,
"end": 2128,
"ctxt": 0
},
"value": "y",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 2128,
"end": 2132,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2129,
"end": 2131,
"ctxt": 0
},
"value": "k2",
"optional": false
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2138,
"end": 2144,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 2138,
"end": 2143,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2138,
"end": 2139,
"ctxt": 0
},
"value": "y",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 2139,
"end": 2143,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2140,
"end": 2142,
"ctxt": 0
},
"value": "k3",
"optional": false
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2149,
"end": 2155,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 2149,
"end": 2154,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2149,
"end": 2150,
"ctxt": 0
},
"value": "y",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 2150,
"end": 2154,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2151,
"end": 2153,
"ctxt": 0
},
"value": "k4",
"optional": false
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2161,
"end": 2169,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2161,
"end": 2168,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2161,
"end": 2163,
"ctxt": 0
},
"value": "k1",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2166,
"end": 2168,
"ctxt": 0
},
"value": "k2",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2174,
"end": 2182,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2174,
"end": 2181,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2174,
"end": 2176,
"ctxt": 0
},
"value": "k1",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2179,
"end": 2181,
"ctxt": 0
},
"value": "k3",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2197,
"end": 2205,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2197,
"end": 2204,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2197,
"end": 2199,
"ctxt": 0
},
"value": "k1",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2202,
"end": 2204,
"ctxt": 0
},
"value": "k4",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2221,
"end": 2229,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2221,
"end": 2228,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2221,
"end": 2223,
"ctxt": 0
},
"value": "k2",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2226,
"end": 2228,
"ctxt": 0
},
"value": "k1",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2234,
"end": 2242,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2234,
"end": 2241,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2234,
"end": 2236,
"ctxt": 0
},
"value": "k2",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2239,
"end": 2241,
"ctxt": 0
},
"value": "k3",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2257,
"end": 2265,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2257,
"end": 2264,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2257,
"end": 2259,
"ctxt": 0
},
"value": "k2",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2262,
"end": 2264,
"ctxt": 0
},
"value": "k4",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2281,
"end": 2289,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2281,
"end": 2288,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2281,
"end": 2283,
"ctxt": 0
},
"value": "k3",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2286,
"end": 2288,
"ctxt": 0
},
"value": "k1",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2294,
"end": 2302,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2294,
"end": 2301,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2294,
"end": 2296,
"ctxt": 0
},
"value": "k3",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2299,
"end": 2301,
"ctxt": 0
},
"value": "k2",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2307,
"end": 2315,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2307,
"end": 2314,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2307,
"end": 2309,
"ctxt": 0
},
"value": "k3",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2312,
"end": 2314,
"ctxt": 0
},
"value": "k4",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2321,
"end": 2329,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2321,
"end": 2328,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2321,
"end": 2323,
"ctxt": 0
},
"value": "k4",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2326,
"end": 2328,
"ctxt": 0
},
"value": "k1",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2334,
"end": 2342,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2334,
"end": 2341,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2334,
"end": 2336,
"ctxt": 0
},
"value": "k4",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2339,
"end": 2341,
"ctxt": 0
},
"value": "k2",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2347,
"end": 2355,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2347,
"end": 2354,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2347,
"end": 2349,
"ctxt": 0
},
"value": "k4",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2352,
"end": 2354,
"ctxt": 0
},
"value": "k3",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1934,
"end": 1940,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1935,
"end": 1936,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1935,
"end": 1936,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 1938,
"end": 1939,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1938,
"end": 1939,
"ctxt": 0
},
"value": "U",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 2389,
"end": 2391,
"ctxt": 0
},
"value": "f3",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 2462,
"end": 2466,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2462,
"end": 2466,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2463,
"end": 2466,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2465,
"end": 2466,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2465,
"end": 2466,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 2468,
"end": 2472,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2468,
"end": 2472,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2469,
"end": 2472,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2471,
"end": 2472,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2471,
"end": 2472,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 2474,
"end": 2482,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2474,
"end": 2482,
"ctxt": 0
},
"value": "tk",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2476,
"end": 2482,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 2478,
"end": 2482,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 2478,
"end": 2479,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2478,
"end": 2479,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 2480,
"end": 2481,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2480,
"end": 2481,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 2484,
"end": 2488,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2484,
"end": 2488,
"ctxt": 0
},
"value": "u",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2485,
"end": 2488,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2487,
"end": 2488,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2487,
"end": 2488,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 2490,
"end": 2494,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2490,
"end": 2494,
"ctxt": 0
},
"value": "j",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2491,
"end": 2494,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2493,
"end": 2494,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2493,
"end": 2494,
"ctxt": 0
},
"value": "J",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 2496,
"end": 2504,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2496,
"end": 2504,
"ctxt": 0
},
"value": "uk",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2498,
"end": 2504,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 2500,
"end": 2504,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 2500,
"end": 2501,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2500,
"end": 2501,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 2502,
"end": 2503,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2502,
"end": 2503,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 2506,
"end": 2514,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2506,
"end": 2514,
"ctxt": 0
},
"value": "tj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2508,
"end": 2514,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 2510,
"end": 2514,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 2510,
"end": 2511,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2510,
"end": 2511,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 2512,
"end": 2513,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2512,
"end": 2513,
"ctxt": 0
},
"value": "J",
"optional": false
},
"typeParams": null
}
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 2516,
"end": 2524,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2516,
"end": 2524,
"ctxt": 0
},
"value": "uj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2518,
"end": 2524,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 2520,
"end": 2524,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 2520,
"end": 2521,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2520,
"end": 2521,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 2522,
"end": 2523,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2522,
"end": 2523,
"ctxt": 0
},
"value": "J",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 2380,
"end": 2887,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 2532,
"end": 2887,
"ctxt": 0
},
"stmts": [
{
"type": "ForInStatement",
"span": {
"start": 2538,
"end": 2742,
"ctxt": 0
},
"left": {
"type": "VariableDeclaration",
"span": {
"start": 2543,
"end": 2550,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2547,
"end": 2550,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2547,
"end": 2550,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": null
},
"init": null,
"definite": false
}
]
},
"right": {
"type": "Identifier",
"span": {
"start": 2554,
"end": 2555,
"ctxt": 0
},
"value": "t",
"optional": false
},
"body": {
"type": "BlockStatement",
"span": {
"start": 2557,
"end": 2742,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 2567,
"end": 2574,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2567,
"end": 2574,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2567,
"end": 2570,
"ctxt": 0
},
"value": "key",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2573,
"end": 2574,
"ctxt": 0
},
"value": "k",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2604,
"end": 2611,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2604,
"end": 2611,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2604,
"end": 2605,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2608,
"end": 2611,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2645,
"end": 2657,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2645,
"end": 2656,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 2645,
"end": 2651,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2645,
"end": 2646,
"ctxt": 0
},
"value": "t",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 2646,
"end": 2651,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2647,
"end": 2650,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
},
"right": {
"type": "Identifier",
"span": {
"start": 2654,
"end": 2656,
"ctxt": 0
},
"value": "tk",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2693,
"end": 2705,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2693,
"end": 2704,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2693,
"end": 2695,
"ctxt": 0
},
"value": "tk",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 2698,
"end": 2704,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2698,
"end": 2699,
"ctxt": 0
},
"value": "t",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 2699,
"end": 2704,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2700,
"end": 2703,
"ctxt": 0
},
"value": "key",
"optional": false
}
}
}
}
}
]
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2747,
"end": 2755,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2747,
"end": 2754,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2747,
"end": 2749,
"ctxt": 0
},
"value": "tk",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2752,
"end": 2754,
"ctxt": 0
},
"value": "uk",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2760,
"end": 2768,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2760,
"end": 2767,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2760,
"end": 2762,
"ctxt": 0
},
"value": "uk",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2765,
"end": 2767,
"ctxt": 0
},
"value": "tk",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2783,
"end": 2791,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2783,
"end": 2790,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2783,
"end": 2785,
"ctxt": 0
},
"value": "tj",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2788,
"end": 2790,
"ctxt": 0
},
"value": "uj",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2796,
"end": 2804,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2796,
"end": 2803,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2796,
"end": 2798,
"ctxt": 0
},
"value": "uj",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2801,
"end": 2803,
"ctxt": 0
},
"value": "tj",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2819,
"end": 2827,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2819,
"end": 2826,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2819,
"end": 2821,
"ctxt": 0
},
"value": "tk",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2824,
"end": 2826,
"ctxt": 0
},
"value": "tj",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2832,
"end": 2840,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2832,
"end": 2839,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2832,
"end": 2834,
"ctxt": 0
},
"value": "tj",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2837,
"end": 2839,
"ctxt": 0
},
"value": "tk",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2855,
"end": 2863,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2855,
"end": 2862,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2855,
"end": 2857,
"ctxt": 0
},
"value": "tk",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2860,
"end": 2862,
"ctxt": 0
},
"value": "uj",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2868,
"end": 2876,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2868,
"end": 2875,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2868,
"end": 2870,
"ctxt": 0
},
"value": "uj",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2873,
"end": 2875,
"ctxt": 0
},
"value": "tk",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2391,
"end": 2456,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2392,
"end": 2393,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2392,
"end": 2393,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2395,
"end": 2429,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2395,
"end": 2396,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2405,
"end": 2429,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2405,
"end": 2412,
"ctxt": 0
},
"value": "Extract",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2412,
"end": 2429,
"ctxt": 0
},
"params": [
{
"type": "TsTypeOperator",
"span": {
"start": 2413,
"end": 2420,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2419,
"end": 2420,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2419,
"end": 2420,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
{
"type": "TsKeywordType",
"span": {
"start": 2422,
"end": 2428,
"ctxt": 0
},
"kind": "string"
}
]
}
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2431,
"end": 2442,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2431,
"end": 2432,
"ctxt": 0
},
"value": "U",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2441,
"end": 2442,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2441,
"end": 2442,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2444,
"end": 2455,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2444,
"end": 2445,
"ctxt": 0
},
"value": "J",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2454,
"end": 2455,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2454,
"end": 2455,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 2525,
"end": 2531,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2527,
"end": 2531,
"ctxt": 0
},
"kind": "void"
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 2942,
"end": 2944,
"ctxt": 0
},
"value": "f4",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 2983,
"end": 2993,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2983,
"end": 2993,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2984,
"end": 2993,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 2986,
"end": 2993,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2992,
"end": 2993,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2992,
"end": 2993,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 2933,
"end": 3045,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 2995,
"end": 3045,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 3001,
"end": 3008,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3001,
"end": 3007,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 3001,
"end": 3002,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "NumericLiteral",
"span": {
"start": 3005,
"end": 3007,
"ctxt": 0
},
"value": 42.0,
"raw": "42"
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 3022,
"end": 3034,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3022,
"end": 3033,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 3022,
"end": 3023,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "StringLiteral",
"span": {
"start": 3026,
"end": 3033,
"ctxt": 0
},
"value": "hello",
"raw": "\"hello\""
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2944,
"end": 2982,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2945,
"end": 2981,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2945,
"end": 2946,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsMappedType",
"span": {
"start": 2955,
"end": 2981,
"ctxt": 0
},
"readonly": null,
"typeParam": {
"type": "TsTypeParameter",
"span": {
"start": 2958,
"end": 2970,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2958,
"end": 2959,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 2963,
"end": 2970,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2969,
"end": 2970,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2969,
"end": 2970,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
},
"nameType": null,
"optional": null,
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2973,
"end": 2979,
"ctxt": 0
},
"kind": "string"
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 3069,
"end": 3178,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 3074,
"end": 3087,
"ctxt": 0
},
"value": "UndefinedKeys",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3087,
"end": 3118,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3088,
"end": 3117,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3088,
"end": 3089,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 3098,
"end": 3117,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3098,
"end": 3104,
"ctxt": 0
},
"value": "Record",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3104,
"end": 3117,
"ctxt": 0
},
"params": [
{
"type": "TsKeywordType",
"span": {
"start": 3105,
"end": 3111,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 3113,
"end": 3116,
"ctxt": 0
},
"kind": "any"
}
]
}
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsMappedType",
"span": {
"start": 3121,
"end": 3177,
"ctxt": 0
},
"readonly": null,
"typeParam": {
"type": "TsTypeParameter",
"span": {
"start": 3126,
"end": 3138,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3126,
"end": 3127,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 3131,
"end": 3138,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3137,
"end": 3138,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3137,
"end": 3138,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
},
"nameType": null,
"optional": null,
"typeAnnotation": {
"type": "TsConditionalType",
"span": {
"start": 3141,
"end": 3175,
"ctxt": 0
},
"checkType": {
"type": "TsKeywordType",
"span": {
"start": 3141,
"end": 3150,
"ctxt": 0
},
"kind": "undefined"
},
"extendsType": {
"type": "TsIndexedAccessType",
"span": {
"start": 3159,
"end": 3163,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 3159,
"end": 3160,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3159,
"end": 3160,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 3161,
"end": 3162,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3161,
"end": 3162,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
},
"trueType": {
"type": "TsTypeReference",
"span": {
"start": 3166,
"end": 3167,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3166,
"end": 3167,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
},
"falseType": {
"type": "TsKeywordType",
"span": {
"start": 3170,
"end": 3175,
"ctxt": 0
},
"kind": "never"
}
}
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 3180,
"end": 3228,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 3185,
"end": 3191,
"ctxt": 0
},
"value": "MyType",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 3194,
"end": 3228,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 3195,
"end": 3205,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3195,
"end": 3196,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3196,
"end": 3204,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 3198,
"end": 3204,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3206,
"end": 3227,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3206,
"end": 3207,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3207,
"end": 3227,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 3209,
"end": 3227,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 3209,
"end": 3215,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 3218,
"end": 3227,
"ctxt": 0
},
"kind": "undefined"
}
]
}
},
"typeParams": null
}
]
}
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 3230,
"end": 3267,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 3235,
"end": 3242,
"ctxt": 0
},
"value": "Result1",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3245,
"end": 3266,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3245,
"end": 3258,
"ctxt": 0
},
"value": "UndefinedKeys",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3258,
"end": 3266,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 3259,
"end": 3265,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3259,
"end": 3265,
"ctxt": 0
},
"value": "MyType",
"optional": false
},
"typeParams": null
}
]
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 3269,
"end": 3298,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3275,
"end": 3297,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3275,
"end": 3277,
"ctxt": 0
},
"value": "a1",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3277,
"end": 3291,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 3279,
"end": 3291,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 3279,
"end": 3286,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3279,
"end": 3286,
"ctxt": 0
},
"value": "Result1",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 3287,
"end": 3290,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3287,
"end": 3290,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
}
}
}
}
},
"init": {
"type": "StringLiteral",
"span": {
"start": 3294,
"end": 3297,
"ctxt": 0
},
"value": "a",
"raw": "'a'"
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3309,
"end": 3338,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3315,
"end": 3337,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3315,
"end": 3317,
"ctxt": 0
},
"value": "b1",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3317,
"end": 3331,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 3319,
"end": 3331,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 3319,
"end": 3326,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3319,
"end": 3326,
"ctxt": 0
},
"value": "Result1",
"optional": false
},
"typeParams": null
},
"indexType": {
"type": "TsLiteralType",
"span": {
"start": 3327,
"end": 3330,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3327,
"end": 3330,
"ctxt": 0
},
"value": "b",
"raw": "'b'"
}
}
}
}
},
"init": {
"type": "StringLiteral",
"span": {
"start": 3334,
"end": 3337,
"ctxt": 0
},
"value": "b",
"raw": "'b'"
},
"definite": false
}
]
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 3349,
"end": 3354,
"ctxt": 0
},
"value": "test1",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 3405,
"end": 3409,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3405,
"end": 3409,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3406,
"end": 3409,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3408,
"end": 3409,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3408,
"end": 3409,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 3411,
"end": 3415,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3411,
"end": 3415,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3412,
"end": 3415,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3414,
"end": 3415,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3414,
"end": 3415,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 3340,
"end": 3506,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 3417,
"end": 3506,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 3423,
"end": 3433,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3423,
"end": 3432,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 3423,
"end": 3427,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3423,
"end": 3424,
"ctxt": 0
},
"value": "t",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 3424,
"end": 3427,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3425,
"end": 3426,
"ctxt": 0
},
"value": "k",
"optional": false
}
}
},
"right": {
"type": "NumericLiteral",
"span": {
"start": 3430,
"end": 3432,
"ctxt": 0
},
"value": 42.0,
"raw": "42"
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 3448,
"end": 3463,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3448,
"end": 3462,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 3448,
"end": 3452,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3448,
"end": 3449,
"ctxt": 0
},
"value": "t",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 3449,
"end": 3452,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3450,
"end": 3451,
"ctxt": 0
},
"value": "k",
"optional": false
}
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 3455,
"end": 3462,
"ctxt": 0
},
"value": "hello",
"raw": "\"hello\""
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 3478,
"end": 3494,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3478,
"end": 3493,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 3478,
"end": 3482,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3478,
"end": 3479,
"ctxt": 0
},
"value": "t",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 3479,
"end": 3482,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3480,
"end": 3481,
"ctxt": 0
},
"value": "k",
"optional": false
}
}
},
"right": {
"type": "ArrayExpression",
"span": {
"start": 3485,
"end": 3493,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 3486,
"end": 3488,
"ctxt": 0
},
"value": 10.0,
"raw": "10"
}
},
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 3490,
"end": 3492,
"ctxt": 0
},
"value": 20.0,
"raw": "20"
}
}
]
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3354,
"end": 3404,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3355,
"end": 3384,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3355,
"end": 3356,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 3365,
"end": 3384,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3365,
"end": 3371,
"ctxt": 0
},
"value": "Record",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3371,
"end": 3384,
"ctxt": 0
},
"params": [
{
"type": "TsKeywordType",
"span": {
"start": 3372,
"end": 3378,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 3380,
"end": 3383,
"ctxt": 0
},
"kind": "any"
}
]
}
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 3386,
"end": 3403,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3386,
"end": 3387,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 3396,
"end": 3403,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3402,
"end": 3403,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3402,
"end": 3403,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 3539,
"end": 3542,
"ctxt": 0
},
"value": "f30",
"optional": false
},
"declare": false,
"params": [],
"decorators": [],
"span": {
"start": 3530,
"end": 3628,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 3567,
"end": 3628,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 3573,
"end": 3626,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3577,
"end": 3625,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3577,
"end": 3578,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3578,
"end": 3615,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 3580,
"end": 3615,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 3580,
"end": 3612,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3580,
"end": 3587,
"ctxt": 0
},
"value": "Partial",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3587,
"end": 3612,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 3588,
"end": 3611,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3588,
"end": 3594,
"ctxt": 0
},
"value": "Record",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3594,
"end": 3611,
"ctxt": 0
},
"params": [
{
"type": "TsTypeOperator",
"span": {
"start": 3595,
"end": 3602,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3601,
"end": 3602,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3601,
"end": 3602,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
{
"type": "TsKeywordType",
"span": {
"start": 3604,
"end": 3610,
"ctxt": 0
},
"kind": "string"
}
]
}
}
]
}
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 3613,
"end": 3614,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3613,
"end": 3614,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
},
"init": {
"type": "StringLiteral",
"span": {
"start": 3618,
"end": 3625,
"ctxt": 0
},
"value": "hello",
"raw": "\"hello\""
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3542,
"end": 3564,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3543,
"end": 3544,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3543,
"end": 3544,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 3546,
"end": 3563,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3546,
"end": 3547,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 3556,
"end": 3563,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3562,
"end": 3563,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3562,
"end": 3563,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 3639,
"end": 3642,
"ctxt": 0
},
"value": "f31",
"optional": false
},
"declare": false,
"params": [],
"decorators": [],
"span": {
"start": 3630,
"end": 3782,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 3667,
"end": 3782,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 3673,
"end": 3780,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3677,
"end": 3779,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3677,
"end": 3678,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3678,
"end": 3769,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsIndexedAccessType",
"span": {
"start": 3680,
"end": 3769,
"ctxt": 0
},
"readonly": false,
"objectType": {
"type": "TsTypeReference",
"span": {
"start": 3680,
"end": 3766,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3680,
"end": 3687,
"ctxt": 0
},
"value": "Partial",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3687,
"end": 3766,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 3688,
"end": 3765,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3688,
"end": 3695,
"ctxt": 0
},
"value": "Partial",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3695,
"end": 3765,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 3696,
"end": 3764,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3696,
"end": 3703,
"ctxt": 0
},
"value": "Partial",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3703,
"end": 3764,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 3704,
"end": 3763,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3704,
"end": 3711,
"ctxt": 0
},
"value": "Partial",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3711,
"end": 3763,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 3712,
"end": 3762,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3712,
"end": 3719,
"ctxt": 0
},
"value": "Partial",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3719,
"end": 3762,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 3720,
"end": 3761,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3720,
"end": 3727,
"ctxt": 0
},
"value": "Partial",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3727,
"end": 3761,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 3728,
"end": 3760,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3728,
"end": 3735,
"ctxt": 0
},
"value": "Partial",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3735,
"end": 3760,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 3736,
"end": 3759,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3736,
"end": 3742,
"ctxt": 0
},
"value": "Record",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3742,
"end": 3759,
"ctxt": 0
},
"params": [
{
"type": "TsTypeOperator",
"span": {
"start": 3743,
"end": 3750,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3749,
"end": 3750,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3749,
"end": 3750,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
{
"type": "TsKeywordType",
"span": {
"start": 3752,
"end": 3758,
"ctxt": 0
},
"kind": "string"
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
"indexType": {
"type": "TsTypeReference",
"span": {
"start": 3767,
"end": 3768,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3767,
"end": 3768,
"ctxt": 0
},
"value": "K",
"optional": false
},
"typeParams": null
}
}
}
},
"init": {
"type": "StringLiteral",
"span": {
"start": 3772,
"end": 3779,
"ctxt": 0
},
"value": "hello",
"raw": "\"hello\""
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3642,
"end": 3664,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3643,
"end": 3644,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3643,
"end": 3644,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 3646,
"end": 3663,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3646,
"end": 3647,
"ctxt": 0
},
"value": "K",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeOperator",
"span": {
"start": 3656,
"end": 3663,
"ctxt": 0
},
"op": "keyof",
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3662,
"end": 3663,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3662,
"end": 3663,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"default": null
}
]
},
"returnType": null
}
],
"interpreter": null
}