{ "type": "Script", "span": { "start": 1, "end": 3783, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 7, "end": 12, "ctxt": 0 }, "value": "Shape", "optional": false }, "declare": false, "span": { "start": 1, "end": 95, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 19, "end": 32, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 19, "end": 23, "ctxt": 0 }, "value": "name", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 23, "end": 31, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 25, "end": 31, "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": 37, "end": 51, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 37, "end": 42, "ctxt": 0 }, "value": "width", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 42, "end": 50, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 44, "end": 50, "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": 56, "end": 71, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 56, "end": 62, "ctxt": 0 }, "value": "height", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 62, "end": 70, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 64, "end": 70, "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": 76, "end": 93, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 76, "end": 83, "ctxt": 0 }, "value": "visible", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 83, "end": 92, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 85, "end": 92, "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": 97, "end": 137, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 102, "end": 112, "ctxt": 0 }, "value": "Dictionary", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 112, "end": 115, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 113, "end": 114, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 113, "end": 114, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 118, "end": 136, "ctxt": 0 }, "members": [ { "type": "TsIndexSignature", "params": [ { "type": "Identifier", "span": { "start": 121, "end": 130, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 122, "end": 130, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 124, "end": 130, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 131, "end": 134, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 133, "end": 134, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 133, "end": 134, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "readonly": false, "static": false, "span": { "start": 120, "end": 134, "ctxt": 0 } } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 139, "end": 159, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 144, "end": 147, "ctxt": 0 }, "value": "T00", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 150, "end": 158, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 156, "end": 158, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 156, "end": 158, "ctxt": 0 }, "value": "K0", "optional": false }, "typeParams": null } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 171, "end": 195, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 176, "end": 179, "ctxt": 0 }, "value": "T01", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 182, "end": 194, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 188, "end": 194, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 188, "end": 194, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 196, "end": 226, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 201, "end": 204, "ctxt": 0 }, "value": "T02", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 207, "end": 225, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 213, "end": 225, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 219, "end": 225, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 219, "end": 225, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 227, "end": 263, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 232, "end": 235, "ctxt": 0 }, "value": "T03", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 238, "end": 262, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 244, "end": 262, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 250, "end": 262, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 256, "end": 262, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 256, "end": 262, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 264, "end": 306, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 269, "end": 272, "ctxt": 0 }, "value": "T04", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 275, "end": 305, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 281, "end": 305, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 287, "end": 305, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 293, "end": 305, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 299, "end": 305, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 299, "end": 305, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } } } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 307, "end": 355, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 312, "end": 315, "ctxt": 0 }, "value": "T05", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 318, "end": 354, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 324, "end": 354, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 330, "end": 354, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 336, "end": 354, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 342, "end": 354, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 348, "end": 354, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 348, "end": 354, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } } } } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 356, "end": 410, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 361, "end": 364, "ctxt": 0 }, "value": "T06", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 367, "end": 409, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 373, "end": 409, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 379, "end": 409, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 385, "end": 409, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 391, "end": 409, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 397, "end": 409, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 403, "end": 409, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 403, "end": 409, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } } } } } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 412, "end": 437, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 417, "end": 420, "ctxt": 0 }, "value": "T10", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 423, "end": 436, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 423, "end": 428, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 423, "end": 428, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "indexType": { "type": "TsLiteralType", "span": { "start": 429, "end": 435, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 429, "end": 435, "ctxt": 0 }, "value": "name", "raw": "\"name\"" } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 438, "end": 462, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 443, "end": 446, "ctxt": 0 }, "value": "T11", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 449, "end": 461, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 449, "end": 454, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 449, "end": 454, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "indexType": { "type": "TsLiteralType", "span": { "start": 455, "end": 460, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 455, "end": 460, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 473, "end": 506, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 478, "end": 481, "ctxt": 0 }, "value": "T12", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 484, "end": 505, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 484, "end": 489, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 484, "end": 489, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "indexType": { "type": "TsUnionType", "span": { "start": 490, "end": 504, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 490, "end": 496, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 490, "end": 496, "ctxt": 0 }, "value": "name", "raw": "\"name\"" } }, { "type": "TsLiteralType", "span": { "start": 499, "end": 504, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 499, "end": 504, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } ] } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 517, "end": 539, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 522, "end": 525, "ctxt": 0 }, "value": "T13", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 528, "end": 538, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 528, "end": 533, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 528, "end": 533, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "indexType": { "type": "TsKeywordType", "span": { "start": 534, "end": 537, "ctxt": 0 }, "kind": "any" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 550, "end": 575, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 555, "end": 558, "ctxt": 0 }, "value": "T14", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 561, "end": 574, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 561, "end": 566, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 561, "end": 566, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "indexType": { "type": "TsKeywordType", "span": { "start": 567, "end": 573, "ctxt": 0 }, "kind": "string" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 586, "end": 611, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 591, "end": 594, "ctxt": 0 }, "value": "T15", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 597, "end": 610, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 597, "end": 602, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 597, "end": 602, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "indexType": { "type": "TsKeywordType", "span": { "start": 603, "end": 609, "ctxt": 0 }, "kind": "number" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 622, "end": 648, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 627, "end": 630, "ctxt": 0 }, "value": "T16", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 633, "end": 647, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 633, "end": 638, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 633, "end": 638, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "indexType": { "type": "TsKeywordType", "span": { "start": 639, "end": 646, "ctxt": 0 }, "kind": "boolean" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 659, "end": 682, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 664, "end": 667, "ctxt": 0 }, "value": "T17", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 670, "end": 681, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 670, "end": 675, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 670, "end": 675, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "indexType": { "type": "TsKeywordType", "span": { "start": 676, "end": 680, "ctxt": 0 }, "kind": "void" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 693, "end": 721, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 698, "end": 701, "ctxt": 0 }, "value": "T18", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 704, "end": 720, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 704, "end": 709, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 704, "end": 709, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "indexType": { "type": "TsKeywordType", "span": { "start": 710, "end": 719, "ctxt": 0 }, "kind": "undefined" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 732, "end": 764, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 737, "end": 740, "ctxt": 0 }, "value": "T19", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 743, "end": 763, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 743, "end": 748, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 743, "end": 748, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeLiteral", "span": { "start": 749, "end": 762, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 751, "end": 760, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 751, "end": 752, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 752, "end": 760, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 754, "end": 760, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 775, "end": 809, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 780, "end": 783, "ctxt": 0 }, "value": "T20", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 786, "end": 808, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 786, "end": 791, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 786, "end": 791, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "indexType": { "type": "TsUnionType", "span": { "start": 792, "end": 807, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 792, "end": 798, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 801, "end": 807, "ctxt": 0 }, "kind": "number" } ] } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 820, "end": 854, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 825, "end": 828, "ctxt": 0 }, "value": "T21", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 831, "end": 853, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 831, "end": 836, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 831, "end": 836, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "indexType": { "type": "TsIntersectionType", "span": { "start": 837, "end": 852, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 837, "end": 843, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 846, "end": 852, "ctxt": 0 }, "kind": "number" } ] } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 855, "end": 890, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 860, "end": 863, "ctxt": 0 }, "value": "T22", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 866, "end": 889, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 866, "end": 871, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 866, "end": 871, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "indexType": { "type": "TsUnionType", "span": { "start": 872, "end": 888, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 872, "end": 878, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 881, "end": 888, "ctxt": 0 }, "kind": "boolean" } ] } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 902, "end": 932, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 907, "end": 910, "ctxt": 0 }, "value": "T30", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 913, "end": 931, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsArrayType", "span": { "start": 913, "end": 921, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 913, "end": 919, "ctxt": 0 }, "kind": "string" } }, "indexType": { "type": "TsLiteralType", "span": { "start": 922, "end": 930, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 922, "end": 930, "ctxt": 0 }, "value": "length", "raw": "\"length\"" } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 933, "end": 961, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 938, "end": 941, "ctxt": 0 }, "value": "T31", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 944, "end": 960, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsArrayType", "span": { "start": 944, "end": 952, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 944, "end": 950, "ctxt": 0 }, "kind": "string" } }, "indexType": { "type": "TsKeywordType", "span": { "start": 953, "end": 959, "ctxt": 0 }, "kind": "number" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 962, "end": 990, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 967, "end": 970, "ctxt": 0 }, "value": "T32", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 973, "end": 989, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsArrayType", "span": { "start": 973, "end": 981, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 973, "end": 979, "ctxt": 0 }, "kind": "string" } }, "indexType": { "type": "TsKeywordType", "span": { "start": 982, "end": 988, "ctxt": 0 }, "kind": "string" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1001, "end": 1030, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1006, "end": 1009, "ctxt": 0 }, "value": "T33", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1012, "end": 1029, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsArrayType", "span": { "start": 1012, "end": 1020, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1012, "end": 1018, "ctxt": 0 }, "kind": "string" } }, "indexType": { "type": "TsKeywordType", "span": { "start": 1021, "end": 1028, "ctxt": 0 }, "kind": "boolean" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1042, "end": 1077, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1047, "end": 1050, "ctxt": 0 }, "value": "T40", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1053, "end": 1076, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 1053, "end": 1071, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1053, "end": 1063, "ctxt": 0 }, "value": "Dictionary", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1063, "end": 1071, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 1064, "end": 1070, "ctxt": 0 }, "kind": "string" } ] } }, "indexType": { "type": "TsKeywordType", "span": { "start": 1072, "end": 1075, "ctxt": 0 }, "kind": "any" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1078, "end": 1116, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1083, "end": 1086, "ctxt": 0 }, "value": "T41", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1089, "end": 1115, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 1089, "end": 1107, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1089, "end": 1099, "ctxt": 0 }, "value": "Dictionary", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1099, "end": 1107, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 1100, "end": 1106, "ctxt": 0 }, "kind": "string" } ] } }, "indexType": { "type": "TsKeywordType", "span": { "start": 1108, "end": 1114, "ctxt": 0 }, "kind": "number" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1117, "end": 1155, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1122, "end": 1125, "ctxt": 0 }, "value": "T42", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1128, "end": 1154, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 1128, "end": 1146, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1128, "end": 1138, "ctxt": 0 }, "value": "Dictionary", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1138, "end": 1146, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 1139, "end": 1145, "ctxt": 0 }, "kind": "string" } ] } }, "indexType": { "type": "TsKeywordType", "span": { "start": 1147, "end": 1153, "ctxt": 0 }, "kind": "string" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1156, "end": 1195, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1161, "end": 1164, "ctxt": 0 }, "value": "T43", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1167, "end": 1194, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 1167, "end": 1185, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1167, "end": 1177, "ctxt": 0 }, "value": "Dictionary", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1177, "end": 1185, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 1178, "end": 1184, "ctxt": 0 }, "kind": "string" } ] } }, "indexType": { "type": "TsKeywordType", "span": { "start": 1186, "end": 1193, "ctxt": 0 }, "kind": "boolean" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1207, "end": 1227, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1212, "end": 1215, "ctxt": 0 }, "value": "T50", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1218, "end": 1226, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsKeywordType", "span": { "start": 1218, "end": 1221, "ctxt": 0 }, "kind": "any" }, "indexType": { "type": "TsKeywordType", "span": { "start": 1222, "end": 1225, "ctxt": 0 }, "kind": "any" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1228, "end": 1251, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1233, "end": 1236, "ctxt": 0 }, "value": "T51", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1239, "end": 1250, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsKeywordType", "span": { "start": 1239, "end": 1242, "ctxt": 0 }, "kind": "any" }, "indexType": { "type": "TsKeywordType", "span": { "start": 1243, "end": 1249, "ctxt": 0 }, "kind": "number" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1252, "end": 1275, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1257, "end": 1260, "ctxt": 0 }, "value": "T52", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1263, "end": 1274, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsKeywordType", "span": { "start": 1263, "end": 1266, "ctxt": 0 }, "kind": "any" }, "indexType": { "type": "TsKeywordType", "span": { "start": 1267, "end": 1273, "ctxt": 0 }, "kind": "string" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1276, "end": 1300, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1281, "end": 1284, "ctxt": 0 }, "value": "T53", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1287, "end": 1299, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsKeywordType", "span": { "start": 1287, "end": 1290, "ctxt": 0 }, "kind": "any" }, "indexType": { "type": "TsKeywordType", "span": { "start": 1291, "end": 1298, "ctxt": 0 }, "kind": "boolean" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1312, "end": 1338, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1317, "end": 1320, "ctxt": 0 }, "value": "T60", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1323, "end": 1337, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeLiteral", "span": { "start": 1323, "end": 1325, "ctxt": 0 }, "members": [] }, "indexType": { "type": "TsLiteralType", "span": { "start": 1326, "end": 1336, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1326, "end": 1336, "ctxt": 0 }, "value": "toString", "raw": "\"toString\"" } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1339, "end": 1365, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1344, "end": 1347, "ctxt": 0 }, "value": "T61", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1350, "end": 1364, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTupleType", "span": { "start": 1350, "end": 1352, "ctxt": 0 }, "elemTypes": [] }, "indexType": { "type": "TsLiteralType", "span": { "start": 1353, "end": 1363, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1353, "end": 1363, "ctxt": 0 }, "value": "toString", "raw": "\"toString\"" } } } }, { "type": "VariableDeclaration", "span": { "start": 1367, "end": 1393, "ctxt": 0 }, "kind": "let", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1379, "end": 1392, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1379, "end": 1383, "ctxt": 0 }, "value": "cond", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1383, "end": 1392, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1385, "end": 1392, "ctxt": 0 }, "kind": "boolean" } } }, "init": null, "definite": false } ] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1404, "end": 1415, "ctxt": 0 }, "value": "getProperty", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 1438, "end": 1444, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1438, "end": 1444, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1441, "end": 1444, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1443, "end": 1444, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1443, "end": 1444, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 1446, "end": 1452, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1446, "end": 1452, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1449, "end": 1452, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1451, "end": 1452, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1451, "end": 1452, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 1395, "end": 1478, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1454, "end": 1478, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 1460, "end": 1476, "ctxt": 0 }, "argument": { "type": "MemberExpression", "span": { "start": 1467, "end": 1475, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1467, "end": 1470, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 1470, "end": 1475, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1471, "end": 1474, "ctxt": 0 }, "value": "key", "optional": false } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 1415, "end": 1437, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1416, "end": 1417, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1416, "end": 1417, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1419, "end": 1436, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1419, "end": 1420, "ctxt": 0 }, "value": "K", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeOperator", "span": { "start": 1429, "end": 1436, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1435, "end": 1436, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1435, "end": 1436, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1489, "end": 1500, "ctxt": 0 }, "value": "setProperty", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 1523, "end": 1529, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1523, "end": 1529, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1526, "end": 1529, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1528, "end": 1529, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1528, "end": 1529, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 1531, "end": 1537, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1531, "end": 1537, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1534, "end": 1537, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1536, "end": 1537, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1536, "end": 1537, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 1539, "end": 1550, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1539, "end": 1550, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1544, "end": 1550, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1546, "end": 1550, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 1546, "end": 1547, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1546, "end": 1547, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 1548, "end": 1549, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1548, "end": 1549, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 1480, "end": 1577, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1552, "end": 1577, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1558, "end": 1575, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1558, "end": 1574, "ctxt": 0 }, "operator": "=", "left": { "type": "MemberExpression", "span": { "start": 1558, "end": 1566, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1558, "end": 1561, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 1561, "end": 1566, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1562, "end": 1565, "ctxt": 0 }, "value": "key", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 1569, "end": 1574, "ctxt": 0 }, "value": "value", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 1500, "end": 1522, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1501, "end": 1502, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1501, "end": 1502, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1504, "end": 1521, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1504, "end": 1505, "ctxt": 0 }, "value": "K", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeOperator", "span": { "start": 1514, "end": 1521, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1520, "end": 1521, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1520, "end": 1521, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1588, "end": 1591, "ctxt": 0 }, "value": "f10", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 1592, "end": 1604, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1592, "end": 1604, "ctxt": 0 }, "value": "shape", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1597, "end": 1604, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1599, "end": 1604, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1599, "end": 1604, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 1579, "end": 1921, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1606, "end": 1921, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 1612, "end": 1648, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1616, "end": 1647, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1616, "end": 1618, "ctxt": 0 }, "value": "x1", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1621, "end": 1647, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1621, "end": 1632, "ctxt": 0 }, "value": "getProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1633, "end": 1638, "ctxt": 0 }, "value": "shape", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 1640, "end": 1646, "ctxt": 0 }, "value": "name", "raw": "\"name\"" } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1653, "end": 1689, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1657, "end": 1688, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1657, "end": 1659, "ctxt": 0 }, "value": "x2", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1662, "end": 1688, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1662, "end": 1673, "ctxt": 0 }, "value": "getProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1674, "end": 1679, "ctxt": 0 }, "value": "shape", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 1681, "end": 1687, "ctxt": 0 }, "value": "size", "raw": "\"size\"" } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1704, "end": 1756, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1708, "end": 1755, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1708, "end": 1710, "ctxt": 0 }, "value": "x3", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1713, "end": 1755, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1713, "end": 1724, "ctxt": 0 }, "value": "getProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1725, "end": 1730, "ctxt": 0 }, "value": "shape", "optional": false } }, { "spread": null, "expression": { "type": "ConditionalExpression", "span": { "start": 1732, "end": 1754, "ctxt": 0 }, "test": { "type": "Identifier", "span": { "start": 1732, "end": 1736, "ctxt": 0 }, "value": "cond", "optional": false }, "consequent": { "type": "StringLiteral", "span": { "start": 1739, "end": 1745, "ctxt": 0 }, "value": "name", "raw": "\"name\"" }, "alternate": { "type": "StringLiteral", "span": { "start": 1748, "end": 1754, "ctxt": 0 }, "value": "size", "raw": "\"size\"" } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 1771, "end": 1811, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1771, "end": 1810, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1771, "end": 1782, "ctxt": 0 }, "value": "setProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1783, "end": 1788, "ctxt": 0 }, "value": "shape", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 1790, "end": 1796, "ctxt": 0 }, "value": "name", "raw": "\"name\"" } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 1798, "end": 1809, "ctxt": 0 }, "value": "rectangle", "raw": "\"rectangle\"" } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 1816, "end": 1847, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1816, "end": 1846, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1816, "end": 1827, "ctxt": 0 }, "value": "setProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1828, "end": 1833, "ctxt": 0 }, "value": "shape", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 1835, "end": 1841, "ctxt": 0 }, "value": "size", "raw": "\"size\"" } }, { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 1843, "end": 1845, "ctxt": 0 }, "value": 10.0, "raw": "10" } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 1862, "end": 1909, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1862, "end": 1908, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1862, "end": 1873, "ctxt": 0 }, "value": "setProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1874, "end": 1879, "ctxt": 0 }, "value": "shape", "optional": false } }, { "spread": null, "expression": { "type": "ConditionalExpression", "span": { "start": 1881, "end": 1903, "ctxt": 0 }, "test": { "type": "Identifier", "span": { "start": 1881, "end": 1885, "ctxt": 0 }, "value": "cond", "optional": false }, "consequent": { "type": "StringLiteral", "span": { "start": 1888, "end": 1894, "ctxt": 0 }, "value": "name", "raw": "\"name\"" }, "alternate": { "type": "StringLiteral", "span": { "start": 1897, "end": 1903, "ctxt": 0 }, "value": "size", "raw": "\"size\"" } } }, { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 1905, "end": 1907, "ctxt": 0 }, "value": 10.0, "raw": "10" } } ], "typeArguments": null } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1932, "end": 1935, "ctxt": 0 }, "value": "f20", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 1942, "end": 1950, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1942, "end": 1950, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1943, "end": 1950, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 1945, "end": 1950, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1945, "end": 1946, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1945, "end": 1946, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 1949, "end": 1950, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1949, "end": 1950, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } ] } } } }, { "type": "Parameter", "span": { "start": 1952, "end": 1960, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1952, "end": 1960, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1953, "end": 1960, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 1955, "end": 1960, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1955, "end": 1956, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1955, "end": 1956, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 1959, "end": 1960, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1959, "end": 1960, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } ] } } } }, { "type": "Parameter", "span": { "start": 1962, "end": 1979, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1962, "end": 1979, "ctxt": 0 }, "value": "k1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1964, "end": 1979, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 1966, "end": 1979, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsParenthesizedType", "span": { "start": 1972, "end": 1979, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 1973, "end": 1978, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1973, "end": 1974, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1973, "end": 1974, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 1977, "end": 1978, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1977, "end": 1978, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } ] } } } } } }, { "type": "Parameter", "span": { "start": 1981, "end": 2002, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1981, "end": 2002, "ctxt": 0 }, "value": "k2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1983, "end": 2002, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 1985, "end": 2002, "ctxt": 0 }, "types": [ { "type": "TsTypeOperator", "span": { "start": 1985, "end": 1992, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1991, "end": 1992, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1991, "end": 1992, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, { "type": "TsTypeOperator", "span": { "start": 1995, "end": 2002, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2001, "end": 2002, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2001, "end": 2002, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } ] } } } }, { "type": "Parameter", "span": { "start": 2004, "end": 2021, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2004, "end": 2021, "ctxt": 0 }, "value": "k3", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2006, "end": 2021, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 2008, "end": 2021, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsParenthesizedType", "span": { "start": 2014, "end": 2021, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 2015, "end": 2020, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 2015, "end": 2016, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2015, "end": 2016, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 2019, "end": 2020, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2019, "end": 2020, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } ] } } } } } }, { "type": "Parameter", "span": { "start": 2023, "end": 2044, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2023, "end": 2044, "ctxt": 0 }, "value": "k4", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2025, "end": 2044, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 2027, "end": 2044, "ctxt": 0 }, "types": [ { "type": "TsTypeOperator", "span": { "start": 2027, "end": 2034, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2033, "end": 2034, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2033, "end": 2034, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, { "type": "TsTypeOperator", "span": { "start": 2037, "end": 2044, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2043, "end": 2044, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2043, "end": 2044, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } ] } } } } ], "decorators": [], "span": { "start": 1923, "end": 2358, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 2046, "end": 2358, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2052, "end": 2058, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 2052, "end": 2057, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2052, "end": 2053, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Computed", "span": { "start": 2053, "end": 2057, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2054, "end": 2056, "ctxt": 0 }, "value": "k1", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 2063, "end": 2069, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 2063, "end": 2068, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2063, "end": 2064, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Computed", "span": { "start": 2064, "end": 2068, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2065, "end": 2067, "ctxt": 0 }, "value": "k2", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 2074, "end": 2080, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 2074, "end": 2079, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2074, "end": 2075, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Computed", "span": { "start": 2075, "end": 2079, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2076, "end": 2078, "ctxt": 0 }, "value": "k3", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 2095, "end": 2101, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 2095, "end": 2100, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2095, "end": 2096, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Computed", "span": { "start": 2096, "end": 2100, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2097, "end": 2099, "ctxt": 0 }, "value": "k4", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 2117, "end": 2123, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 2117, "end": 2122, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2117, "end": 2118, "ctxt": 0 }, "value": "y", "optional": false }, "property": { "type": "Computed", "span": { "start": 2118, "end": 2122, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2119, "end": 2121, "ctxt": 0 }, "value": "k1", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 2128, "end": 2134, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 2128, "end": 2133, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2128, "end": 2129, "ctxt": 0 }, "value": "y", "optional": false }, "property": { "type": "Computed", "span": { "start": 2129, "end": 2133, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2130, "end": 2132, "ctxt": 0 }, "value": "k2", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 2139, "end": 2145, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 2139, "end": 2144, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2139, "end": 2140, "ctxt": 0 }, "value": "y", "optional": false }, "property": { "type": "Computed", "span": { "start": 2140, "end": 2144, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2141, "end": 2143, "ctxt": 0 }, "value": "k3", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 2150, "end": 2156, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 2150, "end": 2155, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2150, "end": 2151, "ctxt": 0 }, "value": "y", "optional": false }, "property": { "type": "Computed", "span": { "start": 2151, "end": 2155, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2152, "end": 2154, "ctxt": 0 }, "value": "k4", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 2162, "end": 2170, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2162, "end": 2169, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2162, "end": 2164, "ctxt": 0 }, "value": "k1", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2167, "end": 2169, "ctxt": 0 }, "value": "k2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2175, "end": 2183, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2175, "end": 2182, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2175, "end": 2177, "ctxt": 0 }, "value": "k1", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2180, "end": 2182, "ctxt": 0 }, "value": "k3", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2198, "end": 2206, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2198, "end": 2205, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2198, "end": 2200, "ctxt": 0 }, "value": "k1", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2203, "end": 2205, "ctxt": 0 }, "value": "k4", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2222, "end": 2230, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2222, "end": 2229, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2222, "end": 2224, "ctxt": 0 }, "value": "k2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2227, "end": 2229, "ctxt": 0 }, "value": "k1", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2235, "end": 2243, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2235, "end": 2242, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2235, "end": 2237, "ctxt": 0 }, "value": "k2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2240, "end": 2242, "ctxt": 0 }, "value": "k3", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2258, "end": 2266, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2258, "end": 2265, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2258, "end": 2260, "ctxt": 0 }, "value": "k2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2263, "end": 2265, "ctxt": 0 }, "value": "k4", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2282, "end": 2290, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2282, "end": 2289, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2282, "end": 2284, "ctxt": 0 }, "value": "k3", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2287, "end": 2289, "ctxt": 0 }, "value": "k1", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2295, "end": 2303, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2295, "end": 2302, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2295, "end": 2297, "ctxt": 0 }, "value": "k3", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2300, "end": 2302, "ctxt": 0 }, "value": "k2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2308, "end": 2316, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2308, "end": 2315, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2308, "end": 2310, "ctxt": 0 }, "value": "k3", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2313, "end": 2315, "ctxt": 0 }, "value": "k4", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2322, "end": 2330, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2322, "end": 2329, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2322, "end": 2324, "ctxt": 0 }, "value": "k4", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2327, "end": 2329, "ctxt": 0 }, "value": "k1", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2335, "end": 2343, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2335, "end": 2342, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2335, "end": 2337, "ctxt": 0 }, "value": "k4", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2340, "end": 2342, "ctxt": 0 }, "value": "k2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2348, "end": 2356, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2348, "end": 2355, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2348, "end": 2350, "ctxt": 0 }, "value": "k4", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2353, "end": 2355, "ctxt": 0 }, "value": "k3", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 1935, "end": 1941, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1936, "end": 1937, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1936, "end": 1937, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1939, "end": 1940, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1939, "end": 1940, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 2390, "end": 2392, "ctxt": 0 }, "value": "f3", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 2463, "end": 2467, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2463, "end": 2467, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2464, "end": 2467, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2466, "end": 2467, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2466, "end": 2467, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 2469, "end": 2473, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2469, "end": 2473, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2470, "end": 2473, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2472, "end": 2473, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2472, "end": 2473, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 2475, "end": 2483, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2475, "end": 2483, "ctxt": 0 }, "value": "tk", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2477, "end": 2483, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 2479, "end": 2483, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 2479, "end": 2480, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2479, "end": 2480, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 2481, "end": 2482, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2481, "end": 2482, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } }, { "type": "Parameter", "span": { "start": 2485, "end": 2489, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2485, "end": 2489, "ctxt": 0 }, "value": "u", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2486, "end": 2489, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2488, "end": 2489, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2488, "end": 2489, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 2491, "end": 2495, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2491, "end": 2495, "ctxt": 0 }, "value": "j", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2492, "end": 2495, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2494, "end": 2495, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2494, "end": 2495, "ctxt": 0 }, "value": "J", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 2497, "end": 2505, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2497, "end": 2505, "ctxt": 0 }, "value": "uk", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2499, "end": 2505, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 2501, "end": 2505, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 2501, "end": 2502, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2501, "end": 2502, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 2503, "end": 2504, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2503, "end": 2504, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } }, { "type": "Parameter", "span": { "start": 2507, "end": 2515, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2507, "end": 2515, "ctxt": 0 }, "value": "tj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2509, "end": 2515, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 2511, "end": 2515, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 2511, "end": 2512, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2511, "end": 2512, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 2513, "end": 2514, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2513, "end": 2514, "ctxt": 0 }, "value": "J", "optional": false }, "typeParams": null } } } } }, { "type": "Parameter", "span": { "start": 2517, "end": 2525, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2517, "end": 2525, "ctxt": 0 }, "value": "uj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2519, "end": 2525, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 2521, "end": 2525, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 2521, "end": 2522, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2521, "end": 2522, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 2523, "end": 2524, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2523, "end": 2524, "ctxt": 0 }, "value": "J", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 2381, "end": 2888, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 2533, "end": 2888, "ctxt": 0 }, "stmts": [ { "type": "ForInStatement", "span": { "start": 2539, "end": 2743, "ctxt": 0 }, "left": { "type": "VariableDeclaration", "span": { "start": 2544, "end": 2551, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2548, "end": 2551, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2548, "end": 2551, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": null }, "init": null, "definite": false } ] }, "right": { "type": "Identifier", "span": { "start": 2555, "end": 2556, "ctxt": 0 }, "value": "t", "optional": false }, "body": { "type": "BlockStatement", "span": { "start": 2558, "end": 2743, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2568, "end": 2575, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2568, "end": 2575, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2568, "end": 2571, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2574, "end": 2575, "ctxt": 0 }, "value": "k", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2605, "end": 2612, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2605, "end": 2612, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2605, "end": 2606, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2609, "end": 2612, "ctxt": 0 }, "value": "key", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2646, "end": 2658, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2646, "end": 2657, "ctxt": 0 }, "operator": "=", "left": { "type": "MemberExpression", "span": { "start": 2646, "end": 2652, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2646, "end": 2647, "ctxt": 0 }, "value": "t", "optional": false }, "property": { "type": "Computed", "span": { "start": 2647, "end": 2652, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2648, "end": 2651, "ctxt": 0 }, "value": "key", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 2655, "end": 2657, "ctxt": 0 }, "value": "tk", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2694, "end": 2706, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2694, "end": 2705, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2694, "end": 2696, "ctxt": 0 }, "value": "tk", "optional": false, "typeAnnotation": null }, "right": { "type": "MemberExpression", "span": { "start": 2699, "end": 2705, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2699, "end": 2700, "ctxt": 0 }, "value": "t", "optional": false }, "property": { "type": "Computed", "span": { "start": 2700, "end": 2705, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2701, "end": 2704, "ctxt": 0 }, "value": "key", "optional": false } } } } } ] } }, { "type": "ExpressionStatement", "span": { "start": 2748, "end": 2756, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2748, "end": 2755, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2748, "end": 2750, "ctxt": 0 }, "value": "tk", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2753, "end": 2755, "ctxt": 0 }, "value": "uk", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2761, "end": 2769, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2761, "end": 2768, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2761, "end": 2763, "ctxt": 0 }, "value": "uk", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2766, "end": 2768, "ctxt": 0 }, "value": "tk", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2784, "end": 2792, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2784, "end": 2791, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2784, "end": 2786, "ctxt": 0 }, "value": "tj", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2789, "end": 2791, "ctxt": 0 }, "value": "uj", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2797, "end": 2805, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2797, "end": 2804, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2797, "end": 2799, "ctxt": 0 }, "value": "uj", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2802, "end": 2804, "ctxt": 0 }, "value": "tj", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2820, "end": 2828, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2820, "end": 2827, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2820, "end": 2822, "ctxt": 0 }, "value": "tk", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2825, "end": 2827, "ctxt": 0 }, "value": "tj", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2833, "end": 2841, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2833, "end": 2840, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2833, "end": 2835, "ctxt": 0 }, "value": "tj", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2838, "end": 2840, "ctxt": 0 }, "value": "tk", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2856, "end": 2864, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2856, "end": 2863, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2856, "end": 2858, "ctxt": 0 }, "value": "tk", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2861, "end": 2863, "ctxt": 0 }, "value": "uj", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 2869, "end": 2877, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2869, "end": 2876, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 2869, "end": 2871, "ctxt": 0 }, "value": "uj", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 2874, "end": 2876, "ctxt": 0 }, "value": "tk", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 2392, "end": 2457, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2393, "end": 2394, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2393, "end": 2394, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2396, "end": 2430, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2396, "end": 2397, "ctxt": 0 }, "value": "K", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2406, "end": 2430, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2406, "end": 2413, "ctxt": 0 }, "value": "Extract", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2413, "end": 2430, "ctxt": 0 }, "params": [ { "type": "TsTypeOperator", "span": { "start": 2414, "end": 2421, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2420, "end": 2421, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2420, "end": 2421, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, { "type": "TsKeywordType", "span": { "start": 2423, "end": 2429, "ctxt": 0 }, "kind": "string" } ] } }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2432, "end": 2443, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2432, "end": 2433, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2442, "end": 2443, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2442, "end": 2443, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2445, "end": 2456, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2445, "end": 2446, "ctxt": 0 }, "value": "J", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 2455, "end": 2456, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2455, "end": 2456, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 2526, "end": 2532, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2528, "end": 2532, "ctxt": 0 }, "kind": "void" } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 2943, "end": 2945, "ctxt": 0 }, "value": "f4", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 2984, "end": 2994, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2984, "end": 2994, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2985, "end": 2994, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 2987, "end": 2994, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2993, "end": 2994, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2993, "end": 2994, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 2934, "end": 3046, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 2996, "end": 3046, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3002, "end": 3009, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 3002, "end": 3008, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 3002, "end": 3003, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": null }, "right": { "type": "NumericLiteral", "span": { "start": 3006, "end": 3008, "ctxt": 0 }, "value": 42.0, "raw": "42" } } }, { "type": "ExpressionStatement", "span": { "start": 3023, "end": 3035, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 3023, "end": 3034, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 3023, "end": 3024, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": null }, "right": { "type": "StringLiteral", "span": { "start": 3027, "end": 3034, "ctxt": 0 }, "value": "hello", "raw": "\"hello\"" } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 2945, "end": 2983, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2946, "end": 2982, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2946, "end": 2947, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsMappedType", "span": { "start": 2956, "end": 2982, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 2959, "end": 2971, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2959, "end": 2960, "ctxt": 0 }, "value": "K", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeOperator", "span": { "start": 2964, "end": 2971, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2970, "end": 2971, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2970, "end": 2971, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2974, "end": 2980, "ctxt": 0 }, "kind": "string" } }, "default": null } ] }, "returnType": null }, { "type": "TsTypeAliasDeclaration", "span": { "start": 3070, "end": 3179, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 3075, "end": 3088, "ctxt": 0 }, "value": "UndefinedKeys", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3088, "end": 3119, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3089, "end": 3118, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3089, "end": 3090, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 3099, "end": 3118, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3099, "end": 3105, "ctxt": 0 }, "value": "Record", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3105, "end": 3118, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 3106, "end": 3112, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 3114, "end": 3117, "ctxt": 0 }, "kind": "any" } ] } }, "default": null } ] }, "typeAnnotation": { "type": "TsMappedType", "span": { "start": 3122, "end": 3178, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 3127, "end": 3139, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3127, "end": 3128, "ctxt": 0 }, "value": "K", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeOperator", "span": { "start": 3132, "end": 3139, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3138, "end": 3139, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3138, "end": 3139, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsConditionalType", "span": { "start": 3142, "end": 3176, "ctxt": 0 }, "checkType": { "type": "TsKeywordType", "span": { "start": 3142, "end": 3151, "ctxt": 0 }, "kind": "undefined" }, "extendsType": { "type": "TsIndexedAccessType", "span": { "start": 3160, "end": 3164, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 3160, "end": 3161, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3160, "end": 3161, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 3162, "end": 3163, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3162, "end": 3163, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } }, "trueType": { "type": "TsTypeReference", "span": { "start": 3167, "end": 3168, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3167, "end": 3168, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null }, "falseType": { "type": "TsKeywordType", "span": { "start": 3171, "end": 3176, "ctxt": 0 }, "kind": "never" } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 3181, "end": 3229, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 3186, "end": 3192, "ctxt": 0 }, "value": "MyType", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 3195, "end": 3229, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 3196, "end": 3206, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3196, "end": 3197, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3197, "end": 3205, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3199, "end": 3205, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3207, "end": 3228, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3207, "end": 3208, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3208, "end": 3228, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 3210, "end": 3228, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 3210, "end": 3216, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 3219, "end": 3228, "ctxt": 0 }, "kind": "undefined" } ] } }, "typeParams": null } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 3231, "end": 3268, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 3236, "end": 3243, "ctxt": 0 }, "value": "Result1", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3246, "end": 3267, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3246, "end": 3259, "ctxt": 0 }, "value": "UndefinedKeys", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3259, "end": 3267, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3260, "end": 3266, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3260, "end": 3266, "ctxt": 0 }, "value": "MyType", "optional": false }, "typeParams": null } ] } } }, { "type": "VariableDeclaration", "span": { "start": 3270, "end": 3299, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3276, "end": 3298, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3276, "end": 3278, "ctxt": 0 }, "value": "a1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3278, "end": 3292, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 3280, "end": 3292, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 3280, "end": 3287, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3280, "end": 3287, "ctxt": 0 }, "value": "Result1", "optional": false }, "typeParams": null }, "indexType": { "type": "TsLiteralType", "span": { "start": 3288, "end": 3291, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 3288, "end": 3291, "ctxt": 0 }, "value": "a", "raw": "'a'" } } } } }, "init": { "type": "StringLiteral", "span": { "start": 3295, "end": 3298, "ctxt": 0 }, "value": "a", "raw": "'a'" }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3310, "end": 3339, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3316, "end": 3338, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3316, "end": 3318, "ctxt": 0 }, "value": "b1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3318, "end": 3332, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 3320, "end": 3332, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 3320, "end": 3327, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3320, "end": 3327, "ctxt": 0 }, "value": "Result1", "optional": false }, "typeParams": null }, "indexType": { "type": "TsLiteralType", "span": { "start": 3328, "end": 3331, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 3328, "end": 3331, "ctxt": 0 }, "value": "b", "raw": "'b'" } } } } }, "init": { "type": "StringLiteral", "span": { "start": 3335, "end": 3338, "ctxt": 0 }, "value": "b", "raw": "'b'" }, "definite": false } ] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3350, "end": 3355, "ctxt": 0 }, "value": "test1", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 3406, "end": 3410, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3406, "end": 3410, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3407, "end": 3410, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3409, "end": 3410, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3409, "end": 3410, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 3412, "end": 3416, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3412, "end": 3416, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3413, "end": 3416, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3415, "end": 3416, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3415, "end": 3416, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 3341, "end": 3507, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3418, "end": 3507, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3424, "end": 3434, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 3424, "end": 3433, "ctxt": 0 }, "operator": "=", "left": { "type": "MemberExpression", "span": { "start": 3424, "end": 3428, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3424, "end": 3425, "ctxt": 0 }, "value": "t", "optional": false }, "property": { "type": "Computed", "span": { "start": 3425, "end": 3428, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3426, "end": 3427, "ctxt": 0 }, "value": "k", "optional": false } } }, "right": { "type": "NumericLiteral", "span": { "start": 3431, "end": 3433, "ctxt": 0 }, "value": 42.0, "raw": "42" } } }, { "type": "ExpressionStatement", "span": { "start": 3449, "end": 3464, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 3449, "end": 3463, "ctxt": 0 }, "operator": "=", "left": { "type": "MemberExpression", "span": { "start": 3449, "end": 3453, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3449, "end": 3450, "ctxt": 0 }, "value": "t", "optional": false }, "property": { "type": "Computed", "span": { "start": 3450, "end": 3453, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3451, "end": 3452, "ctxt": 0 }, "value": "k", "optional": false } } }, "right": { "type": "StringLiteral", "span": { "start": 3456, "end": 3463, "ctxt": 0 }, "value": "hello", "raw": "\"hello\"" } } }, { "type": "ExpressionStatement", "span": { "start": 3479, "end": 3495, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 3479, "end": 3494, "ctxt": 0 }, "operator": "=", "left": { "type": "MemberExpression", "span": { "start": 3479, "end": 3483, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3479, "end": 3480, "ctxt": 0 }, "value": "t", "optional": false }, "property": { "type": "Computed", "span": { "start": 3480, "end": 3483, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3481, "end": 3482, "ctxt": 0 }, "value": "k", "optional": false } } }, "right": { "type": "ArrayExpression", "span": { "start": 3486, "end": 3494, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 3487, "end": 3489, "ctxt": 0 }, "value": 10.0, "raw": "10" } }, { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 3491, "end": 3493, "ctxt": 0 }, "value": 20.0, "raw": "20" } } ] } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3355, "end": 3405, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3356, "end": 3385, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3356, "end": 3357, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 3366, "end": 3385, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3366, "end": 3372, "ctxt": 0 }, "value": "Record", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3372, "end": 3385, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 3373, "end": 3379, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 3381, "end": 3384, "ctxt": 0 }, "kind": "any" } ] } }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 3387, "end": 3404, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3387, "end": 3388, "ctxt": 0 }, "value": "K", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeOperator", "span": { "start": 3397, "end": 3404, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3403, "end": 3404, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3403, "end": 3404, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3540, "end": 3543, "ctxt": 0 }, "value": "f30", "optional": false }, "declare": false, "params": [], "decorators": [], "span": { "start": 3531, "end": 3629, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3568, "end": 3629, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 3574, "end": 3627, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3578, "end": 3626, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3578, "end": 3579, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3579, "end": 3616, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 3581, "end": 3616, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 3581, "end": 3613, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3581, "end": 3588, "ctxt": 0 }, "value": "Partial", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3588, "end": 3613, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3589, "end": 3612, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3589, "end": 3595, "ctxt": 0 }, "value": "Record", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3595, "end": 3612, "ctxt": 0 }, "params": [ { "type": "TsTypeOperator", "span": { "start": 3596, "end": 3603, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3602, "end": 3603, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3602, "end": 3603, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, { "type": "TsKeywordType", "span": { "start": 3605, "end": 3611, "ctxt": 0 }, "kind": "string" } ] } } ] } }, "indexType": { "type": "TsTypeReference", "span": { "start": 3614, "end": 3615, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3614, "end": 3615, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } }, "init": { "type": "StringLiteral", "span": { "start": 3619, "end": 3626, "ctxt": 0 }, "value": "hello", "raw": "\"hello\"" }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3543, "end": 3565, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3544, "end": 3545, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3544, "end": 3545, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 3547, "end": 3564, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3547, "end": 3548, "ctxt": 0 }, "value": "K", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeOperator", "span": { "start": 3557, "end": 3564, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3563, "end": 3564, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3563, "end": 3564, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3640, "end": 3643, "ctxt": 0 }, "value": "f31", "optional": false }, "declare": false, "params": [], "decorators": [], "span": { "start": 3631, "end": 3783, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3668, "end": 3783, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 3674, "end": 3781, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3678, "end": 3780, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3678, "end": 3679, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3679, "end": 3770, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 3681, "end": 3770, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 3681, "end": 3767, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3681, "end": 3688, "ctxt": 0 }, "value": "Partial", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3688, "end": 3767, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3689, "end": 3766, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3689, "end": 3696, "ctxt": 0 }, "value": "Partial", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3696, "end": 3766, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3697, "end": 3765, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3697, "end": 3704, "ctxt": 0 }, "value": "Partial", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3704, "end": 3765, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3705, "end": 3764, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3705, "end": 3712, "ctxt": 0 }, "value": "Partial", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3712, "end": 3764, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3713, "end": 3763, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3713, "end": 3720, "ctxt": 0 }, "value": "Partial", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3720, "end": 3763, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3721, "end": 3762, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3721, "end": 3728, "ctxt": 0 }, "value": "Partial", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3728, "end": 3762, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3729, "end": 3761, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3729, "end": 3736, "ctxt": 0 }, "value": "Partial", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3736, "end": 3761, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3737, "end": 3760, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3737, "end": 3743, "ctxt": 0 }, "value": "Record", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3743, "end": 3760, "ctxt": 0 }, "params": [ { "type": "TsTypeOperator", "span": { "start": 3744, "end": 3751, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3750, "end": 3751, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3750, "end": 3751, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, { "type": "TsKeywordType", "span": { "start": 3753, "end": 3759, "ctxt": 0 }, "kind": "string" } ] } } ] } } ] } } ] } } ] } } ] } } ] } } ] } }, "indexType": { "type": "TsTypeReference", "span": { "start": 3768, "end": 3769, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3768, "end": 3769, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } }, "init": { "type": "StringLiteral", "span": { "start": 3773, "end": 3780, "ctxt": 0 }, "value": "hello", "raw": "\"hello\"" }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3643, "end": 3665, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3644, "end": 3645, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3644, "end": 3645, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 3647, "end": 3664, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3647, "end": 3648, "ctxt": 0 }, "value": "K", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeOperator", "span": { "start": 3657, "end": 3664, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3663, "end": 3664, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3663, "end": 3664, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null } ], "interpreter": null }