{ "type": "Script", "span": { "start": 50, "end": 17415, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 56, "end": 61, "ctxt": 0 }, "value": "Shape", "optional": false }, "declare": false, "span": { "start": 50, "end": 144, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 68, "end": 81, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 68, "end": 72, "ctxt": 0 }, "value": "name", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 72, "end": 80, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 74, "end": 80, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 86, "end": 100, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 86, "end": 91, "ctxt": 0 }, "value": "width", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 91, "end": 99, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 93, "end": 99, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 105, "end": 120, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 105, "end": 111, "ctxt": 0 }, "value": "height", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 111, "end": 119, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 113, "end": 119, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 125, "end": 142, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 125, "end": 132, "ctxt": 0 }, "value": "visible", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 132, "end": 141, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 134, "end": 141, "ctxt": 0 }, "kind": "boolean" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 152, "end": 163, "ctxt": 0 }, "value": "TaggedShape", "optional": false }, "declare": false, "span": { "start": 146, "end": 198, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 184, "end": 196, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 184, "end": 187, "ctxt": 0 }, "value": "tag", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 187, "end": 195, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 189, "end": 195, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": { "type": "Identifier", "span": { "start": 172, "end": 177, "ctxt": 0 }, "value": "Shape", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 206, "end": 210, "ctxt": 0 }, "value": "Item", "optional": false }, "declare": false, "span": { "start": 200, "end": 251, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 217, "end": 230, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 217, "end": 221, "ctxt": 0 }, "value": "name", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 221, "end": 229, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 223, "end": 229, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 235, "end": 249, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 235, "end": 240, "ctxt": 0 }, "value": "price", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 240, "end": 248, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 242, "end": 248, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 259, "end": 266, "ctxt": 0 }, "value": "Options", "optional": false }, "declare": false, "span": { "start": 253, "end": 297, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 273, "end": 295, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 273, "end": 280, "ctxt": 0 }, "value": "visible", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 280, "end": 294, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 282, "end": 294, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 282, "end": 287, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 282, "end": 287, "ctxt": 0 }, "value": "yes", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "type": "TsLiteralType", "span": { "start": 290, "end": 294, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 290, "end": 294, "ctxt": 0 }, "value": "no", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "TsTypeAliasDeclaration", "span": { "start": 299, "end": 339, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 304, "end": 314, "ctxt": 0 }, "value": "Dictionary", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 314, "end": 317, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 315, "end": 316, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 315, "end": 316, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 320, "end": 338, "ctxt": 0 }, "members": [ { "type": "TsIndexSignature", "params": [ { "type": "Identifier", "span": { "start": 323, "end": 332, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 324, "end": 332, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 326, "end": 332, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 333, "end": 336, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 335, "end": 336, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 335, "end": 336, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "readonly": false, "static": false, "span": { "start": 322, "end": 336, "ctxt": 0 } } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 340, "end": 388, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 345, "end": 363, "ctxt": 0 }, "value": "NumericallyIndexed", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 363, "end": 366, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 364, "end": 365, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 364, "end": 365, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 369, "end": 387, "ctxt": 0 }, "members": [ { "type": "TsIndexSignature", "params": [ { "type": "Identifier", "span": { "start": 372, "end": 381, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 373, "end": 381, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 375, "end": 381, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 382, "end": 385, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 384, "end": 385, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 384, "end": 385, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "readonly": false, "static": false, "span": { "start": 371, "end": 385, "ctxt": 0 } } ] } }, { "type": "TsEnumDeclaration", "span": { "start": 390, "end": 414, "ctxt": 0 }, "declare": false, "isConst": true, "id": { "type": "Identifier", "span": { "start": 401, "end": 402, "ctxt": 0 }, "value": "E", "optional": false }, "members": [ { "type": "TsEnumMember", "span": { "start": 405, "end": 406, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 405, "end": 406, "ctxt": 0 }, "value": "A", "optional": false }, "init": null }, { "type": "TsEnumMember", "span": { "start": 408, "end": 409, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 408, "end": 409, "ctxt": 0 }, "value": "B", "optional": false }, "init": null }, { "type": "TsEnumMember", "span": { "start": 411, "end": 412, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 411, "end": 412, "ctxt": 0 }, "value": "C", "optional": false }, "init": null } ] }, { "type": "TsTypeAliasDeclaration", "span": { "start": 416, "end": 437, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 421, "end": 424, "ctxt": 0 }, "value": "K00", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 427, "end": 436, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 433, "end": 436, "ctxt": 0 }, "kind": "any" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 449, "end": 473, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 454, "end": 457, "ctxt": 0 }, "value": "K01", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 460, "end": 472, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 466, "end": 472, "ctxt": 0 }, "kind": "string" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 506, "end": 530, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 511, "end": 514, "ctxt": 0 }, "value": "K02", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 517, "end": 529, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 523, "end": 529, "ctxt": 0 }, "kind": "number" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 582, "end": 607, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 587, "end": 590, "ctxt": 0 }, "value": "K03", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 593, "end": 606, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 599, "end": 606, "ctxt": 0 }, "kind": "boolean" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 622, "end": 644, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 627, "end": 630, "ctxt": 0 }, "value": "K04", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 633, "end": 643, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 639, "end": 643, "ctxt": 0 }, "kind": "void" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 655, "end": 682, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 660, "end": 663, "ctxt": 0 }, "value": "K05", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 666, "end": 681, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 672, "end": 681, "ctxt": 0 }, "kind": "undefined" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 693, "end": 715, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 698, "end": 701, "ctxt": 0 }, "value": "K06", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 704, "end": 714, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 710, "end": 714, "ctxt": 0 }, "kind": "null" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 726, "end": 749, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 731, "end": 734, "ctxt": 0 }, "value": "K07", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 737, "end": 748, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 743, "end": 748, "ctxt": 0 }, "kind": "never" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 779, "end": 804, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 784, "end": 787, "ctxt": 0 }, "value": "K08", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 790, "end": 803, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 796, "end": 803, "ctxt": 0 }, "kind": "unknown" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 815, "end": 838, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 820, "end": 823, "ctxt": 0 }, "value": "K10", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 826, "end": 837, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 832, "end": 837, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 832, "end": 837, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 883, "end": 908, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 888, "end": 891, "ctxt": 0 }, "value": "K11", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 894, "end": 907, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsArrayType", "span": { "start": 900, "end": 907, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 900, "end": 905, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 900, "end": 905, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 941, "end": 976, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 946, "end": 949, "ctxt": 0 }, "value": "K12", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 952, "end": 975, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 958, "end": 975, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 958, "end": 968, "ctxt": 0 }, "value": "Dictionary", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 968, "end": 975, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 969, "end": 974, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 969, "end": 974, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } ] } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 988, "end": 1008, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 993, "end": 996, "ctxt": 0 }, "value": "K13", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 999, "end": 1007, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1005, "end": 1007, "ctxt": 0 }, "members": [] } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1019, "end": 1043, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1024, "end": 1027, "ctxt": 0 }, "value": "K14", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 1030, "end": 1042, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1036, "end": 1042, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1036, "end": 1042, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1081, "end": 1100, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1086, "end": 1089, "ctxt": 0 }, "value": "K15", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 1092, "end": 1099, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1098, "end": 1099, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1098, "end": 1099, "ctxt": 0 }, "value": "E", "optional": false }, "typeParams": null } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1152, "end": 1186, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1157, "end": 1160, "ctxt": 0 }, "value": "K16", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 1163, "end": 1185, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTupleType", "span": { "start": 1169, "end": 1185, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 1170, "end": 1176, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 1170, "end": 1176, "ctxt": 0 }, "kind": "string" } }, { "type": "TsTupleElement", "span": { "start": 1178, "end": 1184, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 1178, "end": 1184, "ctxt": 0 }, "kind": "number" } } ] } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1231, "end": 1263, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1236, "end": 1239, "ctxt": 0 }, "value": "K17", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 1242, "end": 1262, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsParenthesizedType", "span": { "start": 1248, "end": 1262, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 1249, "end": 1261, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1249, "end": 1254, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1249, "end": 1254, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 1257, "end": 1261, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1257, "end": 1261, "ctxt": 0 }, "value": "Item", "optional": false }, "typeParams": null } ] } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1275, "end": 1307, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1280, "end": 1283, "ctxt": 0 }, "value": "K18", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 1286, "end": 1306, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsParenthesizedType", "span": { "start": 1292, "end": 1306, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 1293, "end": 1305, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1293, "end": 1298, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1293, "end": 1298, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 1301, "end": 1305, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1301, "end": 1305, "ctxt": 0 }, "value": "Item", "optional": false }, "typeParams": null } ] } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1362, "end": 1404, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1367, "end": 1370, "ctxt": 0 }, "value": "K19", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 1373, "end": 1404, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1379, "end": 1404, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1379, "end": 1397, "ctxt": 0 }, "value": "NumericallyIndexed", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1397, "end": 1404, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1398, "end": 1403, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1398, "end": 1403, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } ] } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1415, "end": 1439, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1420, "end": 1425, "ctxt": 0 }, "value": "KeyOf", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1425, "end": 1428, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1426, "end": 1427, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1426, "end": 1427, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 1431, "end": 1438, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1437, "end": 1438, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1437, "end": 1438, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1441, "end": 1465, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1446, "end": 1449, "ctxt": 0 }, "value": "K20", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1452, "end": 1464, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1452, "end": 1457, "ctxt": 0 }, "value": "KeyOf", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1457, "end": 1464, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1458, "end": 1463, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1458, "end": 1463, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } ] } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1510, "end": 1546, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1515, "end": 1518, "ctxt": 0 }, "value": "K21", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1521, "end": 1545, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1521, "end": 1526, "ctxt": 0 }, "value": "KeyOf", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1526, "end": 1545, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1527, "end": 1544, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1527, "end": 1537, "ctxt": 0 }, "value": "Dictionary", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1537, "end": 1544, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1538, "end": 1543, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1538, "end": 1543, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } ] } } ] } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1559, "end": 1578, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1564, "end": 1568, "ctxt": 0 }, "value": "NAME", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 1571, "end": 1577, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1571, "end": 1577, "ctxt": 0 }, "value": "name", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1579, "end": 1621, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1584, "end": 1599, "ctxt": 0 }, "value": "WIDTH_OR_HEIGHT", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 1602, "end": 1620, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 1602, "end": 1609, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1602, "end": 1609, "ctxt": 0 }, "value": "width", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "type": "TsLiteralType", "span": { "start": 1612, "end": 1620, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1612, "end": 1620, "ctxt": 0 }, "value": "height", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1623, "end": 1648, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1628, "end": 1631, "ctxt": 0 }, "value": "Q10", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1634, "end": 1647, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 1634, "end": 1639, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1634, "end": 1639, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "indexType": { "type": "TsLiteralType", "span": { "start": 1640, "end": 1646, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1640, "end": 1646, "ctxt": 0 }, "value": "name", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1660, "end": 1697, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1665, "end": 1668, "ctxt": 0 }, "value": "Q11", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1671, "end": 1696, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 1671, "end": 1676, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1671, "end": 1676, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "indexType": { "type": "TsUnionType", "span": { "start": 1677, "end": 1695, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 1677, "end": 1684, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1677, "end": 1684, "ctxt": 0 }, "value": "width", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "type": "TsLiteralType", "span": { "start": 1687, "end": 1695, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1687, "end": 1695, "ctxt": 0 }, "value": "height", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1709, "end": 1746, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1714, "end": 1717, "ctxt": 0 }, "value": "Q12", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1720, "end": 1745, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 1720, "end": 1725, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1720, "end": 1725, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "indexType": { "type": "TsUnionType", "span": { "start": 1726, "end": 1744, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 1726, "end": 1732, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1726, "end": 1732, "ctxt": 0 }, "value": "name", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "type": "TsLiteralType", "span": { "start": 1735, "end": 1744, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 1735, "end": 1744, "ctxt": 0 }, "value": "visible", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1769, "end": 1792, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1774, "end": 1777, "ctxt": 0 }, "value": "Q20", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1780, "end": 1791, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 1780, "end": 1785, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1780, "end": 1785, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 1786, "end": 1790, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1786, "end": 1790, "ctxt": 0 }, "value": "NAME", "optional": false }, "typeParams": null } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1804, "end": 1838, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1809, "end": 1812, "ctxt": 0 }, "value": "Q21", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1815, "end": 1837, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 1815, "end": 1820, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1815, "end": 1820, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 1821, "end": 1836, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1821, "end": 1836, "ctxt": 0 }, "value": "WIDTH_OR_HEIGHT", "optional": false }, "typeParams": null } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1851, "end": 1882, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1856, "end": 1859, "ctxt": 0 }, "value": "Q30", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1862, "end": 1881, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTupleType", "span": { "start": 1862, "end": 1878, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 1863, "end": 1869, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 1863, "end": 1869, "ctxt": 0 }, "kind": "string" } }, { "type": "TsTupleElement", "span": { "start": 1871, "end": 1877, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 1871, "end": 1877, "ctxt": 0 }, "kind": "number" } } ] }, "indexType": { "type": "TsLiteralType", "span": { "start": 1879, "end": 1880, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 1879, "end": 1880, "ctxt": 0 }, "value": 0.0 } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1894, "end": 1925, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1899, "end": 1902, "ctxt": 0 }, "value": "Q31", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1905, "end": 1924, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTupleType", "span": { "start": 1905, "end": 1921, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 1906, "end": 1912, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 1906, "end": 1912, "ctxt": 0 }, "kind": "string" } }, { "type": "TsTupleElement", "span": { "start": 1914, "end": 1920, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 1914, "end": 1920, "ctxt": 0 }, "kind": "number" } } ] }, "indexType": { "type": "TsLiteralType", "span": { "start": 1922, "end": 1923, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 1922, "end": 1923, "ctxt": 0 }, "value": 1.0 } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1937, "end": 1973, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1942, "end": 1945, "ctxt": 0 }, "value": "Q32", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1948, "end": 1972, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTupleType", "span": { "start": 1948, "end": 1964, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 1949, "end": 1955, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 1949, "end": 1955, "ctxt": 0 }, "kind": "string" } }, { "type": "TsTupleElement", "span": { "start": 1957, "end": 1963, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 1957, "end": 1963, "ctxt": 0 }, "kind": "number" } } ] }, "indexType": { "type": "TsKeywordType", "span": { "start": 1965, "end": 1971, "ctxt": 0 }, "kind": "number" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 1994, "end": 2027, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 1999, "end": 2002, "ctxt": 0 }, "value": "Q33", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 2005, "end": 2026, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTupleType", "span": { "start": 2005, "end": 2021, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 2006, "end": 2012, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 2006, "end": 2012, "ctxt": 0 }, "kind": "string" } }, { "type": "TsTupleElement", "span": { "start": 2014, "end": 2020, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 2014, "end": 2020, "ctxt": 0 }, "kind": "number" } } ] }, "indexType": { "type": "TsTypeReference", "span": { "start": 2022, "end": 2025, "ctxt": 0 }, "typeName": { "type": "TsQualifiedName", "left": { "type": "Identifier", "span": { "start": 2022, "end": 2023, "ctxt": 0 }, "value": "E", "optional": false }, "right": { "type": "Identifier", "span": { "start": 2024, "end": 2025, "ctxt": 0 }, "value": "A", "optional": false } }, "typeParams": null } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 2039, "end": 2072, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 2044, "end": 2047, "ctxt": 0 }, "value": "Q34", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 2050, "end": 2071, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTupleType", "span": { "start": 2050, "end": 2066, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 2051, "end": 2057, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 2051, "end": 2057, "ctxt": 0 }, "kind": "string" } }, { "type": "TsTupleElement", "span": { "start": 2059, "end": 2065, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 2059, "end": 2065, "ctxt": 0 }, "kind": "number" } } ] }, "indexType": { "type": "TsTypeReference", "span": { "start": 2067, "end": 2070, "ctxt": 0 }, "typeName": { "type": "TsQualifiedName", "left": { "type": "Identifier", "span": { "start": 2067, "end": 2068, "ctxt": 0 }, "value": "E", "optional": false }, "right": { "type": "Identifier", "span": { "start": 2069, "end": 2070, "ctxt": 0 }, "value": "B", "optional": false } }, "typeParams": null } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 2084, "end": 2117, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 2089, "end": 2092, "ctxt": 0 }, "value": "Q35", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 2095, "end": 2116, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTupleType", "span": { "start": 2095, "end": 2111, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 2096, "end": 2102, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 2096, "end": 2102, "ctxt": 0 }, "kind": "string" } }, { "type": "TsTupleElement", "span": { "start": 2104, "end": 2110, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 2104, "end": 2110, "ctxt": 0 }, "kind": "number" } } ] }, "indexType": { "type": "TsLiteralType", "span": { "start": 2112, "end": 2115, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2112, "end": 2115, "ctxt": 0 }, "value": "0", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 2129, "end": 2162, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 2134, "end": 2137, "ctxt": 0 }, "value": "Q36", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 2140, "end": 2161, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTupleType", "span": { "start": 2140, "end": 2156, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 2141, "end": 2147, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 2141, "end": 2147, "ctxt": 0 }, "kind": "string" } }, { "type": "TsTupleElement", "span": { "start": 2149, "end": 2155, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 2149, "end": 2155, "ctxt": 0 }, "kind": "number" } } ] }, "indexType": { "type": "TsLiteralType", "span": { "start": 2157, "end": 2160, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2157, "end": 2160, "ctxt": 0 }, "value": "1", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 2175, "end": 2215, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 2180, "end": 2183, "ctxt": 0 }, "value": "Q40", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 2186, "end": 2214, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsParenthesizedType", "span": { "start": 2186, "end": 2203, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 2187, "end": 2202, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 2187, "end": 2192, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2187, "end": 2192, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 2195, "end": 2202, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2195, "end": 2202, "ctxt": 0 }, "value": "Options", "optional": false }, "typeParams": null } ] } }, "indexType": { "type": "TsLiteralType", "span": { "start": 2204, "end": 2213, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2204, "end": 2213, "ctxt": 0 }, "value": "visible", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 2243, "end": 2283, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 2248, "end": 2251, "ctxt": 0 }, "value": "Q41", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 2254, "end": 2282, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsParenthesizedType", "span": { "start": 2254, "end": 2271, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 2255, "end": 2270, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 2255, "end": 2260, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2255, "end": 2260, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 2263, "end": 2270, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2263, "end": 2270, "ctxt": 0 }, "value": "Options", "optional": false }, "typeParams": null } ] } }, "indexType": { "type": "TsLiteralType", "span": { "start": 2272, "end": 2281, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2272, "end": 2281, "ctxt": 0 }, "value": "visible", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 2347, "end": 2385, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 2352, "end": 2355, "ctxt": 0 }, "value": "Q50", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 2358, "end": 2384, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 2358, "end": 2375, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2358, "end": 2368, "ctxt": 0 }, "value": "Dictionary", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2368, "end": 2375, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2369, "end": 2374, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2369, "end": 2374, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } ] } }, "indexType": { "type": "TsLiteralType", "span": { "start": 2376, "end": 2383, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 2376, "end": 2383, "ctxt": 0 }, "value": "howdy", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 2396, "end": 2430, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 2401, "end": 2404, "ctxt": 0 }, "value": "Q51", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 2407, "end": 2429, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 2407, "end": 2424, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2407, "end": 2417, "ctxt": 0 }, "value": "Dictionary", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2417, "end": 2424, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2418, "end": 2423, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2418, "end": 2423, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } ] } }, "indexType": { "type": "TsLiteralType", "span": { "start": 2425, "end": 2428, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 2425, "end": 2428, "ctxt": 0 }, "value": 123.0 } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 2441, "end": 2475, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 2446, "end": 2449, "ctxt": 0 }, "value": "Q52", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 2452, "end": 2474, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 2452, "end": 2469, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2452, "end": 2462, "ctxt": 0 }, "value": "Dictionary", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2462, "end": 2469, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2463, "end": 2468, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2463, "end": 2468, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } ] } }, "indexType": { "type": "TsTypeReference", "span": { "start": 2470, "end": 2473, "ctxt": 0 }, "typeName": { "type": "TsQualifiedName", "left": { "type": "Identifier", "span": { "start": 2470, "end": 2471, "ctxt": 0 }, "value": "E", "optional": false }, "right": { "type": "Identifier", "span": { "start": 2472, "end": 2473, "ctxt": 0 }, "value": "B", "optional": false } }, "typeParams": null } } }, { "type": "VariableDeclaration", "span": { "start": 2487, "end": 2513, "ctxt": 0 }, "kind": "let", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2499, "end": 2512, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2499, "end": 2503, "ctxt": 0 }, "value": "cond", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2503, "end": 2512, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2505, "end": 2512, "ctxt": 0 }, "kind": "boolean" } } }, "init": null, "definite": false } ] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 2524, "end": 2535, "ctxt": 0 }, "value": "getProperty", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 2558, "end": 2564, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2558, "end": 2564, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2561, "end": 2564, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2563, "end": 2564, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2563, "end": 2564, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 2566, "end": 2572, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2566, "end": 2572, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2569, "end": 2572, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2571, "end": 2572, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2571, "end": 2572, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 2515, "end": 2598, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 2574, "end": 2598, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 2580, "end": 2596, "ctxt": 0 }, "argument": { "type": "MemberExpression", "span": { "start": 2587, "end": 2595, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2587, "end": 2590, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 2590, "end": 2595, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2591, "end": 2594, "ctxt": 0 }, "value": "key", "optional": false } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 2535, "end": 2557, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2536, "end": 2537, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2536, "end": 2537, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2539, "end": 2556, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2539, "end": 2540, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 2549, "end": 2556, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2555, "end": 2556, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2555, "end": 2556, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 2609, "end": 2620, "ctxt": 0 }, "value": "setProperty", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 2643, "end": 2649, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2643, "end": 2649, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2646, "end": 2649, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2648, "end": 2649, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2648, "end": 2649, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 2651, "end": 2657, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2651, "end": 2657, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2654, "end": 2657, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2656, "end": 2657, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2656, "end": 2657, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 2659, "end": 2670, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2659, "end": 2670, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2664, "end": 2670, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 2666, "end": 2670, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 2666, "end": 2667, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2666, "end": 2667, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 2668, "end": 2669, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2668, "end": 2669, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 2600, "end": 2697, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 2672, "end": 2697, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2678, "end": 2695, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 2678, "end": 2694, "ctxt": 0 }, "operator": "=", "left": { "type": "MemberExpression", "span": { "start": 2678, "end": 2686, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2678, "end": 2681, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 2681, "end": 2686, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2682, "end": 2685, "ctxt": 0 }, "value": "key", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 2689, "end": 2694, "ctxt": 0 }, "value": "value", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 2620, "end": 2642, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2621, "end": 2622, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2621, "end": 2622, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2624, "end": 2641, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2624, "end": 2625, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 2634, "end": 2641, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2640, "end": 2641, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2640, "end": 2641, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 2708, "end": 2711, "ctxt": 0 }, "value": "f10", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 2712, "end": 2724, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2712, "end": 2724, "ctxt": 0 }, "value": "shape", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2717, "end": 2724, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2719, "end": 2724, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2719, "end": 2724, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 2699, "end": 3139, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 2726, "end": 3139, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 2732, "end": 2770, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2736, "end": 2769, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2736, "end": 2740, "ctxt": 0 }, "value": "name", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 2743, "end": 2769, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2743, "end": 2754, "ctxt": 0 }, "value": "getProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2755, "end": 2760, "ctxt": 0 }, "value": "shape", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 2762, "end": 2768, "ctxt": 0 }, "value": "name", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2786, "end": 2852, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2790, "end": 2851, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2790, "end": 2803, "ctxt": 0 }, "value": "widthOrHeight", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 2806, "end": 2851, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2806, "end": 2817, "ctxt": 0 }, "value": "getProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2818, "end": 2823, "ctxt": 0 }, "value": "shape", "optional": false } }, { "spread": null, "expression": { "type": "ConditionalExpression", "span": { "start": 2825, "end": 2850, "ctxt": 0 }, "test": { "type": "Identifier", "span": { "start": 2825, "end": 2829, "ctxt": 0 }, "value": "cond", "optional": false }, "consequent": { "type": "StringLiteral", "span": { "start": 2832, "end": 2839, "ctxt": 0 }, "value": "width", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "alternate": { "type": "StringLiteral", "span": { "start": 2842, "end": 2850, "ctxt": 0 }, "value": "height", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2868, "end": 2934, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2872, "end": 2933, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2872, "end": 2885, "ctxt": 0 }, "value": "nameOrVisible", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 2888, "end": 2933, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2888, "end": 2899, "ctxt": 0 }, "value": "getProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2900, "end": 2905, "ctxt": 0 }, "value": "shape", "optional": false } }, { "spread": null, "expression": { "type": "ConditionalExpression", "span": { "start": 2907, "end": 2932, "ctxt": 0 }, "test": { "type": "Identifier", "span": { "start": 2907, "end": 2911, "ctxt": 0 }, "value": "cond", "optional": false }, "consequent": { "type": "StringLiteral", "span": { "start": 2914, "end": 2920, "ctxt": 0 }, "value": "name", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "alternate": { "type": "StringLiteral", "span": { "start": 2923, "end": 2932, "ctxt": 0 }, "value": "visible", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 2960, "end": 3000, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 2960, "end": 2999, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2960, "end": 2971, "ctxt": 0 }, "value": "setProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2972, "end": 2977, "ctxt": 0 }, "value": "shape", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 2979, "end": 2985, "ctxt": 0 }, "value": "name", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 2987, "end": 2998, "ctxt": 0 }, "value": "rectangle", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 3005, "end": 3055, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 3005, "end": 3054, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3005, "end": 3016, "ctxt": 0 }, "value": "setProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3017, "end": 3022, "ctxt": 0 }, "value": "shape", "optional": false } }, { "spread": null, "expression": { "type": "ConditionalExpression", "span": { "start": 3024, "end": 3049, "ctxt": 0 }, "test": { "type": "Identifier", "span": { "start": 3024, "end": 3028, "ctxt": 0 }, "value": "cond", "optional": false }, "consequent": { "type": "StringLiteral", "span": { "start": 3031, "end": 3038, "ctxt": 0 }, "value": "width", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "alternate": { "type": "StringLiteral", "span": { "start": 3041, "end": 3049, "ctxt": 0 }, "value": "height", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 3051, "end": 3053, "ctxt": 0 }, "value": 10.0 } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 3060, "end": 3112, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 3060, "end": 3111, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3060, "end": 3071, "ctxt": 0 }, "value": "setProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3072, "end": 3077, "ctxt": 0 }, "value": "shape", "optional": false } }, { "spread": null, "expression": { "type": "ConditionalExpression", "span": { "start": 3079, "end": 3104, "ctxt": 0 }, "test": { "type": "Identifier", "span": { "start": 3079, "end": 3083, "ctxt": 0 }, "value": "cond", "optional": false }, "consequent": { "type": "StringLiteral", "span": { "start": 3086, "end": 3092, "ctxt": 0 }, "value": "name", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "alternate": { "type": "StringLiteral", "span": { "start": 3095, "end": 3104, "ctxt": 0 }, "value": "visible", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, { "spread": null, "expression": { "type": "BooleanLiteral", "span": { "start": 3106, "end": 3110, "ctxt": 0 }, "value": true } } ], "typeArguments": null } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3150, "end": 3153, "ctxt": 0 }, "value": "f11", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 3154, "end": 3164, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3154, "end": 3164, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3155, "end": 3164, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 3157, "end": 3164, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 3157, "end": 3162, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3157, "end": 3162, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 3141, "end": 3255, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3166, "end": 3255, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 3172, "end": 3207, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3176, "end": 3206, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3176, "end": 3179, "ctxt": 0 }, "value": "len", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 3182, "end": 3206, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3182, "end": 3193, "ctxt": 0 }, "value": "getProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3194, "end": 3195, "ctxt": 0 }, "value": "a", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 3197, "end": 3205, "ctxt": 0 }, "value": "length", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 3223, "end": 3253, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 3223, "end": 3252, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3223, "end": 3234, "ctxt": 0 }, "value": "setProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3235, "end": 3236, "ctxt": 0 }, "value": "a", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 3238, "end": 3246, "ctxt": 0 }, "value": "length", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3248, "end": 3251, "ctxt": 0 }, "value": "len", "optional": false } } ], "typeArguments": null } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3266, "end": 3269, "ctxt": 0 }, "value": "f12", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 3270, "end": 3289, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3270, "end": 3289, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3271, "end": 3289, "ctxt": 0 }, "typeAnnotation": { "type": "TsTupleType", "span": { "start": 3273, "end": 3289, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 3274, "end": 3279, "ctxt": 0 }, "label": null, "ty": { "type": "TsTypeReference", "span": { "start": 3274, "end": 3279, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3274, "end": 3279, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } }, { "type": "TsTupleElement", "span": { "start": 3281, "end": 3288, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 3281, "end": 3288, "ctxt": 0 }, "kind": "boolean" } } ] } } } } ], "decorators": [], "span": { "start": 3257, "end": 3424, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3291, "end": 3424, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 3297, "end": 3332, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3301, "end": 3331, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3301, "end": 3304, "ctxt": 0 }, "value": "len", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 3307, "end": 3331, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3307, "end": 3318, "ctxt": 0 }, "value": "getProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3319, "end": 3320, "ctxt": 0 }, "value": "t", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 3322, "end": 3330, "ctxt": 0 }, "value": "length", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3337, "end": 3366, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3341, "end": 3365, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3341, "end": 3343, "ctxt": 0 }, "value": "s2", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 3346, "end": 3365, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3346, "end": 3357, "ctxt": 0 }, "value": "getProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3358, "end": 3359, "ctxt": 0 }, "value": "t", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 3361, "end": 3364, "ctxt": 0 }, "value": "0", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3381, "end": 3410, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3385, "end": 3409, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3385, "end": 3387, "ctxt": 0 }, "value": "b2", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 3390, "end": 3409, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3390, "end": 3401, "ctxt": 0 }, "value": "getProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3402, "end": 3403, "ctxt": 0 }, "value": "t", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 3405, "end": 3408, "ctxt": 0 }, "value": "1", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3435, "end": 3438, "ctxt": 0 }, "value": "f13", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 3439, "end": 3447, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3439, "end": 3447, "ctxt": 0 }, "value": "foo", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3442, "end": 3447, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3444, "end": 3447, "ctxt": 0 }, "kind": "any" } } } }, { "type": "Parameter", "span": { "start": 3449, "end": 3457, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3449, "end": 3457, "ctxt": 0 }, "value": "bar", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3452, "end": 3457, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 3454, "end": 3457, "ctxt": 0 }, "kind": "any" } } } } ], "decorators": [], "span": { "start": 3426, "end": 3593, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3459, "end": 3593, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 3465, "end": 3495, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3469, "end": 3494, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3469, "end": 3470, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 3473, "end": 3494, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3473, "end": 3484, "ctxt": 0 }, "value": "getProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3485, "end": 3488, "ctxt": 0 }, "value": "foo", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 3490, "end": 3493, "ctxt": 0 }, "value": "x", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3508, "end": 3540, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3512, "end": 3539, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3512, "end": 3513, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 3516, "end": 3539, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3516, "end": 3527, "ctxt": 0 }, "value": "getProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3528, "end": 3531, "ctxt": 0 }, "value": "foo", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 3533, "end": 3538, "ctxt": 0 }, "value": "100", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3553, "end": 3583, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3557, "end": 3582, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3557, "end": 3558, "ctxt": 0 }, "value": "z", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 3561, "end": 3582, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3561, "end": 3572, "ctxt": 0 }, "value": "getProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3573, "end": 3576, "ctxt": 0 }, "value": "foo", "optional": false } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3578, "end": 3581, "ctxt": 0 }, "value": "bar", "optional": false } } ], "typeArguments": null }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3601, "end": 3610, "ctxt": 0 }, "value": "Component", "optional": false }, "declare": false, "span": { "start": 3595, "end": 3846, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 3627, "end": 3643, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 3627, "end": 3632, "ctxt": 0 }, "value": "props", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3632, "end": 3642, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3634, "end": 3642, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3634, "end": 3642, "ctxt": 0 }, "value": "PropType", "optional": false }, "typeParams": null } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassMethod", "span": { "start": 3648, "end": 3733, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 3648, "end": 3659, "ctxt": 0 }, "value": "getProperty", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 3686, "end": 3692, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3686, "end": 3692, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3689, "end": 3692, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3691, "end": 3692, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3691, "end": 3692, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 3648, "end": 3733, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3694, "end": 3733, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 3704, "end": 3727, "ctxt": 0 }, "argument": { "type": "MemberExpression", "span": { "start": 3711, "end": 3726, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 3711, "end": 3721, "ctxt": 0 }, "object": { "type": "ThisExpression", "span": { "start": 3711, "end": 3715, "ctxt": 0 } }, "property": { "type": "Identifier", "span": { "start": 3716, "end": 3721, "ctxt": 0 }, "value": "props", "optional": false } }, "property": { "type": "Computed", "span": { "start": 3721, "end": 3726, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3722, "end": 3725, "ctxt": 0 }, "value": "key", "optional": false } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3659, "end": 3685, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3660, "end": 3684, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3660, "end": 3661, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 3670, "end": 3684, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3676, "end": 3684, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3676, "end": 3684, "ctxt": 0 }, "value": "PropType", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassMethod", "span": { "start": 3738, "end": 3844, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 3738, "end": 3749, "ctxt": 0 }, "value": "setProperty", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 3776, "end": 3782, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3776, "end": 3782, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3779, "end": 3782, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3781, "end": 3782, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3781, "end": 3782, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 3784, "end": 3802, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3784, "end": 3802, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3789, "end": 3802, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 3791, "end": 3802, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 3791, "end": 3799, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3791, "end": 3799, "ctxt": 0 }, "value": "PropType", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 3800, "end": 3801, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3800, "end": 3801, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 3738, "end": 3844, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3804, "end": 3844, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3814, "end": 3838, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 3814, "end": 3837, "ctxt": 0 }, "operator": "=", "left": { "type": "MemberExpression", "span": { "start": 3814, "end": 3829, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 3814, "end": 3824, "ctxt": 0 }, "object": { "type": "ThisExpression", "span": { "start": 3814, "end": 3818, "ctxt": 0 } }, "property": { "type": "Identifier", "span": { "start": 3819, "end": 3824, "ctxt": 0 }, "value": "props", "optional": false } }, "property": { "type": "Computed", "span": { "start": 3824, "end": 3829, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3825, "end": 3828, "ctxt": 0 }, "value": "key", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 3832, "end": 3837, "ctxt": 0 }, "value": "value", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3749, "end": 3775, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3750, "end": 3774, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3750, "end": 3751, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 3760, "end": 3774, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3766, "end": 3774, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3766, "end": 3774, "ctxt": 0 }, "value": "PropType", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false } ], "superClass": null, "isAbstract": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3610, "end": 3620, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3611, "end": 3619, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3611, "end": 3619, "ctxt": 0 }, "value": "PropType", "optional": false }, "constraint": null, "default": null } ] }, "superTypeParams": null, "implements": [] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3857, "end": 3860, "ctxt": 0 }, "value": "f20", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 3861, "end": 3888, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3861, "end": 3888, "ctxt": 0 }, "value": "component", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3870, "end": 3888, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3872, "end": 3888, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3872, "end": 3881, "ctxt": 0 }, "value": "Component", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 3881, "end": 3888, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 3882, "end": 3887, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3882, "end": 3887, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } ] } } } } } ], "decorators": [], "span": { "start": 3848, "end": 4320, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3890, "end": 4320, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 3896, "end": 3937, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3900, "end": 3936, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3900, "end": 3904, "ctxt": 0 }, "value": "name", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 3907, "end": 3936, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 3907, "end": 3928, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3907, "end": 3916, "ctxt": 0 }, "value": "component", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3917, "end": 3928, "ctxt": 0 }, "value": "getProperty", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 3929, "end": 3935, "ctxt": 0 }, "value": "name", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 3953, "end": 4022, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 3957, "end": 4021, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 3957, "end": 3970, "ctxt": 0 }, "value": "widthOrHeight", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 3973, "end": 4021, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 3973, "end": 3994, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3973, "end": 3982, "ctxt": 0 }, "value": "component", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3983, "end": 3994, "ctxt": 0 }, "value": "getProperty", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "ConditionalExpression", "span": { "start": 3995, "end": 4020, "ctxt": 0 }, "test": { "type": "Identifier", "span": { "start": 3995, "end": 3999, "ctxt": 0 }, "value": "cond", "optional": false }, "consequent": { "type": "StringLiteral", "span": { "start": 4002, "end": 4009, "ctxt": 0 }, "value": "width", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "alternate": { "type": "StringLiteral", "span": { "start": 4012, "end": 4020, "ctxt": 0 }, "value": "height", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 4038, "end": 4107, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4042, "end": 4106, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4042, "end": 4055, "ctxt": 0 }, "value": "nameOrVisible", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4058, "end": 4106, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 4058, "end": 4079, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4058, "end": 4067, "ctxt": 0 }, "value": "component", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4068, "end": 4079, "ctxt": 0 }, "value": "getProperty", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "ConditionalExpression", "span": { "start": 4080, "end": 4105, "ctxt": 0 }, "test": { "type": "Identifier", "span": { "start": 4080, "end": 4084, "ctxt": 0 }, "value": "cond", "optional": false }, "consequent": { "type": "StringLiteral", "span": { "start": 4087, "end": 4093, "ctxt": 0 }, "value": "name", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "alternate": { "type": "StringLiteral", "span": { "start": 4096, "end": 4105, "ctxt": 0 }, "value": "visible", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 4133, "end": 4176, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 4133, "end": 4175, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 4133, "end": 4154, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4133, "end": 4142, "ctxt": 0 }, "value": "component", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4143, "end": 4154, "ctxt": 0 }, "value": "setProperty", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 4155, "end": 4161, "ctxt": 0 }, "value": "name", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 4163, "end": 4174, "ctxt": 0 }, "value": "rectangle", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 4181, "end": 4233, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 4181, "end": 4233, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 4181, "end": 4202, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4181, "end": 4190, "ctxt": 0 }, "value": "component", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4191, "end": 4202, "ctxt": 0 }, "value": "setProperty", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "ConditionalExpression", "span": { "start": 4203, "end": 4228, "ctxt": 0 }, "test": { "type": "Identifier", "span": { "start": 4203, "end": 4207, "ctxt": 0 }, "value": "cond", "optional": false }, "consequent": { "type": "StringLiteral", "span": { "start": 4210, "end": 4217, "ctxt": 0 }, "value": "width", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "alternate": { "type": "StringLiteral", "span": { "start": 4220, "end": 4228, "ctxt": 0 }, "value": "height", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 4230, "end": 4232, "ctxt": 0 }, "value": 10.0 } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 4238, "end": 4293, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 4238, "end": 4292, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 4238, "end": 4259, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4238, "end": 4247, "ctxt": 0 }, "value": "component", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4248, "end": 4259, "ctxt": 0 }, "value": "setProperty", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "ConditionalExpression", "span": { "start": 4260, "end": 4285, "ctxt": 0 }, "test": { "type": "Identifier", "span": { "start": 4260, "end": 4264, "ctxt": 0 }, "value": "cond", "optional": false }, "consequent": { "type": "StringLiteral", "span": { "start": 4267, "end": 4273, "ctxt": 0 }, "value": "name", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "alternate": { "type": "StringLiteral", "span": { "start": 4276, "end": 4285, "ctxt": 0 }, "value": "visible", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, { "spread": null, "expression": { "type": "BooleanLiteral", "span": { "start": 4287, "end": 4291, "ctxt": 0 }, "value": true } } ], "typeArguments": null } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 4331, "end": 4336, "ctxt": 0 }, "value": "pluck", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 4359, "end": 4369, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 4359, "end": 4369, "ctxt": 0 }, "value": "array", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4364, "end": 4369, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 4366, "end": 4369, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 4366, "end": 4367, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4366, "end": 4367, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, { "type": "Parameter", "span": { "start": 4371, "end": 4377, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 4371, "end": 4377, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4374, "end": 4377, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4376, "end": 4377, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4376, "end": 4377, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 4322, "end": 4417, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 4379, "end": 4417, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 4385, "end": 4415, "ctxt": 0 }, "argument": { "type": "CallExpression", "span": { "start": 4392, "end": 4414, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 4392, "end": 4401, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4392, "end": 4397, "ctxt": 0 }, "value": "array", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4398, "end": 4401, "ctxt": 0 }, "value": "map", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 4402, "end": 4413, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 4402, "end": 4403, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null } ], "body": { "type": "MemberExpression", "span": { "start": 4407, "end": 4413, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4407, "end": 4408, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Computed", "span": { "start": 4408, "end": 4413, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 4409, "end": 4412, "ctxt": 0 }, "value": "key", "optional": false } } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 4336, "end": 4358, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4337, "end": 4338, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4337, "end": 4338, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 4340, "end": 4357, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4340, "end": 4341, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 4350, "end": 4357, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4356, "end": 4357, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4356, "end": 4357, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 4428, "end": 4431, "ctxt": 0 }, "value": "f30", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 4432, "end": 4447, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 4432, "end": 4447, "ctxt": 0 }, "value": "shapes", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4438, "end": 4447, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 4440, "end": 4447, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 4440, "end": 4445, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4440, "end": 4445, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 4419, "end": 4652, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 4449, "end": 4652, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 4455, "end": 4489, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4459, "end": 4488, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4459, "end": 4464, "ctxt": 0 }, "value": "names", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4467, "end": 4488, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4467, "end": 4472, "ctxt": 0 }, "value": "pluck", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4473, "end": 4479, "ctxt": 0 }, "value": "shapes", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 4481, "end": 4487, "ctxt": 0 }, "value": "name", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 4509, "end": 4545, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4513, "end": 4544, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4513, "end": 4519, "ctxt": 0 }, "value": "widths", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4522, "end": 4544, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4522, "end": 4527, "ctxt": 0 }, "value": "pluck", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4528, "end": 4534, "ctxt": 0 }, "value": "shapes", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 4536, "end": 4543, "ctxt": 0 }, "value": "width", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 4563, "end": 4625, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4567, "end": 4624, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4567, "end": 4581, "ctxt": 0 }, "value": "nameOrVisibles", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4584, "end": 4624, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4584, "end": 4589, "ctxt": 0 }, "value": "pluck", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4590, "end": 4596, "ctxt": 0 }, "value": "shapes", "optional": false } }, { "spread": null, "expression": { "type": "ConditionalExpression", "span": { "start": 4598, "end": 4623, "ctxt": 0 }, "test": { "type": "Identifier", "span": { "start": 4598, "end": 4602, "ctxt": 0 }, "value": "cond", "optional": false }, "consequent": { "type": "StringLiteral", "span": { "start": 4605, "end": 4611, "ctxt": 0 }, "value": "name", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "alternate": { "type": "StringLiteral", "span": { "start": 4614, "end": 4623, "ctxt": 0 }, "value": "visible", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } ], "typeArguments": null }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 4663, "end": 4666, "ctxt": 0 }, "value": "f31", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 4690, "end": 4696, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 4690, "end": 4696, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4693, "end": 4696, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4695, "end": 4696, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4695, "end": 4696, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 4654, "end": 4816, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 4698, "end": 4816, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 4704, "end": 4778, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4710, "end": 4777, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4710, "end": 4715, "ctxt": 0 }, "value": "shape", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4715, "end": 4722, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4717, "end": 4722, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4717, "end": 4722, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } } }, "init": { "type": "ObjectExpression", "span": { "start": 4725, "end": 4777, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 4727, "end": 4731, "ctxt": 0 }, "value": "name", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 4733, "end": 4738, "ctxt": 0 }, "value": "foo", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 4740, "end": 4745, "ctxt": 0 }, "value": "width", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 4747, "end": 4748, "ctxt": 0 }, "value": 5.0 } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 4750, "end": 4756, "ctxt": 0 }, "value": "height", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 4758, "end": 4760, "ctxt": 0 }, "value": 10.0 } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 4762, "end": 4769, "ctxt": 0 }, "value": "visible", "optional": false }, "value": { "type": "BooleanLiteral", "span": { "start": 4771, "end": 4775, "ctxt": 0 }, "value": true } } ] }, "definite": false } ] }, { "type": "ReturnStatement", "span": { "start": 4783, "end": 4801, "ctxt": 0 }, "argument": { "type": "MemberExpression", "span": { "start": 4790, "end": 4800, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4790, "end": 4795, "ctxt": 0 }, "value": "shape", "optional": false }, "property": { "type": "Computed", "span": { "start": 4795, "end": 4800, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 4796, "end": 4799, "ctxt": 0 }, "value": "key", "optional": false } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 4666, "end": 4689, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4667, "end": 4688, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4667, "end": 4668, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 4677, "end": 4688, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4683, "end": 4688, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4683, "end": 4688, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 4827, "end": 4830, "ctxt": 0 }, "value": "f32", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 4861, "end": 4867, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 4861, "end": 4867, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4864, "end": 4867, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4866, "end": 4867, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4866, "end": 4867, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 4818, "end": 4987, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 4869, "end": 4987, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 4875, "end": 4949, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4881, "end": 4948, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4881, "end": 4886, "ctxt": 0 }, "value": "shape", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4886, "end": 4893, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4888, "end": 4893, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4888, "end": 4893, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } } }, "init": { "type": "ObjectExpression", "span": { "start": 4896, "end": 4948, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 4898, "end": 4902, "ctxt": 0 }, "value": "name", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 4904, "end": 4909, "ctxt": 0 }, "value": "foo", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 4911, "end": 4916, "ctxt": 0 }, "value": "width", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 4918, "end": 4919, "ctxt": 0 }, "value": 5.0 } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 4921, "end": 4927, "ctxt": 0 }, "value": "height", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 4929, "end": 4931, "ctxt": 0 }, "value": 10.0 } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 4933, "end": 4940, "ctxt": 0 }, "value": "visible", "optional": false }, "value": { "type": "BooleanLiteral", "span": { "start": 4942, "end": 4946, "ctxt": 0 }, "value": true } } ] }, "definite": false } ] }, { "type": "ReturnStatement", "span": { "start": 4954, "end": 4972, "ctxt": 0 }, "argument": { "type": "MemberExpression", "span": { "start": 4961, "end": 4971, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4961, "end": 4966, "ctxt": 0 }, "value": "shape", "optional": false }, "property": { "type": "Computed", "span": { "start": 4966, "end": 4971, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 4967, "end": 4970, "ctxt": 0 }, "value": "key", "optional": false } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 4830, "end": 4860, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4831, "end": 4859, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4831, "end": 4832, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsUnionType", "span": { "start": 4841, "end": 4859, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 4841, "end": 4848, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 4841, "end": 4848, "ctxt": 0 }, "value": "width", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "type": "TsLiteralType", "span": { "start": 4851, "end": 4859, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 4851, "end": 4859, "ctxt": 0 }, "value": "height", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 4998, "end": 5001, "ctxt": 0 }, "value": "f33", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 5038, "end": 5046, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5038, "end": 5046, "ctxt": 0 }, "value": "shape", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5043, "end": 5046, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5045, "end": 5046, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5045, "end": 5046, "ctxt": 0 }, "value": "S", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 5048, "end": 5054, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5048, "end": 5054, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5051, "end": 5054, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5053, "end": 5054, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5053, "end": 5054, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 4989, "end": 5159, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 5056, "end": 5159, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 5062, "end": 5100, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 5066, "end": 5099, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5066, "end": 5070, "ctxt": 0 }, "value": "name", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 5073, "end": 5099, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 5073, "end": 5084, "ctxt": 0 }, "value": "getProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 5085, "end": 5090, "ctxt": 0 }, "value": "shape", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 5092, "end": 5098, "ctxt": 0 }, "value": "name", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 5105, "end": 5140, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 5109, "end": 5139, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5109, "end": 5113, "ctxt": 0 }, "value": "prop", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 5116, "end": 5139, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 5116, "end": 5127, "ctxt": 0 }, "value": "getProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 5128, "end": 5133, "ctxt": 0 }, "value": "shape", "optional": false } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 5135, "end": 5138, "ctxt": 0 }, "value": "key", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "ReturnStatement", "span": { "start": 5145, "end": 5157, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 5152, "end": 5156, "ctxt": 0 }, "value": "prop", "optional": false } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 5001, "end": 5037, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 5002, "end": 5017, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5002, "end": 5003, "ctxt": 0 }, "value": "S", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 5012, "end": 5017, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5012, "end": 5017, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 5019, "end": 5036, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5019, "end": 5020, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 5029, "end": 5036, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5035, "end": 5036, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5035, "end": 5036, "ctxt": 0 }, "value": "S", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 5170, "end": 5173, "ctxt": 0 }, "value": "f34", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 5174, "end": 5189, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5174, "end": 5189, "ctxt": 0 }, "value": "ts", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5176, "end": 5189, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5178, "end": 5189, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5178, "end": 5189, "ctxt": 0 }, "value": "TaggedShape", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 5161, "end": 5264, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 5191, "end": 5264, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 5197, "end": 5223, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 5201, "end": 5222, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5201, "end": 5205, "ctxt": 0 }, "value": "tag1", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 5208, "end": 5222, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 5208, "end": 5211, "ctxt": 0 }, "value": "f33", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 5212, "end": 5214, "ctxt": 0 }, "value": "ts", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 5216, "end": 5221, "ctxt": 0 }, "value": "tag", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 5228, "end": 5262, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 5232, "end": 5261, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5232, "end": 5236, "ctxt": 0 }, "value": "tag2", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 5239, "end": 5261, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 5239, "end": 5250, "ctxt": 0 }, "value": "getProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 5251, "end": 5253, "ctxt": 0 }, "value": "ts", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 5255, "end": 5260, "ctxt": 0 }, "value": "tag", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 5272, "end": 5273, "ctxt": 0 }, "value": "C", "optional": false }, "declare": false, "span": { "start": 5266, "end": 5347, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 5280, "end": 5297, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 5287, "end": 5288, "ctxt": 0 }, "value": "x", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5288, "end": 5296, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 5290, "end": 5296, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": "public", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 5302, "end": 5322, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 5312, "end": 5313, "ctxt": 0 }, "value": "y", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5313, "end": 5321, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 5315, "end": 5321, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 5327, "end": 5345, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 5335, "end": 5336, "ctxt": 0 }, "value": "z", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5336, "end": 5344, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 5338, "end": 5344, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": "private", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 5522, "end": 5525, "ctxt": 0 }, "value": "f40", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 5526, "end": 5530, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5526, "end": 5530, "ctxt": 0 }, "value": "c", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5527, "end": 5530, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5529, "end": 5530, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5529, "end": 5530, "ctxt": 0 }, "value": "C", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 5513, "end": 5667, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 5532, "end": 5667, "ctxt": 0 }, "stmts": [ { "type": "TsTypeAliasDeclaration", "span": { "start": 5538, "end": 5554, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 5543, "end": 5544, "ctxt": 0 }, "value": "X", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 5547, "end": 5553, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 5547, "end": 5548, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5547, "end": 5548, "ctxt": 0 }, "value": "C", "optional": false }, "typeParams": null }, "indexType": { "type": "TsLiteralType", "span": { "start": 5549, "end": 5552, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 5549, "end": 5552, "ctxt": 0 }, "value": "x", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 5559, "end": 5575, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 5564, "end": 5565, "ctxt": 0 }, "value": "Y", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 5568, "end": 5574, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 5568, "end": 5569, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5568, "end": 5569, "ctxt": 0 }, "value": "C", "optional": false }, "typeParams": null }, "indexType": { "type": "TsLiteralType", "span": { "start": 5570, "end": 5573, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 5570, "end": 5573, "ctxt": 0 }, "value": "y", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 5580, "end": 5596, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 5585, "end": 5586, "ctxt": 0 }, "value": "Z", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 5589, "end": 5595, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 5589, "end": 5590, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5589, "end": 5590, "ctxt": 0 }, "value": "C", "optional": false }, "typeParams": null }, "indexType": { "type": "TsLiteralType", "span": { "start": 5591, "end": 5594, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 5591, "end": 5594, "ctxt": 0 }, "value": "z", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } }, { "type": "VariableDeclaration", "span": { "start": 5601, "end": 5619, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 5605, "end": 5618, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5605, "end": 5606, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5606, "end": 5609, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5608, "end": 5609, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5608, "end": 5609, "ctxt": 0 }, "value": "X", "optional": false }, "typeParams": null } } }, "init": { "type": "MemberExpression", "span": { "start": 5612, "end": 5618, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5612, "end": 5613, "ctxt": 0 }, "value": "c", "optional": false }, "property": { "type": "Computed", "span": { "start": 5613, "end": 5618, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 5614, "end": 5617, "ctxt": 0 }, "value": "x", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 5624, "end": 5642, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 5628, "end": 5641, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5628, "end": 5629, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5629, "end": 5632, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5631, "end": 5632, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5631, "end": 5632, "ctxt": 0 }, "value": "Y", "optional": false }, "typeParams": null } } }, "init": { "type": "MemberExpression", "span": { "start": 5635, "end": 5641, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5635, "end": 5636, "ctxt": 0 }, "value": "c", "optional": false }, "property": { "type": "Computed", "span": { "start": 5636, "end": 5641, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 5637, "end": 5640, "ctxt": 0 }, "value": "y", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 5647, "end": 5665, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 5651, "end": 5664, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5651, "end": 5652, "ctxt": 0 }, "value": "z", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5652, "end": 5655, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5654, "end": 5655, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5654, "end": 5655, "ctxt": 0 }, "value": "Z", "optional": false }, "typeParams": null } } }, "init": { "type": "MemberExpression", "span": { "start": 5658, "end": 5664, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5658, "end": 5659, "ctxt": 0 }, "value": "c", "optional": false }, "property": { "type": "Computed", "span": { "start": 5659, "end": 5664, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 5660, "end": 5663, "ctxt": 0 }, "value": "z", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 5678, "end": 5681, "ctxt": 0 }, "value": "f50", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 5685, "end": 5695, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5685, "end": 5695, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5686, "end": 5695, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 5688, "end": 5695, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5694, "end": 5695, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5694, "end": 5695, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, { "type": "Parameter", "span": { "start": 5697, "end": 5706, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5697, "end": 5706, "ctxt": 0 }, "value": "s", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5698, "end": 5706, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 5700, "end": 5706, "ctxt": 0 }, "kind": "string" } } } } ], "decorators": [], "span": { "start": 5669, "end": 5768, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 5708, "end": 5768, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 5714, "end": 5738, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 5720, "end": 5737, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5720, "end": 5722, "ctxt": 0 }, "value": "x1", "optional": false, "typeAnnotation": null }, "init": { "type": "TsAsExpression", "span": { "start": 5725, "end": 5737, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 5725, "end": 5726, "ctxt": 0 }, "value": "s", "optional": false }, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 5730, "end": 5737, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5736, "end": 5737, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5736, "end": 5737, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 5743, "end": 5766, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 5749, "end": 5765, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5749, "end": 5751, "ctxt": 0 }, "value": "x2", "optional": false, "typeAnnotation": null }, "init": { "type": "TsAsExpression", "span": { "start": 5754, "end": 5765, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 5754, "end": 5755, "ctxt": 0 }, "value": "k", "optional": false }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 5759, "end": 5765, "ctxt": 0 }, "kind": "string" } }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 5681, "end": 5684, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 5682, "end": 5683, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5682, "end": 5683, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 5779, "end": 5782, "ctxt": 0 }, "value": "f51", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 5805, "end": 5809, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5805, "end": 5809, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5806, "end": 5809, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5808, "end": 5809, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5808, "end": 5809, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 5811, "end": 5820, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5811, "end": 5820, "ctxt": 0 }, "value": "s", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5812, "end": 5820, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 5814, "end": 5820, "ctxt": 0 }, "kind": "string" } } } } ], "decorators": [], "span": { "start": 5770, "end": 5882, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 5822, "end": 5882, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 5828, "end": 5852, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 5834, "end": 5851, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5834, "end": 5836, "ctxt": 0 }, "value": "x1", "optional": false, "typeAnnotation": null }, "init": { "type": "TsAsExpression", "span": { "start": 5839, "end": 5851, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 5839, "end": 5840, "ctxt": 0 }, "value": "s", "optional": false }, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 5844, "end": 5851, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5850, "end": 5851, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5850, "end": 5851, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 5857, "end": 5880, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 5863, "end": 5879, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5863, "end": 5865, "ctxt": 0 }, "value": "x2", "optional": false, "typeAnnotation": null }, "init": { "type": "TsAsExpression", "span": { "start": 5868, "end": 5879, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 5868, "end": 5869, "ctxt": 0 }, "value": "k", "optional": false }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 5873, "end": 5879, "ctxt": 0 }, "kind": "string" } }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 5782, "end": 5804, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 5783, "end": 5784, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5783, "end": 5784, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 5786, "end": 5803, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5786, "end": 5787, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 5796, "end": 5803, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5802, "end": 5803, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5802, "end": 5803, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 5893, "end": 5896, "ctxt": 0 }, "value": "f52", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 5900, "end": 5929, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5900, "end": 5929, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5903, "end": 5929, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 5905, "end": 5929, "ctxt": 0 }, "members": [ { "type": "TsIndexSignature", "params": [ { "type": "Identifier", "span": { "start": 5908, "end": 5917, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5909, "end": 5917, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 5911, "end": 5917, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5918, "end": 5927, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 5920, "end": 5927, "ctxt": 0 }, "kind": "boolean" } }, "readonly": false, "static": false, "span": { "start": 5907, "end": 5927, "ctxt": 0 } } ] } } } }, { "type": "Parameter", "span": { "start": 5931, "end": 5958, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5931, "end": 5958, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5932, "end": 5958, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5934, "end": 5958, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5934, "end": 5941, "ctxt": 0 }, "value": "Exclude", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 5941, "end": 5958, "ctxt": 0 }, "params": [ { "type": "TsTypeOperator", "span": { "start": 5942, "end": 5949, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5948, "end": 5949, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5948, "end": 5949, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, { "type": "TsKeywordType", "span": { "start": 5951, "end": 5957, "ctxt": 0 }, "kind": "symbol" } ] } } } } }, { "type": "Parameter", "span": { "start": 5960, "end": 5969, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5960, "end": 5969, "ctxt": 0 }, "value": "s", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5961, "end": 5969, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 5963, "end": 5969, "ctxt": 0 }, "kind": "string" } } } }, { "type": "Parameter", "span": { "start": 5971, "end": 5980, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5971, "end": 5980, "ctxt": 0 }, "value": "n", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5972, "end": 5980, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 5974, "end": 5980, "ctxt": 0 }, "kind": "number" } } } } ], "decorators": [], "span": { "start": 5884, "end": 6054, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 5982, "end": 6054, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 5988, "end": 6006, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 5994, "end": 6005, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5994, "end": 5996, "ctxt": 0 }, "value": "x1", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 5999, "end": 6005, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5999, "end": 6002, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 6002, "end": 6005, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6003, "end": 6004, "ctxt": 0 }, "value": "s", "optional": false } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 6011, "end": 6029, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 6017, "end": 6028, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 6017, "end": 6019, "ctxt": 0 }, "value": "x2", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 6022, "end": 6028, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6022, "end": 6025, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 6025, "end": 6028, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6026, "end": 6027, "ctxt": 0 }, "value": "n", "optional": false } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 6034, "end": 6052, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 6040, "end": 6051, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 6040, "end": 6042, "ctxt": 0 }, "value": "x3", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 6045, "end": 6051, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6045, "end": 6048, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 6048, "end": 6051, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6049, "end": 6050, "ctxt": 0 }, "value": "k", "optional": false } } }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 5896, "end": 5899, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 5897, "end": 5898, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5897, "end": 5898, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 6065, "end": 6068, "ctxt": 0 }, "value": "f53", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 6108, "end": 6137, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6108, "end": 6137, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6111, "end": 6137, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 6113, "end": 6137, "ctxt": 0 }, "members": [ { "type": "TsIndexSignature", "params": [ { "type": "Identifier", "span": { "start": 6116, "end": 6125, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6117, "end": 6125, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6119, "end": 6125, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6126, "end": 6135, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6128, "end": 6135, "ctxt": 0 }, "kind": "boolean" } }, "readonly": false, "static": false, "span": { "start": 6115, "end": 6135, "ctxt": 0 } } ] } } } }, { "type": "Parameter", "span": { "start": 6139, "end": 6143, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6139, "end": 6143, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6140, "end": 6143, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 6142, "end": 6143, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6142, "end": 6143, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 6145, "end": 6154, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6145, "end": 6154, "ctxt": 0 }, "value": "s", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6146, "end": 6154, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6148, "end": 6154, "ctxt": 0 }, "kind": "string" } } } }, { "type": "Parameter", "span": { "start": 6156, "end": 6165, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6156, "end": 6165, "ctxt": 0 }, "value": "n", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6157, "end": 6165, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6159, "end": 6165, "ctxt": 0 }, "kind": "number" } } } } ], "decorators": [], "span": { "start": 6056, "end": 6239, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 6167, "end": 6239, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 6173, "end": 6191, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 6179, "end": 6190, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 6179, "end": 6181, "ctxt": 0 }, "value": "x1", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 6184, "end": 6190, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6184, "end": 6187, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 6187, "end": 6190, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6188, "end": 6189, "ctxt": 0 }, "value": "s", "optional": false } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 6196, "end": 6214, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 6202, "end": 6213, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 6202, "end": 6204, "ctxt": 0 }, "value": "x2", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 6207, "end": 6213, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6207, "end": 6210, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 6210, "end": 6213, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6211, "end": 6212, "ctxt": 0 }, "value": "n", "optional": false } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 6219, "end": 6237, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 6225, "end": 6236, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 6225, "end": 6227, "ctxt": 0 }, "value": "x3", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 6230, "end": 6236, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6230, "end": 6233, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 6233, "end": 6236, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6234, "end": 6235, "ctxt": 0 }, "value": "k", "optional": false } } }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 6068, "end": 6107, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 6069, "end": 6070, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 6069, "end": 6070, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 6072, "end": 6106, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 6072, "end": 6073, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 6082, "end": 6106, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6082, "end": 6089, "ctxt": 0 }, "value": "Exclude", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 6089, "end": 6106, "ctxt": 0 }, "params": [ { "type": "TsTypeOperator", "span": { "start": 6090, "end": 6097, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 6096, "end": 6097, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6096, "end": 6097, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, { "type": "TsKeywordType", "span": { "start": 6099, "end": 6105, "ctxt": 0 }, "kind": "symbol" } ] } }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 6250, "end": 6253, "ctxt": 0 }, "value": "f54", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 6257, "end": 6263, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6257, "end": 6263, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6260, "end": 6263, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 6262, "end": 6263, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6262, "end": 6263, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 6265, "end": 6277, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6265, "end": 6277, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6268, "end": 6277, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 6270, "end": 6277, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 6276, "end": 6277, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6276, "end": 6277, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 6241, "end": 6351, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 6279, "end": 6351, "ctxt": 0 }, "stmts": [ { "type": "ForInStatement", "span": { "start": 6285, "end": 6316, "ctxt": 0 }, "left": { "type": "VariableDeclaration", "span": { "start": 6290, "end": 6295, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 6294, "end": 6295, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 6294, "end": 6295, "ctxt": 0 }, "value": "s", "optional": false, "typeAnnotation": null }, "init": null, "definite": false } ] }, "right": { "type": "MemberExpression", "span": { "start": 6299, "end": 6307, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6299, "end": 6302, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 6302, "end": 6307, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6303, "end": 6306, "ctxt": 0 }, "value": "key", "optional": false } } }, "body": { "type": "BlockStatement", "span": { "start": 6309, "end": 6316, "ctxt": 0 }, "stmts": [] } }, { "type": "VariableDeclaration", "span": { "start": 6321, "end": 6349, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 6327, "end": 6348, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 6327, "end": 6328, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null }, "init": { "type": "BinaryExpression", "span": { "start": 6331, "end": 6348, "ctxt": 0 }, "operator": "in", "left": { "type": "StringLiteral", "span": { "start": 6331, "end": 6336, "ctxt": 0 }, "value": "foo", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "right": { "type": "MemberExpression", "span": { "start": 6340, "end": 6348, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6340, "end": 6343, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 6343, "end": 6348, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6344, "end": 6347, "ctxt": 0 }, "value": "key", "optional": false } } } }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 6253, "end": 6256, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 6254, "end": 6255, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 6254, "end": 6255, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 6362, "end": 6365, "ctxt": 0 }, "value": "f55", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 6388, "end": 6394, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6388, "end": 6394, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6391, "end": 6394, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 6393, "end": 6394, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6393, "end": 6394, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 6396, "end": 6402, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6396, "end": 6402, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6399, "end": 6402, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 6401, "end": 6402, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6401, "end": 6402, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 6353, "end": 6476, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 6404, "end": 6476, "ctxt": 0 }, "stmts": [ { "type": "ForInStatement", "span": { "start": 6410, "end": 6441, "ctxt": 0 }, "left": { "type": "VariableDeclaration", "span": { "start": 6415, "end": 6420, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 6419, "end": 6420, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 6419, "end": 6420, "ctxt": 0 }, "value": "s", "optional": false, "typeAnnotation": null }, "init": null, "definite": false } ] }, "right": { "type": "MemberExpression", "span": { "start": 6424, "end": 6432, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6424, "end": 6427, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 6427, "end": 6432, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6428, "end": 6431, "ctxt": 0 }, "value": "key", "optional": false } } }, "body": { "type": "BlockStatement", "span": { "start": 6434, "end": 6441, "ctxt": 0 }, "stmts": [] } }, { "type": "VariableDeclaration", "span": { "start": 6446, "end": 6474, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 6452, "end": 6473, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 6452, "end": 6453, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null }, "init": { "type": "BinaryExpression", "span": { "start": 6456, "end": 6473, "ctxt": 0 }, "operator": "in", "left": { "type": "StringLiteral", "span": { "start": 6456, "end": 6461, "ctxt": 0 }, "value": "foo", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "right": { "type": "MemberExpression", "span": { "start": 6465, "end": 6473, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6465, "end": 6468, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 6468, "end": 6473, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6469, "end": 6472, "ctxt": 0 }, "value": "key", "optional": false } } } }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 6365, "end": 6387, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 6366, "end": 6367, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 6366, "end": 6367, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 6369, "end": 6386, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 6369, "end": 6370, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 6379, "end": 6386, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 6385, "end": 6386, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6385, "end": 6386, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 6487, "end": 6490, "ctxt": 0 }, "value": "f60", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 6494, "end": 6503, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6494, "end": 6503, "ctxt": 0 }, "value": "source", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6500, "end": 6503, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 6502, "end": 6503, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6502, "end": 6503, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 6505, "end": 6514, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6505, "end": 6514, "ctxt": 0 }, "value": "target", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6511, "end": 6514, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 6513, "end": 6514, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6513, "end": 6514, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 6478, "end": 6584, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 6516, "end": 6584, "ctxt": 0 }, "stmts": [ { "type": "ForInStatement", "span": { "start": 6522, "end": 6582, "ctxt": 0 }, "left": { "type": "VariableDeclaration", "span": { "start": 6527, "end": 6532, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 6531, "end": 6532, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 6531, "end": 6532, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": null }, "init": null, "definite": false } ] }, "right": { "type": "Identifier", "span": { "start": 6536, "end": 6542, "ctxt": 0 }, "value": "source", "optional": false }, "body": { "type": "BlockStatement", "span": { "start": 6544, "end": 6582, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6554, "end": 6576, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 6554, "end": 6575, "ctxt": 0 }, "operator": "=", "left": { "type": "MemberExpression", "span": { "start": 6554, "end": 6563, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6554, "end": 6560, "ctxt": 0 }, "value": "target", "optional": false }, "property": { "type": "Computed", "span": { "start": 6560, "end": 6563, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6561, "end": 6562, "ctxt": 0 }, "value": "k", "optional": false } } }, "right": { "type": "MemberExpression", "span": { "start": 6566, "end": 6575, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6566, "end": 6572, "ctxt": 0 }, "value": "source", "optional": false }, "property": { "type": "Computed", "span": { "start": 6572, "end": 6575, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6573, "end": 6574, "ctxt": 0 }, "value": "k", "optional": false } } } } } ] } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 6490, "end": 6493, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 6491, "end": 6492, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 6491, "end": 6492, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 6595, "end": 6598, "ctxt": 0 }, "value": "f70", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 6599, "end": 6657, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6599, "end": 6657, "ctxt": 0 }, "value": "func", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6603, "end": 6657, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 6605, "end": 6657, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 6612, "end": 6629, "ctxt": 0 }, "value": "k1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6614, "end": 6629, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 6616, "end": 6629, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsParenthesizedType", "span": { "start": 6622, "end": 6629, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 6623, "end": 6628, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 6623, "end": 6624, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6623, "end": 6624, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 6627, "end": 6628, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6627, "end": 6628, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } ] } } } } }, { "type": "Identifier", "span": { "start": 6631, "end": 6648, "ctxt": 0 }, "value": "k2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6633, "end": 6648, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 6635, "end": 6648, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsParenthesizedType", "span": { "start": 6641, "end": 6648, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 6642, "end": 6647, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 6642, "end": 6643, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6642, "end": 6643, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 6646, "end": 6647, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6646, "end": 6647, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } ] } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 6605, "end": 6611, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 6606, "end": 6607, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 6606, "end": 6607, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 6609, "end": 6610, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 6609, "end": 6610, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6650, "end": 6657, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6653, "end": 6657, "ctxt": 0 }, "kind": "void" } } } } } } ], "decorators": [], "span": { "start": 6586, "end": 6842, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 6659, "end": 6842, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6665, "end": 6720, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 6665, "end": 6719, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 6665, "end": 6669, "ctxt": 0 }, "value": "func", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 6710, "end": 6713, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 6715, "end": 6718, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 6669, "end": 6709, "ctxt": 0 }, "params": [ { "type": "TsTypeLiteral", "span": { "start": 6670, "end": 6688, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 6672, "end": 6679, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 6672, "end": 6673, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6673, "end": 6678, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6675, "end": 6678, "ctxt": 0 }, "kind": "any" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 6680, "end": 6686, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 6680, "end": 6681, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6681, "end": 6686, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6683, "end": 6686, "ctxt": 0 }, "kind": "any" } }, "typeParams": null } ] }, { "type": "TsTypeLiteral", "span": { "start": 6690, "end": 6708, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 6692, "end": 6699, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 6692, "end": 6693, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6693, "end": 6698, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6695, "end": 6698, "ctxt": 0 }, "kind": "any" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 6700, "end": 6706, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 6700, "end": 6701, "ctxt": 0 }, "value": "c", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6701, "end": 6706, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6703, "end": 6706, "ctxt": 0 }, "kind": "any" } }, "typeParams": null } ] } ] } } }, { "type": "ExpressionStatement", "span": { "start": 6725, "end": 6780, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 6725, "end": 6779, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 6725, "end": 6729, "ctxt": 0 }, "value": "func", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 6770, "end": 6773, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 6775, "end": 6778, "ctxt": 0 }, "value": "b", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 6729, "end": 6769, "ctxt": 0 }, "params": [ { "type": "TsTypeLiteral", "span": { "start": 6730, "end": 6748, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 6732, "end": 6739, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 6732, "end": 6733, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6733, "end": 6738, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6735, "end": 6738, "ctxt": 0 }, "kind": "any" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 6740, "end": 6746, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 6740, "end": 6741, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6741, "end": 6746, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6743, "end": 6746, "ctxt": 0 }, "kind": "any" } }, "typeParams": null } ] }, { "type": "TsTypeLiteral", "span": { "start": 6750, "end": 6768, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 6752, "end": 6759, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 6752, "end": 6753, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6753, "end": 6758, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6755, "end": 6758, "ctxt": 0 }, "kind": "any" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 6760, "end": 6766, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 6760, "end": 6761, "ctxt": 0 }, "value": "c", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6761, "end": 6766, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6763, "end": 6766, "ctxt": 0 }, "kind": "any" } }, "typeParams": null } ] } ] } } }, { "type": "ExpressionStatement", "span": { "start": 6785, "end": 6840, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 6785, "end": 6839, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 6785, "end": 6789, "ctxt": 0 }, "value": "func", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 6830, "end": 6833, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 6835, "end": 6838, "ctxt": 0 }, "value": "c", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 6789, "end": 6829, "ctxt": 0 }, "params": [ { "type": "TsTypeLiteral", "span": { "start": 6790, "end": 6808, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 6792, "end": 6799, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 6792, "end": 6793, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6793, "end": 6798, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6795, "end": 6798, "ctxt": 0 }, "kind": "any" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 6800, "end": 6806, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 6800, "end": 6801, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6801, "end": 6806, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6803, "end": 6806, "ctxt": 0 }, "kind": "any" } }, "typeParams": null } ] }, { "type": "TsTypeLiteral", "span": { "start": 6810, "end": 6828, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 6812, "end": 6819, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 6812, "end": 6813, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6813, "end": 6818, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6815, "end": 6818, "ctxt": 0 }, "kind": "any" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 6820, "end": 6826, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 6820, "end": 6821, "ctxt": 0 }, "value": "c", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6821, "end": 6826, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6823, "end": 6826, "ctxt": 0 }, "kind": "any" } }, "typeParams": null } ] } ] } } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 6853, "end": 6856, "ctxt": 0 }, "value": "f71", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 6857, "end": 6899, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6857, "end": 6899, "ctxt": 0 }, "value": "func", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6861, "end": 6899, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 6863, "end": 6899, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 6870, "end": 6874, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6871, "end": 6874, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 6873, "end": 6874, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6873, "end": 6874, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 6876, "end": 6880, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6877, "end": 6880, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 6879, "end": 6880, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6879, "end": 6880, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 6863, "end": 6869, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 6864, "end": 6865, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 6864, "end": 6865, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 6867, "end": 6868, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 6867, "end": 6868, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6882, "end": 6899, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 6885, "end": 6899, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6885, "end": 6892, "ctxt": 0 }, "value": "Partial", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 6892, "end": 6899, "ctxt": 0 }, "params": [ { "type": "TsIntersectionType", "span": { "start": 6893, "end": 6898, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 6893, "end": 6894, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6893, "end": 6894, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 6897, "end": 6898, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6897, "end": 6898, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } ] } ] } } } } } } } ], "decorators": [], "span": { "start": 6844, "end": 7054, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 6901, "end": 7054, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 6907, "end": 6955, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 6911, "end": 6954, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 6911, "end": 6912, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 6915, "end": 6954, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 6915, "end": 6919, "ctxt": 0 }, "value": "func", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 6920, "end": 6940, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 6922, "end": 6923, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 6925, "end": 6926, "ctxt": 0 }, "value": 1.0 } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 6928, "end": 6929, "ctxt": 0 }, "value": "b", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 6931, "end": 6938, "ctxt": 0 }, "value": "hello", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } }, { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 6942, "end": 6953, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 6944, "end": 6945, "ctxt": 0 }, "value": "c", "optional": false }, "value": { "type": "BooleanLiteral", "span": { "start": 6947, "end": 6951, "ctxt": 0 }, "value": true } } ] } } ], "typeArguments": null }, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 6960, "end": 6964, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 6960, "end": 6963, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6960, "end": 6961, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6962, "end": 6963, "ctxt": 0 }, "value": "a", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 6992, "end": 6996, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 6992, "end": 6995, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6992, "end": 6993, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6994, "end": 6995, "ctxt": 0 }, "value": "b", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 7024, "end": 7028, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 7024, "end": 7027, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7024, "end": 7025, "ctxt": 0 }, "value": "x", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7026, "end": 7027, "ctxt": 0 }, "value": "c", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 7065, "end": 7068, "ctxt": 0 }, "value": "f72", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 7069, "end": 7142, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 7069, "end": 7142, "ctxt": 0 }, "value": "func", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7073, "end": 7142, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 7075, "end": 7142, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 7111, "end": 7115, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7112, "end": 7115, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 7114, "end": 7115, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7114, "end": 7115, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 7117, "end": 7121, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7118, "end": 7121, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 7120, "end": 7121, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7120, "end": 7121, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 7123, "end": 7127, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7124, "end": 7127, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 7126, "end": 7127, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7126, "end": 7127, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 7075, "end": 7110, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 7076, "end": 7077, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 7076, "end": 7077, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 7079, "end": 7080, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 7079, "end": 7080, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 7082, "end": 7109, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 7082, "end": 7083, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsUnionType", "span": { "start": 7092, "end": 7109, "ctxt": 0 }, "types": [ { "type": "TsTypeOperator", "span": { "start": 7092, "end": 7099, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 7098, "end": 7099, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7098, "end": 7099, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, { "type": "TsTypeOperator", "span": { "start": 7102, "end": 7109, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 7108, "end": 7109, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7108, "end": 7109, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } ] }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7129, "end": 7142, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 7132, "end": 7142, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsParenthesizedType", "span": { "start": 7132, "end": 7139, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 7133, "end": 7138, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 7133, "end": 7134, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7133, "end": 7134, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 7137, "end": 7138, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7137, "end": 7138, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } ] } }, "indexType": { "type": "TsTypeReference", "span": { "start": 7140, "end": 7141, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7140, "end": 7141, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } } } } ], "decorators": [], "span": { "start": 7056, "end": 7355, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 7144, "end": 7355, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 7150, "end": 7203, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 7154, "end": 7202, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 7154, "end": 7155, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 7158, "end": 7202, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 7158, "end": 7162, "ctxt": 0 }, "value": "func", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 7163, "end": 7183, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7165, "end": 7166, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 7168, "end": 7169, "ctxt": 0 }, "value": 1.0 } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7171, "end": 7172, "ctxt": 0 }, "value": "b", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 7174, "end": 7181, "ctxt": 0 }, "value": "hello", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } }, { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 7185, "end": 7196, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7187, "end": 7188, "ctxt": 0 }, "value": "c", "optional": false }, "value": { "type": "BooleanLiteral", "span": { "start": 7190, "end": 7194, "ctxt": 0 }, "value": true } } ] } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 7198, "end": 7201, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 7219, "end": 7272, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 7223, "end": 7271, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 7223, "end": 7224, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 7227, "end": 7271, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 7227, "end": 7231, "ctxt": 0 }, "value": "func", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 7232, "end": 7252, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7234, "end": 7235, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 7237, "end": 7238, "ctxt": 0 }, "value": 1.0 } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7240, "end": 7241, "ctxt": 0 }, "value": "b", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 7243, "end": 7250, "ctxt": 0 }, "value": "hello", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } }, { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 7254, "end": 7265, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7256, "end": 7257, "ctxt": 0 }, "value": "c", "optional": false }, "value": { "type": "BooleanLiteral", "span": { "start": 7259, "end": 7263, "ctxt": 0 }, "value": true } } ] } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 7267, "end": 7270, "ctxt": 0 }, "value": "b", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 7288, "end": 7341, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 7292, "end": 7340, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 7292, "end": 7293, "ctxt": 0 }, "value": "c", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 7296, "end": 7340, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 7296, "end": 7300, "ctxt": 0 }, "value": "func", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 7301, "end": 7321, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7303, "end": 7304, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 7306, "end": 7307, "ctxt": 0 }, "value": 1.0 } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7309, "end": 7310, "ctxt": 0 }, "value": "b", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 7312, "end": 7319, "ctxt": 0 }, "value": "hello", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } }, { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 7323, "end": 7334, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7325, "end": 7326, "ctxt": 0 }, "value": "c", "optional": false }, "value": { "type": "BooleanLiteral", "span": { "start": 7328, "end": 7332, "ctxt": 0 }, "value": true } } ] } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 7336, "end": 7339, "ctxt": 0 }, "value": "c", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 7366, "end": 7369, "ctxt": 0 }, "value": "f73", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 7370, "end": 7439, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 7370, "end": 7439, "ctxt": 0 }, "value": "func", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7374, "end": 7439, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 7376, "end": 7439, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 7408, "end": 7412, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7409, "end": 7412, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 7411, "end": 7412, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7411, "end": 7412, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 7414, "end": 7418, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7415, "end": 7418, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 7417, "end": 7418, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7417, "end": 7418, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 7420, "end": 7424, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7421, "end": 7424, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 7423, "end": 7424, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7423, "end": 7424, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 7376, "end": 7407, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 7377, "end": 7378, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 7377, "end": 7378, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 7380, "end": 7381, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 7380, "end": 7381, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 7383, "end": 7406, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 7383, "end": 7384, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 7393, "end": 7406, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsParenthesizedType", "span": { "start": 7399, "end": 7406, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 7400, "end": 7405, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 7400, "end": 7401, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7400, "end": 7401, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 7404, "end": 7405, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7404, "end": 7405, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } ] } } }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7426, "end": 7439, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 7429, "end": 7439, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsParenthesizedType", "span": { "start": 7429, "end": 7436, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 7430, "end": 7435, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 7430, "end": 7431, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7430, "end": 7431, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 7434, "end": 7435, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7434, "end": 7435, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } ] } }, "indexType": { "type": "TsTypeReference", "span": { "start": 7437, "end": 7438, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7437, "end": 7438, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } } } } ], "decorators": [], "span": { "start": 7357, "end": 7652, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 7441, "end": 7652, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 7447, "end": 7500, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 7451, "end": 7499, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 7451, "end": 7452, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 7455, "end": 7499, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 7455, "end": 7459, "ctxt": 0 }, "value": "func", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 7460, "end": 7480, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7462, "end": 7463, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 7465, "end": 7466, "ctxt": 0 }, "value": 1.0 } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7468, "end": 7469, "ctxt": 0 }, "value": "b", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 7471, "end": 7478, "ctxt": 0 }, "value": "hello", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } }, { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 7482, "end": 7493, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7484, "end": 7485, "ctxt": 0 }, "value": "c", "optional": false }, "value": { "type": "BooleanLiteral", "span": { "start": 7487, "end": 7491, "ctxt": 0 }, "value": true } } ] } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 7495, "end": 7498, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 7516, "end": 7569, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 7520, "end": 7568, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 7520, "end": 7521, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 7524, "end": 7568, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 7524, "end": 7528, "ctxt": 0 }, "value": "func", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 7529, "end": 7549, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7531, "end": 7532, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 7534, "end": 7535, "ctxt": 0 }, "value": 1.0 } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7537, "end": 7538, "ctxt": 0 }, "value": "b", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 7540, "end": 7547, "ctxt": 0 }, "value": "hello", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } }, { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 7551, "end": 7562, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7553, "end": 7554, "ctxt": 0 }, "value": "c", "optional": false }, "value": { "type": "BooleanLiteral", "span": { "start": 7556, "end": 7560, "ctxt": 0 }, "value": true } } ] } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 7564, "end": 7567, "ctxt": 0 }, "value": "b", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 7585, "end": 7638, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 7589, "end": 7637, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 7589, "end": 7590, "ctxt": 0 }, "value": "c", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 7593, "end": 7637, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 7593, "end": 7597, "ctxt": 0 }, "value": "func", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 7598, "end": 7618, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7600, "end": 7601, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 7603, "end": 7604, "ctxt": 0 }, "value": 1.0 } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7606, "end": 7607, "ctxt": 0 }, "value": "b", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 7609, "end": 7616, "ctxt": 0 }, "value": "hello", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } }, { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 7620, "end": 7631, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7622, "end": 7623, "ctxt": 0 }, "value": "c", "optional": false }, "value": { "type": "BooleanLiteral", "span": { "start": 7625, "end": 7629, "ctxt": 0 }, "value": true } } ] } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 7633, "end": 7636, "ctxt": 0 }, "value": "c", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 7663, "end": 7666, "ctxt": 0 }, "value": "f74", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 7667, "end": 7736, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 7667, "end": 7736, "ctxt": 0 }, "value": "func", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7671, "end": 7736, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 7673, "end": 7736, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 7705, "end": 7709, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7706, "end": 7709, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 7708, "end": 7709, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7708, "end": 7709, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 7711, "end": 7715, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7712, "end": 7715, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 7714, "end": 7715, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7714, "end": 7715, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 7717, "end": 7721, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7718, "end": 7721, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 7720, "end": 7721, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7720, "end": 7721, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 7673, "end": 7704, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 7674, "end": 7675, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 7674, "end": 7675, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 7677, "end": 7678, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 7677, "end": 7678, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 7680, "end": 7703, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 7680, "end": 7681, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 7690, "end": 7703, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsParenthesizedType", "span": { "start": 7696, "end": 7703, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 7697, "end": 7702, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 7697, "end": 7698, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7697, "end": 7698, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 7701, "end": 7702, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7701, "end": 7702, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } ] } } }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7723, "end": 7736, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 7726, "end": 7736, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsParenthesizedType", "span": { "start": 7726, "end": 7733, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 7727, "end": 7732, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 7727, "end": 7728, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7727, "end": 7728, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 7731, "end": 7732, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7731, "end": 7732, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } ] } }, "indexType": { "type": "TsTypeReference", "span": { "start": 7734, "end": 7735, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7734, "end": 7735, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } } } } ], "decorators": [], "span": { "start": 7654, "end": 7901, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 7738, "end": 7901, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 7744, "end": 7803, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 7748, "end": 7802, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 7748, "end": 7749, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 7752, "end": 7802, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 7752, "end": 7756, "ctxt": 0 }, "value": "func", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 7757, "end": 7777, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7759, "end": 7760, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 7762, "end": 7763, "ctxt": 0 }, "value": 1.0 } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7765, "end": 7766, "ctxt": 0 }, "value": "b", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 7768, "end": 7775, "ctxt": 0 }, "value": "hello", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } }, { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 7779, "end": 7796, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7781, "end": 7782, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 7784, "end": 7785, "ctxt": 0 }, "value": 2.0 } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7787, "end": 7788, "ctxt": 0 }, "value": "b", "optional": false }, "value": { "type": "BooleanLiteral", "span": { "start": 7790, "end": 7794, "ctxt": 0 }, "value": true } } ] } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 7798, "end": 7801, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 7819, "end": 7878, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 7823, "end": 7877, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 7823, "end": 7824, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 7827, "end": 7877, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 7827, "end": 7831, "ctxt": 0 }, "value": "func", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 7832, "end": 7852, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7834, "end": 7835, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 7837, "end": 7838, "ctxt": 0 }, "value": 1.0 } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7840, "end": 7841, "ctxt": 0 }, "value": "b", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 7843, "end": 7850, "ctxt": 0 }, "value": "hello", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } }, { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 7854, "end": 7871, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7856, "end": 7857, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 7859, "end": 7860, "ctxt": 0 }, "value": 2.0 } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 7862, "end": 7863, "ctxt": 0 }, "value": "b", "optional": false }, "value": { "type": "BooleanLiteral", "span": { "start": 7865, "end": 7869, "ctxt": 0 }, "value": true } } ] } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 7873, "end": 7876, "ctxt": 0 }, "value": "b", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 7912, "end": 7915, "ctxt": 0 }, "value": "f80", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 7945, "end": 7951, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 7945, "end": 7951, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7948, "end": 7951, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 7950, "end": 7951, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7950, "end": 7951, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 7903, "end": 8198, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 7953, "end": 8198, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 7959, "end": 7974, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 7963, "end": 7973, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 7963, "end": 7965, "ctxt": 0 }, "value": "a1", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 7968, "end": 7973, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7968, "end": 7971, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7972, "end": 7973, "ctxt": 0 }, "value": "a", "optional": false } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 7994, "end": 8012, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 7998, "end": 8011, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 7998, "end": 8000, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 8003, "end": 8011, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8003, "end": 8006, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 8006, "end": 8011, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 8007, "end": 8010, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 8032, "end": 8060, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 8036, "end": 8059, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 8036, "end": 8038, "ctxt": 0 }, "value": "a3", "optional": false, "typeAnnotation": null }, "init": { "type": "TsAsExpression", "span": { "start": 8041, "end": 8059, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 8041, "end": 8049, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8041, "end": 8044, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 8044, "end": 8049, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 8045, "end": 8048, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 8053, "end": 8059, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 8053, "end": 8054, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8053, "end": 8054, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsLiteralType", "span": { "start": 8055, "end": 8058, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8055, "end": 8058, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 8076, "end": 8093, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 8080, "end": 8092, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 8080, "end": 8082, "ctxt": 0 }, "value": "x1", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 8085, "end": 8092, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 8085, "end": 8090, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8085, "end": 8088, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Identifier", "span": { "start": 8089, "end": 8090, "ctxt": 0 }, "value": "a", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 8091, "end": 8092, "ctxt": 0 }, "value": "x", "optional": false } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 8106, "end": 8129, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 8110, "end": 8128, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 8110, "end": 8112, "ctxt": 0 }, "value": "x2", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 8115, "end": 8128, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 8115, "end": 8123, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8115, "end": 8118, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 8118, "end": 8123, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 8119, "end": 8122, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "property": { "type": "Computed", "span": { "start": 8123, "end": 8128, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 8124, "end": 8127, "ctxt": 0 }, "value": "x", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 8142, "end": 8180, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 8146, "end": 8179, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 8146, "end": 8148, "ctxt": 0 }, "value": "x3", "optional": false, "typeAnnotation": null }, "init": { "type": "TsAsExpression", "span": { "start": 8151, "end": 8179, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 8151, "end": 8164, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 8151, "end": 8159, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8151, "end": 8154, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 8154, "end": 8159, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 8155, "end": 8158, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "property": { "type": "Computed", "span": { "start": 8159, "end": 8164, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 8160, "end": 8163, "ctxt": 0 }, "value": "x", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 8168, "end": 8179, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsIndexedAccessType", "span": { "start": 8168, "end": 8174, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 8168, "end": 8169, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8168, "end": 8169, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsLiteralType", "span": { "start": 8170, "end": 8173, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8170, "end": 8173, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "indexType": { "type": "TsLiteralType", "span": { "start": 8175, "end": 8178, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8175, "end": 8178, "ctxt": 0 }, "value": "x", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 7915, "end": 7944, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 7916, "end": 7943, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 7916, "end": 7917, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeLiteral", "span": { "start": 7926, "end": 7943, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 7928, "end": 7941, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 7928, "end": 7929, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7929, "end": 7941, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 7931, "end": 7941, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 7933, "end": 7939, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 7933, "end": 7934, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7934, "end": 7939, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 7936, "end": 7939, "ctxt": 0 }, "kind": "any" } }, "typeParams": null } ] } }, "typeParams": null } ] }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 8209, "end": 8212, "ctxt": 0 }, "value": "f81", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 8242, "end": 8248, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 8242, "end": 8248, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8245, "end": 8248, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 8247, "end": 8248, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8247, "end": 8248, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 8200, "end": 8294, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 8250, "end": 8294, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 8256, "end": 8292, "ctxt": 0 }, "argument": { "type": "TsAsExpression", "span": { "start": 8263, "end": 8291, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 8263, "end": 8276, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 8263, "end": 8271, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8263, "end": 8266, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 8266, "end": 8271, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 8267, "end": 8270, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "property": { "type": "Computed", "span": { "start": 8271, "end": 8276, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 8272, "end": 8275, "ctxt": 0 }, "value": "x", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 8280, "end": 8291, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsIndexedAccessType", "span": { "start": 8280, "end": 8286, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 8280, "end": 8281, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8280, "end": 8281, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsLiteralType", "span": { "start": 8282, "end": 8285, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8282, "end": 8285, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "indexType": { "type": "TsLiteralType", "span": { "start": 8287, "end": 8290, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8287, "end": 8290, "ctxt": 0 }, "value": "x", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 8212, "end": 8241, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 8213, "end": 8240, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 8213, "end": 8214, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeLiteral", "span": { "start": 8223, "end": 8240, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 8225, "end": 8238, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 8225, "end": 8226, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8226, "end": 8238, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 8228, "end": 8238, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 8230, "end": 8236, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 8230, "end": 8231, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8231, "end": 8236, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 8233, "end": 8236, "ctxt": 0 }, "kind": "any" } }, "typeParams": null } ] } }, "typeParams": null } ] }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 8305, "end": 8308, "ctxt": 0 }, "value": "f82", "optional": false }, "declare": false, "params": [], "decorators": [], "span": { "start": 8296, "end": 8413, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 8311, "end": 8413, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 8317, "end": 8353, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 8321, "end": 8352, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 8321, "end": 8323, "ctxt": 0 }, "value": "x1", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 8326, "end": 8352, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 8326, "end": 8329, "ctxt": 0 }, "value": "f81", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 8330, "end": 8351, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 8332, "end": 8333, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "ObjectExpression", "span": { "start": 8335, "end": 8349, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 8337, "end": 8338, "ctxt": 0 }, "value": "x", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 8340, "end": 8347, "ctxt": 0 }, "value": "hello", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } } ] } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 8369, "end": 8400, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 8373, "end": 8399, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 8373, "end": 8375, "ctxt": 0 }, "value": "x2", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 8378, "end": 8399, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 8378, "end": 8381, "ctxt": 0 }, "value": "f81", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 8382, "end": 8398, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 8384, "end": 8385, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "ObjectExpression", "span": { "start": 8387, "end": 8396, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 8389, "end": 8390, "ctxt": 0 }, "value": "x", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 8392, "end": 8394, "ctxt": 0 }, "value": 42.0 } } ] } } ] } } ], "typeArguments": null }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 8424, "end": 8427, "ctxt": 0 }, "value": "f83", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 8486, "end": 8492, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 8486, "end": 8492, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8489, "end": 8492, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 8491, "end": 8492, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8491, "end": 8492, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 8494, "end": 8500, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 8494, "end": 8500, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8497, "end": 8500, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 8499, "end": 8500, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8499, "end": 8500, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 8415, "end": 8544, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 8502, "end": 8544, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 8508, "end": 8542, "ctxt": 0 }, "argument": { "type": "TsAsExpression", "span": { "start": 8515, "end": 8541, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 8515, "end": 8528, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 8515, "end": 8523, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8515, "end": 8518, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 8518, "end": 8523, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 8519, "end": 8522, "ctxt": 0 }, "value": "key", "optional": false } } }, "property": { "type": "Computed", "span": { "start": 8523, "end": 8528, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 8524, "end": 8527, "ctxt": 0 }, "value": "x", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 8532, "end": 8541, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsIndexedAccessType", "span": { "start": 8532, "end": 8536, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 8532, "end": 8533, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8532, "end": 8533, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 8534, "end": 8535, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8534, "end": 8535, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } }, "indexType": { "type": "TsLiteralType", "span": { "start": 8537, "end": 8540, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8537, "end": 8540, "ctxt": 0 }, "value": "x", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 8427, "end": 8485, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 8428, "end": 8465, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 8428, "end": 8429, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeLiteral", "span": { "start": 8438, "end": 8465, "ctxt": 0 }, "members": [ { "type": "TsIndexSignature", "params": [ { "type": "Identifier", "span": { "start": 8441, "end": 8450, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8442, "end": 8450, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 8444, "end": 8450, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8451, "end": 8463, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 8453, "end": 8463, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 8455, "end": 8461, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 8455, "end": 8456, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8456, "end": 8461, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 8458, "end": 8461, "ctxt": 0 }, "kind": "any" } }, "typeParams": null } ] } }, "readonly": false, "static": false, "span": { "start": 8440, "end": 8463, "ctxt": 0 } } ] }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 8467, "end": 8484, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 8467, "end": 8468, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 8477, "end": 8484, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 8483, "end": 8484, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8483, "end": 8484, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 8555, "end": 8558, "ctxt": 0 }, "value": "f84", "optional": false }, "declare": false, "params": [], "decorators": [], "span": { "start": 8546, "end": 8681, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 8561, "end": 8681, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 8567, "end": 8612, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 8571, "end": 8611, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 8571, "end": 8573, "ctxt": 0 }, "value": "x1", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 8576, "end": 8611, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 8576, "end": 8579, "ctxt": 0 }, "value": "f83", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 8580, "end": 8603, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 8582, "end": 8585, "ctxt": 0 }, "value": "foo", "optional": false }, "value": { "type": "ObjectExpression", "span": { "start": 8587, "end": 8601, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 8589, "end": 8590, "ctxt": 0 }, "value": "x", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 8592, "end": 8599, "ctxt": 0 }, "value": "hello", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } } ] } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 8605, "end": 8610, "ctxt": 0 }, "value": "foo", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 8628, "end": 8668, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 8632, "end": 8667, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 8632, "end": 8634, "ctxt": 0 }, "value": "x2", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 8637, "end": 8667, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 8637, "end": 8640, "ctxt": 0 }, "value": "f83", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 8641, "end": 8659, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 8643, "end": 8646, "ctxt": 0 }, "value": "bar", "optional": false }, "value": { "type": "ObjectExpression", "span": { "start": 8648, "end": 8657, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 8650, "end": 8651, "ctxt": 0 }, "value": "x", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 8653, "end": 8655, "ctxt": 0 }, "value": 42.0 } } ] } } ] } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 8661, "end": 8666, "ctxt": 0 }, "value": "bar", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 8689, "end": 8691, "ctxt": 0 }, "value": "C1", "optional": false }, "declare": false, "span": { "start": 8683, "end": 9172, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 8698, "end": 8708, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 8698, "end": 8699, "ctxt": 0 }, "value": "x", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8699, "end": 8707, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 8701, "end": 8707, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassMethod", "span": { "start": 8713, "end": 8780, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 8713, "end": 8716, "ctxt": 0 }, "value": "get", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 8739, "end": 8745, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 8739, "end": 8745, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8742, "end": 8745, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 8744, "end": 8745, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8744, "end": 8745, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 8713, "end": 8780, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 8747, "end": 8780, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 8757, "end": 8774, "ctxt": 0 }, "argument": { "type": "MemberExpression", "span": { "start": 8764, "end": 8773, "ctxt": 0 }, "object": { "type": "ThisExpression", "span": { "start": 8764, "end": 8768, "ctxt": 0 } }, "property": { "type": "Computed", "span": { "start": 8768, "end": 8773, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 8769, "end": 8772, "ctxt": 0 }, "value": "key", "optional": false } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 8716, "end": 8738, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 8717, "end": 8737, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 8717, "end": 8718, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 8727, "end": 8737, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsThisType", "span": { "start": 8733, "end": 8737, "ctxt": 0 } } }, "default": null } ] }, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassMethod", "span": { "start": 8785, "end": 8869, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 8785, "end": 8788, "ctxt": 0 }, "value": "set", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 8811, "end": 8817, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 8811, "end": 8817, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8814, "end": 8817, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 8816, "end": 8817, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8816, "end": 8817, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 8819, "end": 8833, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 8819, "end": 8833, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8824, "end": 8833, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 8826, "end": 8833, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsThisType", "span": { "start": 8826, "end": 8830, "ctxt": 0 } }, "indexType": { "type": "TsTypeReference", "span": { "start": 8831, "end": 8832, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8831, "end": 8832, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 8785, "end": 8869, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 8835, "end": 8869, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 8845, "end": 8863, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 8845, "end": 8862, "ctxt": 0 }, "operator": "=", "left": { "type": "MemberExpression", "span": { "start": 8845, "end": 8854, "ctxt": 0 }, "object": { "type": "ThisExpression", "span": { "start": 8845, "end": 8849, "ctxt": 0 } }, "property": { "type": "Computed", "span": { "start": 8849, "end": 8854, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 8850, "end": 8853, "ctxt": 0 }, "value": "key", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 8857, "end": 8862, "ctxt": 0 }, "value": "value", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 8788, "end": 8810, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 8789, "end": 8809, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 8789, "end": 8790, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 8799, "end": 8809, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsThisType", "span": { "start": 8805, "end": 8809, "ctxt": 0 } } }, "default": null } ] }, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassMethod", "span": { "start": 8874, "end": 9170, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 8874, "end": 8877, "ctxt": 0 }, "value": "foo", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 8874, "end": 9170, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 8880, "end": 9170, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 8890, "end": 8906, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 8894, "end": 8905, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 8894, "end": 8896, "ctxt": 0 }, "value": "x1", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 8899, "end": 8905, "ctxt": 0 }, "object": { "type": "ThisExpression", "span": { "start": 8899, "end": 8903, "ctxt": 0 } }, "property": { "type": "Identifier", "span": { "start": 8904, "end": 8905, "ctxt": 0 }, "value": "x", "optional": false } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 8926, "end": 8945, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 8930, "end": 8944, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 8930, "end": 8932, "ctxt": 0 }, "value": "x2", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 8935, "end": 8944, "ctxt": 0 }, "object": { "type": "ThisExpression", "span": { "start": 8935, "end": 8939, "ctxt": 0 } }, "property": { "type": "Computed", "span": { "start": 8939, "end": 8944, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 8940, "end": 8943, "ctxt": 0 }, "value": "x", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 8965, "end": 8988, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 8969, "end": 8987, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 8969, "end": 8971, "ctxt": 0 }, "value": "x3", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 8974, "end": 8987, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 8974, "end": 8982, "ctxt": 0 }, "object": { "type": "ThisExpression", "span": { "start": 8974, "end": 8978, "ctxt": 0 } }, "property": { "type": "Identifier", "span": { "start": 8979, "end": 8982, "ctxt": 0 }, "value": "get", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 8983, "end": 8986, "ctxt": 0 }, "value": "x", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 9011, "end": 9043, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 9015, "end": 9042, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 9015, "end": 9017, "ctxt": 0 }, "value": "x4", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 9020, "end": 9042, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 9020, "end": 9031, "ctxt": 0 }, "value": "getProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ThisExpression", "span": { "start": 9032, "end": 9036, "ctxt": 0 } } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 9038, "end": 9041, "ctxt": 0 }, "value": "x", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 9065, "end": 9077, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 9065, "end": 9076, "ctxt": 0 }, "operator": "=", "left": { "type": "MemberExpression", "span": { "start": 9065, "end": 9071, "ctxt": 0 }, "object": { "type": "ThisExpression", "span": { "start": 9065, "end": 9069, "ctxt": 0 } }, "property": { "type": "Identifier", "span": { "start": 9070, "end": 9071, "ctxt": 0 }, "value": "x", "optional": false } }, "right": { "type": "NumericLiteral", "span": { "start": 9074, "end": 9076, "ctxt": 0 }, "value": 42.0 } } }, { "type": "ExpressionStatement", "span": { "start": 9086, "end": 9101, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 9086, "end": 9100, "ctxt": 0 }, "operator": "=", "left": { "type": "MemberExpression", "span": { "start": 9086, "end": 9095, "ctxt": 0 }, "object": { "type": "ThisExpression", "span": { "start": 9086, "end": 9090, "ctxt": 0 } }, "property": { "type": "Computed", "span": { "start": 9090, "end": 9095, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 9091, "end": 9094, "ctxt": 0 }, "value": "x", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "right": { "type": "NumericLiteral", "span": { "start": 9098, "end": 9100, "ctxt": 0 }, "value": 42.0 } } }, { "type": "ExpressionStatement", "span": { "start": 9110, "end": 9128, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 9110, "end": 9127, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 9110, "end": 9118, "ctxt": 0 }, "object": { "type": "ThisExpression", "span": { "start": 9110, "end": 9114, "ctxt": 0 } }, "property": { "type": "Identifier", "span": { "start": 9115, "end": 9118, "ctxt": 0 }, "value": "set", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 9119, "end": 9122, "ctxt": 0 }, "value": "x", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 9124, "end": 9126, "ctxt": 0 }, "value": 42.0 } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 9137, "end": 9164, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 9137, "end": 9163, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 9137, "end": 9148, "ctxt": 0 }, "value": "setProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ThisExpression", "span": { "start": 9149, "end": 9153, "ctxt": 0 } } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 9155, "end": 9158, "ctxt": 0 }, "value": "x", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 9160, "end": 9162, "ctxt": 0 }, "value": 42.0 } } ], "typeArguments": null } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "TsTypeAliasDeclaration", "span": { "start": 9174, "end": 9218, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 9179, "end": 9181, "ctxt": 0 }, "value": "S2", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 9184, "end": 9217, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 9190, "end": 9200, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 9190, "end": 9191, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9191, "end": 9199, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 9193, "end": 9199, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 9205, "end": 9215, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 9205, "end": 9206, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9206, "end": 9214, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 9208, "end": 9214, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 9229, "end": 9232, "ctxt": 0 }, "value": "f90", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 9267, "end": 9283, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 9267, "end": 9283, "ctxt": 0 }, "value": "x1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9269, "end": 9283, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 9271, "end": 9283, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 9271, "end": 9273, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9271, "end": 9273, "ctxt": 0 }, "value": "S2", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeOperator", "span": { "start": 9274, "end": 9282, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 9280, "end": 9282, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9280, "end": 9282, "ctxt": 0 }, "value": "S2", "optional": false }, "typeParams": null } } } } } }, { "type": "Parameter", "span": { "start": 9285, "end": 9300, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 9285, "end": 9300, "ctxt": 0 }, "value": "x2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9287, "end": 9300, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 9289, "end": 9300, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 9289, "end": 9290, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9289, "end": 9290, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeOperator", "span": { "start": 9291, "end": 9299, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 9297, "end": 9299, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9297, "end": 9299, "ctxt": 0 }, "value": "S2", "optional": false }, "typeParams": null } } } } } }, { "type": "Parameter", "span": { "start": 9302, "end": 9311, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 9302, "end": 9311, "ctxt": 0 }, "value": "x3", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9304, "end": 9311, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 9306, "end": 9311, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 9306, "end": 9308, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9306, "end": 9308, "ctxt": 0 }, "value": "S2", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 9309, "end": 9310, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9309, "end": 9310, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 9220, "end": 9439, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 9313, "end": 9439, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 9319, "end": 9327, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 9319, "end": 9326, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 9319, "end": 9321, "ctxt": 0 }, "value": "x1", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 9324, "end": 9326, "ctxt": 0 }, "value": "x2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 9332, "end": 9340, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 9332, "end": 9339, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 9332, "end": 9334, "ctxt": 0 }, "value": "x1", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 9337, "end": 9339, "ctxt": 0 }, "value": "x3", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 9345, "end": 9353, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 9345, "end": 9352, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 9345, "end": 9347, "ctxt": 0 }, "value": "x2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 9350, "end": 9352, "ctxt": 0 }, "value": "x1", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 9358, "end": 9366, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 9358, "end": 9365, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 9358, "end": 9360, "ctxt": 0 }, "value": "x2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 9363, "end": 9365, "ctxt": 0 }, "value": "x3", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 9371, "end": 9379, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 9371, "end": 9378, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 9371, "end": 9373, "ctxt": 0 }, "value": "x3", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 9376, "end": 9378, "ctxt": 0 }, "value": "x1", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 9384, "end": 9392, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 9384, "end": 9391, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 9384, "end": 9386, "ctxt": 0 }, "value": "x3", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 9389, "end": 9391, "ctxt": 0 }, "value": "x2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 9397, "end": 9407, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 9397, "end": 9406, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 9397, "end": 9399, "ctxt": 0 }, "value": "x1", "optional": false }, "property": { "type": "Identifier", "span": { "start": 9400, "end": 9406, "ctxt": 0 }, "value": "length", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 9412, "end": 9422, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 9412, "end": 9421, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 9412, "end": 9414, "ctxt": 0 }, "value": "x2", "optional": false }, "property": { "type": "Identifier", "span": { "start": 9415, "end": 9421, "ctxt": 0 }, "value": "length", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 9427, "end": 9437, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 9427, "end": 9436, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 9427, "end": 9429, "ctxt": 0 }, "value": "x3", "optional": false }, "property": { "type": "Identifier", "span": { "start": 9430, "end": 9436, "ctxt": 0 }, "value": "length", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 9232, "end": 9266, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 9233, "end": 9245, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 9233, "end": 9234, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 9243, "end": 9245, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9243, "end": 9245, "ctxt": 0 }, "value": "S2", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 9247, "end": 9265, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 9247, "end": 9248, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 9257, "end": 9265, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 9263, "end": 9265, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9263, "end": 9265, "ctxt": 0 }, "value": "S2", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 9450, "end": 9453, "ctxt": 0 }, "value": "f91", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 9476, "end": 9480, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 9476, "end": 9480, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9477, "end": 9480, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 9479, "end": 9480, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9479, "end": 9480, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 9482, "end": 9495, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 9482, "end": 9495, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9483, "end": 9495, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 9485, "end": 9495, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 9485, "end": 9486, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9485, "end": 9486, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeOperator", "span": { "start": 9487, "end": 9494, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 9493, "end": 9494, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9493, "end": 9494, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } }, { "type": "Parameter", "span": { "start": 9497, "end": 9504, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 9497, "end": 9504, "ctxt": 0 }, "value": "z", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9498, "end": 9504, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 9500, "end": 9504, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 9500, "end": 9501, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9500, "end": 9501, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 9502, "end": 9503, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9502, "end": 9503, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 9441, "end": 9557, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 9506, "end": 9557, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 9512, "end": 9522, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 9516, "end": 9521, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 9516, "end": 9517, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9517, "end": 9521, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 9519, "end": 9521, "ctxt": 0 }, "members": [] } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 9527, "end": 9533, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 9527, "end": 9532, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 9527, "end": 9528, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 9531, "end": 9532, "ctxt": 0 }, "value": "x", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 9538, "end": 9544, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 9538, "end": 9543, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 9538, "end": 9539, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 9542, "end": 9543, "ctxt": 0 }, "value": "y", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 9549, "end": 9555, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 9549, "end": 9554, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 9549, "end": 9550, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 9553, "end": 9554, "ctxt": 0 }, "value": "z", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 9453, "end": 9475, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 9454, "end": 9455, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 9454, "end": 9455, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 9457, "end": 9474, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 9457, "end": 9458, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 9467, "end": 9474, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 9473, "end": 9474, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9473, "end": 9474, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 9568, "end": 9571, "ctxt": 0 }, "value": "f92", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 9594, "end": 9598, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 9594, "end": 9598, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9595, "end": 9598, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 9597, "end": 9598, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9597, "end": 9598, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 9600, "end": 9613, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 9600, "end": 9613, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9601, "end": 9613, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 9603, "end": 9613, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 9603, "end": 9604, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9603, "end": 9604, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeOperator", "span": { "start": 9605, "end": 9612, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 9611, "end": 9612, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9611, "end": 9612, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } }, { "type": "Parameter", "span": { "start": 9615, "end": 9622, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 9615, "end": 9622, "ctxt": 0 }, "value": "z", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9616, "end": 9622, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 9618, "end": 9622, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 9618, "end": 9619, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9618, "end": 9619, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 9620, "end": 9621, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9620, "end": 9621, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 9559, "end": 9694, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 9624, "end": 9694, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 9630, "end": 9659, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 9634, "end": 9658, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 9634, "end": 9635, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9635, "end": 9658, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 9637, "end": 9658, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 9637, "end": 9639, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 9642, "end": 9646, "ctxt": 0 }, "kind": "null" }, { "type": "TsKeywordType", "span": { "start": 9649, "end": 9658, "ctxt": 0 }, "kind": "undefined" } ] } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 9664, "end": 9670, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 9664, "end": 9669, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 9664, "end": 9665, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 9668, "end": 9669, "ctxt": 0 }, "value": "x", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 9675, "end": 9681, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 9675, "end": 9680, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 9675, "end": 9676, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 9679, "end": 9680, "ctxt": 0 }, "value": "y", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 9686, "end": 9692, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 9686, "end": 9691, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 9686, "end": 9687, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 9690, "end": 9691, "ctxt": 0 }, "value": "z", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 9571, "end": 9593, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 9572, "end": 9573, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 9572, "end": 9573, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 9575, "end": 9592, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 9575, "end": 9576, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 9585, "end": 9592, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 9591, "end": 9592, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9591, "end": 9592, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 9725, "end": 9729, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 9719, "end": 9898, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 9736, "end": 9805, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 9736, "end": 9739, "ctxt": 0 }, "value": "get", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 9762, "end": 9769, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 9762, "end": 9769, "ctxt": 0 }, "value": "prop", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9766, "end": 9769, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 9768, "end": 9769, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9768, "end": 9769, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 9736, "end": 9805, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 9771, "end": 9805, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 9781, "end": 9799, "ctxt": 0 }, "argument": { "type": "MemberExpression", "span": { "start": 9788, "end": 9798, "ctxt": 0 }, "object": { "type": "ThisExpression", "span": { "start": 9788, "end": 9792, "ctxt": 0 } }, "property": { "type": "Computed", "span": { "start": 9792, "end": 9798, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 9793, "end": 9797, "ctxt": 0 }, "value": "prop", "optional": false } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 9739, "end": 9761, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 9740, "end": 9760, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 9740, "end": 9741, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 9750, "end": 9760, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsThisType", "span": { "start": 9756, "end": 9760, "ctxt": 0 } } }, "default": null } ] }, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassMethod", "span": { "start": 9810, "end": 9896, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 9810, "end": 9813, "ctxt": 0 }, "value": "set", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 9836, "end": 9843, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 9836, "end": 9843, "ctxt": 0 }, "value": "prop", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9840, "end": 9843, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 9842, "end": 9843, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9842, "end": 9843, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 9845, "end": 9859, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 9845, "end": 9859, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9850, "end": 9859, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 9852, "end": 9859, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsThisType", "span": { "start": 9852, "end": 9856, "ctxt": 0 } }, "indexType": { "type": "TsTypeReference", "span": { "start": 9857, "end": 9858, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9857, "end": 9858, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 9810, "end": 9896, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 9861, "end": 9896, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 9871, "end": 9890, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 9871, "end": 9889, "ctxt": 0 }, "operator": "=", "left": { "type": "MemberExpression", "span": { "start": 9871, "end": 9881, "ctxt": 0 }, "object": { "type": "ThisExpression", "span": { "start": 9871, "end": 9875, "ctxt": 0 } }, "property": { "type": "Computed", "span": { "start": 9875, "end": 9881, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 9876, "end": 9880, "ctxt": 0 }, "value": "prop", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 9884, "end": 9889, "ctxt": 0 }, "value": "value", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 9813, "end": 9835, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 9814, "end": 9834, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 9814, "end": 9815, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 9824, "end": 9834, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsThisType", "span": { "start": 9830, "end": 9834, "ctxt": 0 } } }, "default": null } ] }, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 9906, "end": 9912, "ctxt": 0 }, "value": "Person", "optional": false }, "declare": false, "span": { "start": 9900, "end": 10094, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 9932, "end": 9946, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 9932, "end": 9937, "ctxt": 0 }, "value": "parts", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9937, "end": 9945, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 9939, "end": 9945, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "Constructor", "span": { "start": 9951, "end": 10036, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 9951, "end": 9962, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 9963, "end": 9976, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 9963, "end": 9976, "ctxt": 0 }, "value": "parts", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9968, "end": 9976, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 9970, "end": 9976, "ctxt": 0 }, "kind": "number" } } } } ], "body": { "type": "BlockStatement", "span": { "start": 9978, "end": 10036, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 9988, "end": 9996, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 9988, "end": 9995, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 9988, "end": 9993, "ctxt": 0 } }, "arguments": [], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 10005, "end": 10030, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 10005, "end": 10029, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 10005, "end": 10013, "ctxt": 0 }, "object": { "type": "ThisExpression", "span": { "start": 10005, "end": 10009, "ctxt": 0 } }, "property": { "type": "Identifier", "span": { "start": 10010, "end": 10013, "ctxt": 0 }, "value": "set", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 10014, "end": 10021, "ctxt": 0 }, "value": "parts", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 10023, "end": 10028, "ctxt": 0 }, "value": "parts", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false }, { "type": "ClassMethod", "span": { "start": 10041, "end": 10092, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 10041, "end": 10049, "ctxt": 0 }, "value": "getParts", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 10041, "end": 10092, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 10052, "end": 10092, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 10062, "end": 10086, "ctxt": 0 }, "argument": { "type": "CallExpression", "span": { "start": 10069, "end": 10086, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 10069, "end": 10077, "ctxt": 0 }, "object": { "type": "ThisExpression", "span": { "start": 10069, "end": 10073, "ctxt": 0 } }, "property": { "type": "Identifier", "span": { "start": 10074, "end": 10077, "ctxt": 0 }, "value": "get", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 10078, "end": 10085, "ctxt": 0 }, "value": "parts", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false } ], "superClass": { "type": "Identifier", "span": { "start": 9921, "end": 9925, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 10102, "end": 10113, "ctxt": 0 }, "value": "OtherPerson", "optional": false }, "declare": false, "span": { "start": 10096, "end": 10283, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 10120, "end": 10134, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 10120, "end": 10125, "ctxt": 0 }, "value": "parts", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10125, "end": 10133, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 10127, "end": 10133, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "Constructor", "span": { "start": 10139, "end": 10216, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 10139, "end": 10150, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 10151, "end": 10164, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 10151, "end": 10164, "ctxt": 0 }, "value": "parts", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10156, "end": 10164, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 10158, "end": 10164, "ctxt": 0 }, "kind": "number" } } } } ], "body": { "type": "BlockStatement", "span": { "start": 10166, "end": 10216, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 10176, "end": 10210, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 10176, "end": 10209, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 10176, "end": 10187, "ctxt": 0 }, "value": "setProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ThisExpression", "span": { "start": 10188, "end": 10192, "ctxt": 0 } } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 10194, "end": 10201, "ctxt": 0 }, "value": "parts", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 10203, "end": 10208, "ctxt": 0 }, "value": "parts", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false }, { "type": "ClassMethod", "span": { "start": 10221, "end": 10281, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 10221, "end": 10229, "ctxt": 0 }, "value": "getParts", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 10221, "end": 10281, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 10232, "end": 10281, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 10242, "end": 10275, "ctxt": 0 }, "argument": { "type": "CallExpression", "span": { "start": 10249, "end": 10275, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 10249, "end": 10260, "ctxt": 0 }, "value": "getProperty", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ThisExpression", "span": { "start": 10261, "end": 10265, "ctxt": 0 } } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 10267, "end": 10274, "ctxt": 0 }, "value": "parts", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 10325, "end": 10329, "ctxt": 0 }, "value": "path", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 10353, "end": 10359, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 10353, "end": 10359, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10356, "end": 10359, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 10358, "end": 10359, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10358, "end": 10359, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 10361, "end": 10369, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 10361, "end": 10369, "ctxt": 0 }, "value": "key1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10365, "end": 10369, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 10367, "end": 10369, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10367, "end": 10369, "ctxt": 0 }, "value": "K1", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 10316, "end": 10378, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 10329, "end": 10352, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 10330, "end": 10331, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 10330, "end": 10331, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 10333, "end": 10351, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 10333, "end": 10335, "ctxt": 0 }, "value": "K1", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 10344, "end": 10351, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 10350, "end": 10351, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10350, "end": 10351, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 10370, "end": 10377, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 10372, "end": 10377, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 10372, "end": 10373, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10372, "end": 10373, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 10374, "end": 10376, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10374, "end": 10376, "ctxt": 0 }, "value": "K1", "optional": false }, "typeParams": null } } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 10388, "end": 10392, "ctxt": 0 }, "value": "path", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 10440, "end": 10446, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 10440, "end": 10446, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10443, "end": 10446, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 10445, "end": 10446, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10445, "end": 10446, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 10448, "end": 10456, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 10448, "end": 10456, "ctxt": 0 }, "value": "key1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10452, "end": 10456, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 10454, "end": 10456, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10454, "end": 10456, "ctxt": 0 }, "value": "K1", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 10458, "end": 10466, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 10458, "end": 10466, "ctxt": 0 }, "value": "key2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10462, "end": 10466, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 10464, "end": 10466, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10464, "end": 10466, "ctxt": 0 }, "value": "K2", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 10379, "end": 10479, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 10392, "end": 10439, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 10393, "end": 10394, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 10393, "end": 10394, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 10396, "end": 10414, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 10396, "end": 10398, "ctxt": 0 }, "value": "K1", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 10407, "end": 10414, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 10413, "end": 10414, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10413, "end": 10414, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 10416, "end": 10438, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 10416, "end": 10418, "ctxt": 0 }, "value": "K2", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 10427, "end": 10438, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 10433, "end": 10438, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 10433, "end": 10434, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10433, "end": 10434, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 10435, "end": 10437, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10435, "end": 10437, "ctxt": 0 }, "value": "K1", "optional": false }, "typeParams": null } } }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 10467, "end": 10478, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 10469, "end": 10478, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsIndexedAccessType", "span": { "start": 10469, "end": 10474, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 10469, "end": 10470, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10469, "end": 10470, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 10471, "end": 10473, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10471, "end": 10473, "ctxt": 0 }, "value": "K1", "optional": false }, "typeParams": null } }, "indexType": { "type": "TsTypeReference", "span": { "start": 10475, "end": 10477, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10475, "end": 10477, "ctxt": 0 }, "value": "K2", "optional": false }, "typeParams": null } } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 10489, "end": 10493, "ctxt": 0 }, "value": "path", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 10569, "end": 10575, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 10569, "end": 10575, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10572, "end": 10575, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 10574, "end": 10575, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10574, "end": 10575, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 10577, "end": 10585, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 10577, "end": 10585, "ctxt": 0 }, "value": "key1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10581, "end": 10585, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 10583, "end": 10585, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10583, "end": 10585, "ctxt": 0 }, "value": "K1", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 10587, "end": 10595, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 10587, "end": 10595, "ctxt": 0 }, "value": "key2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10591, "end": 10595, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 10593, "end": 10595, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10593, "end": 10595, "ctxt": 0 }, "value": "K2", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 10597, "end": 10605, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 10597, "end": 10605, "ctxt": 0 }, "value": "key3", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10601, "end": 10605, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 10603, "end": 10605, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10603, "end": 10605, "ctxt": 0 }, "value": "K3", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 10480, "end": 10622, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 10493, "end": 10568, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 10494, "end": 10495, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 10494, "end": 10495, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 10497, "end": 10515, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 10497, "end": 10499, "ctxt": 0 }, "value": "K1", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 10508, "end": 10515, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 10514, "end": 10515, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10514, "end": 10515, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 10517, "end": 10539, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 10517, "end": 10519, "ctxt": 0 }, "value": "K2", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 10528, "end": 10539, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 10534, "end": 10539, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 10534, "end": 10535, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10534, "end": 10535, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 10536, "end": 10538, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10536, "end": 10538, "ctxt": 0 }, "value": "K1", "optional": false }, "typeParams": null } } }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 10541, "end": 10567, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 10541, "end": 10543, "ctxt": 0 }, "value": "K3", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 10552, "end": 10567, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 10558, "end": 10567, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsIndexedAccessType", "span": { "start": 10558, "end": 10563, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 10558, "end": 10559, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10558, "end": 10559, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 10560, "end": 10562, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10560, "end": 10562, "ctxt": 0 }, "value": "K1", "optional": false }, "typeParams": null } }, "indexType": { "type": "TsTypeReference", "span": { "start": 10564, "end": 10566, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10564, "end": 10566, "ctxt": 0 }, "value": "K2", "optional": false }, "typeParams": null } } }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 10606, "end": 10621, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 10608, "end": 10621, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsIndexedAccessType", "span": { "start": 10608, "end": 10617, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsIndexedAccessType", "span": { "start": 10608, "end": 10613, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 10608, "end": 10609, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10608, "end": 10609, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 10610, "end": 10612, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10610, "end": 10612, "ctxt": 0 }, "value": "K1", "optional": false }, "typeParams": null } }, "indexType": { "type": "TsTypeReference", "span": { "start": 10614, "end": 10616, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10614, "end": 10616, "ctxt": 0 }, "value": "K2", "optional": false }, "typeParams": null } }, "indexType": { "type": "TsTypeReference", "span": { "start": 10618, "end": 10620, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10618, "end": 10620, "ctxt": 0 }, "value": "K3", "optional": false }, "typeParams": null } } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 10632, "end": 10636, "ctxt": 0 }, "value": "path", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 10637, "end": 10645, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 10637, "end": 10645, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10640, "end": 10645, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 10642, "end": 10645, "ctxt": 0 }, "kind": "any" } } } }, { "type": "Parameter", "span": { "start": 10647, "end": 10675, "ctxt": 0 }, "decorators": [], "pat": { "type": "RestElement", "span": { "start": 10647, "end": 10675, "ctxt": 0 }, "rest": { "start": 10647, "end": 10650, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 10650, "end": 10654, "ctxt": 0 }, "value": "keys", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10654, "end": 10675, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 10656, "end": 10675, "ctxt": 0 }, "elemType": { "type": "TsParenthesizedType", "span": { "start": 10656, "end": 10673, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 10657, "end": 10672, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 10657, "end": 10663, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 10666, "end": 10672, "ctxt": 0 }, "kind": "number" } ] } } } } } } ], "decorators": [], "span": { "start": 10623, "end": 10682, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 10676, "end": 10681, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 10678, "end": 10681, "ctxt": 0 }, "kind": "any" } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 10692, "end": 10696, "ctxt": 0 }, "value": "path", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 10697, "end": 10705, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 10697, "end": 10705, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10700, "end": 10705, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 10702, "end": 10705, "ctxt": 0 }, "kind": "any" } } } }, { "type": "Parameter", "span": { "start": 10707, "end": 10735, "ctxt": 0 }, "decorators": [], "pat": { "type": "RestElement", "span": { "start": 10707, "end": 10735, "ctxt": 0 }, "rest": { "start": 10707, "end": 10710, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 10710, "end": 10714, "ctxt": 0 }, "value": "keys", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10714, "end": 10735, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 10716, "end": 10735, "ctxt": 0 }, "elemType": { "type": "TsParenthesizedType", "span": { "start": 10716, "end": 10733, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 10717, "end": 10732, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 10717, "end": 10723, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 10726, "end": 10732, "ctxt": 0 }, "kind": "number" } ] } } } } } } ], "decorators": [], "span": { "start": 10683, "end": 10846, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 10742, "end": 10846, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 10748, "end": 10765, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 10752, "end": 10764, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 10752, "end": 10758, "ctxt": 0 }, "value": "result", "optional": false, "typeAnnotation": null }, "init": { "type": "Identifier", "span": { "start": 10761, "end": 10764, "ctxt": 0 }, "value": "obj", "optional": false }, "definite": false } ] }, { "type": "ForOfStatement", "span": { "start": 10770, "end": 10825, "ctxt": 0 }, "await": null, "left": { "type": "VariableDeclaration", "span": { "start": 10775, "end": 10780, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 10779, "end": 10780, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 10779, "end": 10780, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": null }, "init": null, "definite": false } ] }, "right": { "type": "Identifier", "span": { "start": 10784, "end": 10788, "ctxt": 0 }, "value": "keys", "optional": false }, "body": { "type": "BlockStatement", "span": { "start": 10790, "end": 10825, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 10800, "end": 10819, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 10800, "end": 10818, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 10800, "end": 10806, "ctxt": 0 }, "value": "result", "optional": false, "typeAnnotation": null }, "right": { "type": "MemberExpression", "span": { "start": 10809, "end": 10818, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 10809, "end": 10815, "ctxt": 0 }, "value": "result", "optional": false }, "property": { "type": "Computed", "span": { "start": 10815, "end": 10818, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 10816, "end": 10817, "ctxt": 0 }, "value": "k", "optional": false } } } } } ] } }, { "type": "ReturnStatement", "span": { "start": 10830, "end": 10844, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 10837, "end": 10843, "ctxt": 0 }, "value": "result", "optional": false } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 10736, "end": 10741, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 10738, "end": 10741, "ctxt": 0 }, "kind": "any" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 10848, "end": 10913, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 10853, "end": 10858, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 10861, "end": 10912, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 10867, "end": 10895, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 10867, "end": 10868, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10868, "end": 10894, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 10870, "end": 10894, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 10872, "end": 10882, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 10872, "end": 10873, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10873, "end": 10881, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 10875, "end": 10881, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 10883, "end": 10892, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 10883, "end": 10884, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10884, "end": 10892, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 10886, "end": 10892, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 10900, "end": 10910, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 10900, "end": 10901, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10901, "end": 10910, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 10903, "end": 10910, "ctxt": 0 }, "kind": "boolean" } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 10925, "end": 10927, "ctxt": 0 }, "value": "f1", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 10928, "end": 10940, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 10928, "end": 10940, "ctxt": 0 }, "value": "thing", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10933, "end": 10940, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 10935, "end": 10940, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 10935, "end": 10940, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 10916, "end": 11144, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 10942, "end": 11144, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 10948, "end": 10974, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 10952, "end": 10973, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 10952, "end": 10954, "ctxt": 0 }, "value": "x1", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 10957, "end": 10973, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 10957, "end": 10961, "ctxt": 0 }, "value": "path", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 10962, "end": 10967, "ctxt": 0 }, "value": "thing", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 10969, "end": 10972, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 11008, "end": 11039, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 11012, "end": 11038, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 11012, "end": 11014, "ctxt": 0 }, "value": "x2", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 11017, "end": 11038, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 11017, "end": 11021, "ctxt": 0 }, "value": "path", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 11022, "end": 11027, "ctxt": 0 }, "value": "thing", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 11029, "end": 11032, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 11034, "end": 11037, "ctxt": 0 }, "value": "y", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 11055, "end": 11081, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 11059, "end": 11080, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 11059, "end": 11061, "ctxt": 0 }, "value": "x3", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 11064, "end": 11080, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 11064, "end": 11068, "ctxt": 0 }, "value": "path", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 11069, "end": 11074, "ctxt": 0 }, "value": "thing", "optional": false } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 11076, "end": 11079, "ctxt": 0 }, "value": "b", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 11098, "end": 11134, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 11102, "end": 11133, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 11102, "end": 11104, "ctxt": 0 }, "value": "x4", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 11107, "end": 11133, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 11107, "end": 11111, "ctxt": 0 }, "value": "path", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 11112, "end": 11117, "ctxt": 0 }, "value": "thing", "optional": false } }, { "spread": { "start": 11119, "end": 11122, "ctxt": 0 }, "expression": { "type": "ArrayExpression", "span": { "start": 11122, "end": 11132, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 11123, "end": 11126, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 11128, "end": 11131, "ctxt": 0 }, "value": "x", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } } ], "typeArguments": null }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "VariableDeclaration", "span": { "start": 11179, "end": 11332, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 11185, "end": 11331, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 11185, "end": 11194, "ctxt": 0 }, "value": "assignTo2", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 11197, "end": 11331, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 11245, "end": 11254, "ctxt": 0 }, "value": "object", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 11251, "end": 11254, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 11253, "end": 11254, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11253, "end": 11254, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 11256, "end": 11264, "ctxt": 0 }, "value": "key1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 11260, "end": 11264, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 11262, "end": 11264, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11262, "end": 11264, "ctxt": 0 }, "value": "K1", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 11266, "end": 11274, "ctxt": 0 }, "value": "key2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 11270, "end": 11274, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 11272, "end": 11274, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11272, "end": 11274, "ctxt": 0 }, "value": "K2", "optional": false }, "typeParams": null } } } ], "body": { "type": "ArrowFunctionExpression", "span": { "start": 11283, "end": 11331, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 11284, "end": 11300, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 11289, "end": 11300, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 11291, "end": 11300, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsIndexedAccessType", "span": { "start": 11291, "end": 11296, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 11291, "end": 11292, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11291, "end": 11292, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 11293, "end": 11295, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11293, "end": 11295, "ctxt": 0 }, "value": "K1", "optional": false }, "typeParams": null } }, "indexType": { "type": "TsTypeReference", "span": { "start": 11297, "end": 11299, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11297, "end": 11299, "ctxt": 0 }, "value": "K2", "optional": false }, "typeParams": null } } } } ], "body": { "type": "AssignmentExpression", "span": { "start": 11305, "end": 11331, "ctxt": 0 }, "operator": "=", "left": { "type": "MemberExpression", "span": { "start": 11305, "end": 11323, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 11305, "end": 11317, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 11305, "end": 11311, "ctxt": 0 }, "value": "object", "optional": false }, "property": { "type": "Computed", "span": { "start": 11311, "end": 11317, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 11312, "end": 11316, "ctxt": 0 }, "value": "key1", "optional": false } } }, "property": { "type": "Computed", "span": { "start": 11317, "end": 11323, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 11318, "end": 11322, "ctxt": 0 }, "value": "key2", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 11326, "end": 11331, "ctxt": 0 }, "value": "value", "optional": false } }, "async": false, "generator": false, "typeParameters": null, "returnType": null }, "async": false, "generator": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 11197, "end": 11244, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 11198, "end": 11199, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 11198, "end": 11199, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 11201, "end": 11219, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 11201, "end": 11203, "ctxt": 0 }, "value": "K1", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 11212, "end": 11219, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 11218, "end": 11219, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11218, "end": 11219, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 11221, "end": 11243, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 11221, "end": 11223, "ctxt": 0 }, "value": "K2", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 11232, "end": 11243, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 11238, "end": 11243, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 11238, "end": 11239, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11238, "end": 11239, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 11240, "end": 11242, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11240, "end": 11242, "ctxt": 0 }, "value": "K1", "optional": false }, "typeParams": null } } }, "default": null } ] }, "returnType": null }, "definite": false } ] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 11382, "end": 11385, "ctxt": 0 }, "value": "one", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 11389, "end": 11412, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 11389, "end": 11412, "ctxt": 0 }, "value": "handler", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 11396, "end": 11412, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 11398, "end": 11412, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 11399, "end": 11403, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 11400, "end": 11403, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 11402, "end": 11403, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11402, "end": 11403, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 11405, "end": 11412, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 11408, "end": 11412, "ctxt": 0 }, "kind": "void" } } } } } } ], "decorators": [], "span": { "start": 11365, "end": 11416, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 11385, "end": 11388, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 11386, "end": 11387, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 11386, "end": 11387, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 11413, "end": 11416, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 11415, "end": 11416, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11415, "end": 11416, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "VariableDeclaration", "span": { "start": 11417, "end": 11442, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 11421, "end": 11442, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 11421, "end": 11426, "ctxt": 0 }, "value": "empty", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 11429, "end": 11442, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 11429, "end": 11432, "ctxt": 0 }, "value": "one", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 11433, "end": 11441, "ctxt": 0 }, "params": [], "body": { "type": "BlockStatement", "span": { "start": 11439, "end": 11441, "ctxt": 0 }, "stmts": [] }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "TsTypeAliasDeclaration", "span": { "start": 11472, "end": 11528, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 11477, "end": 11485, "ctxt": 0 }, "value": "Handlers", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 11485, "end": 11488, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 11486, "end": 11487, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 11486, "end": 11487, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsMappedType", "span": { "start": 11491, "end": 11528, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 11494, "end": 11506, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 11494, "end": 11495, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 11499, "end": 11506, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 11505, "end": 11506, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11505, "end": 11506, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 11509, "end": 11526, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 11510, "end": 11517, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 11511, "end": 11517, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 11513, "end": 11517, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 11513, "end": 11514, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11513, "end": 11514, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 11515, "end": 11516, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11515, "end": 11516, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 11519, "end": 11526, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 11522, "end": 11526, "ctxt": 0 }, "kind": "void" } } } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 11546, "end": 11548, "ctxt": 0 }, "value": "on", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 11552, "end": 11576, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 11552, "end": 11576, "ctxt": 0 }, "value": "handlerHash", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 11563, "end": 11576, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 11565, "end": 11576, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11565, "end": 11573, "ctxt": 0 }, "value": "Handlers", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 11573, "end": 11576, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 11574, "end": 11575, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11574, "end": 11575, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } } } } ], "decorators": [], "span": { "start": 11529, "end": 11580, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 11548, "end": 11551, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 11549, "end": 11550, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 11549, "end": 11550, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 11577, "end": 11580, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 11579, "end": 11580, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11579, "end": 11580, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "VariableDeclaration", "span": { "start": 11581, "end": 11623, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 11585, "end": 11622, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 11585, "end": 11597, "ctxt": 0 }, "value": "hashOfEmpty1", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 11600, "end": 11622, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 11600, "end": 11602, "ctxt": 0 }, "value": "on", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 11603, "end": 11621, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 11605, "end": 11609, "ctxt": 0 }, "value": "test", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 11611, "end": 11619, "ctxt": 0 }, "params": [], "body": { "type": "BlockStatement", "span": { "start": 11617, "end": 11619, "ctxt": 0 }, "stmts": [] }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 11631, "end": 11683, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 11635, "end": 11682, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 11635, "end": 11647, "ctxt": 0 }, "value": "hashOfEmpty2", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 11650, "end": 11682, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 11650, "end": 11652, "ctxt": 0 }, "value": "on", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 11653, "end": 11681, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 11655, "end": 11659, "ctxt": 0 }, "value": "test", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 11661, "end": 11679, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 11662, "end": 11672, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 11663, "end": 11672, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 11665, "end": 11672, "ctxt": 0 }, "kind": "boolean" } } } ], "body": { "type": "BlockStatement", "span": { "start": 11677, "end": 11679, "ctxt": 0 }, "stmts": [] }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ] } } ], "typeArguments": null }, "definite": false } ] }, { "type": "TsInterfaceDeclaration", "span": { "start": 11729, "end": 11808, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 11739, "end": 11747, "ctxt": 0 }, "value": "Options1", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 11747, "end": 11763, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 11748, "end": 11752, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 11748, "end": 11752, "ctxt": 0 }, "value": "Data", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 11754, "end": 11762, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 11754, "end": 11762, "ctxt": 0 }, "value": "Computed", "optional": false }, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 11764, "end": 11808, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 11770, "end": 11781, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 11770, "end": 11774, "ctxt": 0 }, "value": "data", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 11775, "end": 11781, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 11777, "end": 11781, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11777, "end": 11781, "ctxt": 0 }, "value": "Data", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 11786, "end": 11806, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 11786, "end": 11794, "ctxt": 0 }, "value": "computed", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 11795, "end": 11805, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 11797, "end": 11805, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11797, "end": 11805, "ctxt": 0 }, "value": "Computed", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 11824, "end": 11834, "ctxt": 0 }, "value": "Component1", "optional": false }, "declare": true, "span": { "start": 11810, "end": 11980, "ctxt": 0 }, "decorators": [], "body": [ { "type": "Constructor", "span": { "start": 11857, "end": 11904, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 11857, "end": 11868, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 11869, "end": 11902, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 11869, "end": 11902, "ctxt": 0 }, "value": "options", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 11876, "end": 11902, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 11878, "end": 11902, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11878, "end": 11886, "ctxt": 0 }, "value": "Options1", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 11886, "end": 11902, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 11887, "end": 11891, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11887, "end": 11891, "ctxt": 0 }, "value": "Data", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 11893, "end": 11901, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11893, "end": 11901, "ctxt": 0 }, "value": "Computed", "optional": false }, "typeParams": null } ] } } } } } ], "body": null, "accessibility": null, "isOptional": false }, { "type": "ClassMethod", "span": { "start": 11909, "end": 11978, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 11909, "end": 11912, "ctxt": 0 }, "value": "get", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 11948, "end": 11954, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 11948, "end": 11954, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 11951, "end": 11954, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 11953, "end": 11954, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11953, "end": 11954, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 11909, "end": 11978, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 11912, "end": 11947, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 11913, "end": 11946, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 11913, "end": 11914, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 11923, "end": 11946, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsParenthesizedType", "span": { "start": 11929, "end": 11946, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 11930, "end": 11945, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 11930, "end": 11934, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11930, "end": 11934, "ctxt": 0 }, "value": "Data", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 11937, "end": 11945, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11937, "end": 11945, "ctxt": 0 }, "value": "Computed", "optional": false }, "typeParams": null } ] } } }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 11955, "end": 11977, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 11957, "end": 11977, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsParenthesizedType", "span": { "start": 11957, "end": 11974, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 11958, "end": 11973, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 11958, "end": 11962, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11958, "end": 11962, "ctxt": 0 }, "value": "Data", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 11965, "end": 11973, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11965, "end": 11973, "ctxt": 0 }, "value": "Computed", "optional": false }, "typeParams": null } ] } }, "indexType": { "type": "TsTypeReference", "span": { "start": 11975, "end": 11976, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 11975, "end": 11976, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false } ], "superClass": null, "isAbstract": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 11834, "end": 11850, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 11835, "end": 11839, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 11835, "end": 11839, "ctxt": 0 }, "value": "Data", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 11841, "end": 11849, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 11841, "end": 11849, "ctxt": 0 }, "value": "Computed", "optional": false }, "constraint": null, "default": null } ] }, "superTypeParams": null, "implements": [] }, { "type": "VariableDeclaration", "span": { "start": 11982, "end": 12047, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 11986, "end": 12046, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 11986, "end": 11988, "ctxt": 0 }, "value": "c1", "optional": false, "typeAnnotation": null }, "init": { "type": "NewExpression", "span": { "start": 11991, "end": 12046, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 11995, "end": 12005, "ctxt": 0 }, "value": "Component1", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 12006, "end": 12045, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 12012, "end": 12016, "ctxt": 0 }, "value": "data", "optional": false }, "value": { "type": "ObjectExpression", "span": { "start": 12018, "end": 12043, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 12028, "end": 12033, "ctxt": 0 }, "value": "hello", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 12035, "end": 12037, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } } ] } } ], "typeArguments": null }, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 12049, "end": 12065, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 12049, "end": 12064, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 12049, "end": 12055, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 12049, "end": 12051, "ctxt": 0 }, "value": "c1", "optional": false }, "property": { "type": "Identifier", "span": { "start": 12052, "end": 12055, "ctxt": 0 }, "value": "get", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 12056, "end": 12063, "ctxt": 0 }, "value": "hello", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null } }, { "type": "TsInterfaceDeclaration", "span": { "start": 12089, "end": 12168, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 12099, "end": 12107, "ctxt": 0 }, "value": "Options2", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 12107, "end": 12123, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 12108, "end": 12112, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 12108, "end": 12112, "ctxt": 0 }, "value": "Data", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 12114, "end": 12122, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 12114, "end": 12122, "ctxt": 0 }, "value": "Computed", "optional": false }, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 12124, "end": 12168, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 12130, "end": 12141, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 12130, "end": 12134, "ctxt": 0 }, "value": "data", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 12135, "end": 12141, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 12137, "end": 12141, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12137, "end": 12141, "ctxt": 0 }, "value": "Data", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 12146, "end": 12166, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 12146, "end": 12154, "ctxt": 0 }, "value": "computed", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 12155, "end": 12165, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 12157, "end": 12165, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12157, "end": 12165, "ctxt": 0 }, "value": "Computed", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 12184, "end": 12194, "ctxt": 0 }, "value": "Component2", "optional": false }, "declare": true, "span": { "start": 12170, "end": 12344, "ctxt": 0 }, "decorators": [], "body": [ { "type": "Constructor", "span": { "start": 12217, "end": 12264, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 12217, "end": 12228, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 12229, "end": 12262, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 12229, "end": 12262, "ctxt": 0 }, "value": "options", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 12236, "end": 12262, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 12238, "end": 12262, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12238, "end": 12246, "ctxt": 0 }, "value": "Options2", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 12246, "end": 12262, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 12247, "end": 12251, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12247, "end": 12251, "ctxt": 0 }, "value": "Data", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 12253, "end": 12261, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12253, "end": 12261, "ctxt": 0 }, "value": "Computed", "optional": false }, "typeParams": null } ] } } } } } ], "body": null, "accessibility": null, "isOptional": false }, { "type": "ClassMethod", "span": { "start": 12269, "end": 12342, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 12269, "end": 12272, "ctxt": 0 }, "value": "get", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 12312, "end": 12318, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 12312, "end": 12318, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 12315, "end": 12318, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 12317, "end": 12318, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12317, "end": 12318, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 12269, "end": 12342, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 12272, "end": 12311, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 12273, "end": 12310, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 12273, "end": 12274, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsUnionType", "span": { "start": 12283, "end": 12310, "ctxt": 0 }, "types": [ { "type": "TsTypeOperator", "span": { "start": 12283, "end": 12293, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 12289, "end": 12293, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12289, "end": 12293, "ctxt": 0 }, "value": "Data", "optional": false }, "typeParams": null } }, { "type": "TsTypeOperator", "span": { "start": 12296, "end": 12310, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 12302, "end": 12310, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12302, "end": 12310, "ctxt": 0 }, "value": "Computed", "optional": false }, "typeParams": null } } ] }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 12319, "end": 12341, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 12321, "end": 12341, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsParenthesizedType", "span": { "start": 12321, "end": 12338, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 12322, "end": 12337, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 12322, "end": 12326, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12322, "end": 12326, "ctxt": 0 }, "value": "Data", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 12329, "end": 12337, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12329, "end": 12337, "ctxt": 0 }, "value": "Computed", "optional": false }, "typeParams": null } ] } }, "indexType": { "type": "TsTypeReference", "span": { "start": 12339, "end": 12340, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12339, "end": 12340, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false } ], "superClass": null, "isAbstract": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 12194, "end": 12210, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 12195, "end": 12199, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 12195, "end": 12199, "ctxt": 0 }, "value": "Data", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 12201, "end": 12209, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 12201, "end": 12209, "ctxt": 0 }, "value": "Computed", "optional": false }, "constraint": null, "default": null } ] }, "superTypeParams": null, "implements": [] }, { "type": "TsInterfaceDeclaration", "span": { "start": 12368, "end": 12398, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 12378, "end": 12379, "ctxt": 0 }, "value": "R", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 12380, "end": 12398, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 12386, "end": 12396, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 12386, "end": 12387, "ctxt": 0 }, "value": "p", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 12387, "end": 12395, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 12389, "end": 12395, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 12409, "end": 12410, "ctxt": 0 }, "value": "f", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 12430, "end": 12434, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 12430, "end": 12434, "ctxt": 0 }, "value": "p", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 12431, "end": 12434, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 12433, "end": 12434, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12433, "end": 12434, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 12400, "end": 12477, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 12436, "end": 12477, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 12442, "end": 12453, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 12446, "end": 12452, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 12446, "end": 12447, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 12447, "end": 12452, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 12449, "end": 12452, "ctxt": 0 }, "kind": "any" } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 12458, "end": 12467, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 12458, "end": 12466, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 12458, "end": 12462, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 12458, "end": 12459, "ctxt": 0 }, "value": "a", "optional": false }, "property": { "type": "Computed", "span": { "start": 12459, "end": 12462, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 12460, "end": 12461, "ctxt": 0 }, "value": "p", "optional": false } } }, "property": { "type": "Identifier", "span": { "start": 12463, "end": 12466, "ctxt": 0 }, "value": "add", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 12410, "end": 12429, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 12411, "end": 12428, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 12411, "end": 12412, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 12421, "end": 12428, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 12427, "end": 12428, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12427, "end": 12428, "ctxt": 0 }, "value": "R", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, { "type": "TsTypeAliasDeclaration", "span": { "start": 12501, "end": 12576, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 12506, "end": 12522, "ctxt": 0 }, "value": "MethodDescriptor", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 12525, "end": 12576, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 12528, "end": 12541, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 12528, "end": 12532, "ctxt": 0 }, "value": "name", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 12532, "end": 12540, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 12534, "end": 12540, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 12543, "end": 12555, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 12543, "end": 12547, "ctxt": 0 }, "value": "args", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 12547, "end": 12554, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 12549, "end": 12554, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 12549, "end": 12552, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 12557, "end": 12574, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 12557, "end": 12568, "ctxt": 0 }, "value": "returnValue", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 12568, "end": 12573, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 12570, "end": 12573, "ctxt": 0 }, "kind": "any" } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 12595, "end": 12609, "ctxt": 0 }, "value": "dispatchMethod", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 12638, "end": 12653, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 12638, "end": 12653, "ctxt": 0 }, "value": "name", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 12642, "end": 12653, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 12644, "end": 12653, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 12644, "end": 12645, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12644, "end": 12645, "ctxt": 0 }, "value": "M", "optional": false }, "typeParams": null }, "indexType": { "type": "TsLiteralType", "span": { "start": 12646, "end": 12652, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 12646, "end": 12652, "ctxt": 0 }, "value": "name", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } } } }, { "type": "Parameter", "span": { "start": 12655, "end": 12670, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 12655, "end": 12670, "ctxt": 0 }, "value": "args", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 12659, "end": 12670, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 12661, "end": 12670, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 12661, "end": 12662, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12661, "end": 12662, "ctxt": 0 }, "value": "M", "optional": false }, "typeParams": null }, "indexType": { "type": "TsLiteralType", "span": { "start": 12663, "end": 12669, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 12663, "end": 12669, "ctxt": 0 }, "value": "args", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } } } } ], "decorators": [], "span": { "start": 12578, "end": 12690, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 12609, "end": 12637, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 12610, "end": 12636, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 12610, "end": 12611, "ctxt": 0 }, "value": "M", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 12620, "end": 12636, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12620, "end": 12636, "ctxt": 0 }, "value": "MethodDescriptor", "optional": false }, "typeParams": null }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 12671, "end": 12689, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 12673, "end": 12689, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 12673, "end": 12674, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12673, "end": 12674, "ctxt": 0 }, "value": "M", "optional": false }, "typeParams": null }, "indexType": { "type": "TsLiteralType", "span": { "start": 12675, "end": 12688, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 12675, "end": 12688, "ctxt": 0 }, "value": "returnValue", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 12692, "end": 12793, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 12697, "end": 12717, "ctxt": 0 }, "value": "SomeMethodDescriptor", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 12720, "end": 12793, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 12723, "end": 12742, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 12723, "end": 12727, "ctxt": 0 }, "value": "name", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 12727, "end": 12741, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 12729, "end": 12741, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 12729, "end": 12741, "ctxt": 0 }, "value": "someMethod", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 12744, "end": 12767, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 12744, "end": 12748, "ctxt": 0 }, "value": "args", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 12748, "end": 12766, "ctxt": 0 }, "typeAnnotation": { "type": "TsTupleType", "span": { "start": 12750, "end": 12766, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 12751, "end": 12757, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 12751, "end": 12757, "ctxt": 0 }, "kind": "string" } }, { "type": "TsTupleElement", "span": { "start": 12759, "end": 12765, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 12759, "end": 12765, "ctxt": 0 }, "kind": "number" } } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 12769, "end": 12791, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 12769, "end": 12780, "ctxt": 0 }, "value": "returnValue", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 12780, "end": 12790, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 12782, "end": 12790, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 12782, "end": 12788, "ctxt": 0 }, "kind": "string" } } }, "typeParams": null } ] } }, { "type": "VariableDeclaration", "span": { "start": 12795, "end": 12874, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 12799, "end": 12873, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 12799, "end": 12805, "ctxt": 0 }, "value": "result", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 12808, "end": 12873, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 12808, "end": 12822, "ctxt": 0 }, "value": "dispatchMethod", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 12845, "end": 12857, "ctxt": 0 }, "value": "someMethod", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "spread": null, "expression": { "type": "ArrayExpression", "span": { "start": 12859, "end": 12872, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 12860, "end": 12867, "ctxt": 0 }, "value": "hello", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 12869, "end": 12871, "ctxt": 0 }, "value": 35.0 } } ] } } ], "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 12822, "end": 12844, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 12823, "end": 12843, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12823, "end": 12843, "ctxt": 0 }, "value": "SomeMethodDescriptor", "optional": false }, "typeParams": null } ] } }, "definite": false } ] }, { "type": "TsTypeAliasDeclaration", "span": { "start": 12898, "end": 12923, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 12903, "end": 12911, "ctxt": 0 }, "value": "KeyTypes", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 12914, "end": 12923, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 12914, "end": 12917, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 12914, "end": 12917, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "type": "TsLiteralType", "span": { "start": 12920, "end": 12923, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 12920, "end": 12923, "ctxt": 0 }, "value": "b", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } }, { "type": "VariableDeclaration", "span": { "start": 12924, "end": 12970, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 12928, "end": 12969, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 12928, "end": 12936, "ctxt": 0 }, "value": "MyThingy", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 12936, "end": 12969, "ctxt": 0 }, "typeAnnotation": { "type": "TsMappedType", "span": { "start": 12938, "end": 12969, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 12941, "end": 12956, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 12941, "end": 12944, "ctxt": 0 }, "value": "key", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 12948, "end": 12956, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 12948, "end": 12956, "ctxt": 0 }, "value": "KeyTypes", "optional": false }, "typeParams": null }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 12959, "end": 12967, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 12959, "end": 12965, "ctxt": 0 }, "kind": "string" } } } } }, "init": null, "definite": false } ] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 12981, "end": 12994, "ctxt": 0 }, "value": "addToMyThingy", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 13015, "end": 13021, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 13015, "end": 13021, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13018, "end": 13021, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 13020, "end": 13021, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13020, "end": 13021, "ctxt": 0 }, "value": "S", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 12972, "end": 13055, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 13023, "end": 13055, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 13029, "end": 13053, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 13029, "end": 13052, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 13029, "end": 13047, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 13029, "end": 13042, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 13029, "end": 13037, "ctxt": 0 }, "value": "MyThingy", "optional": false }, "property": { "type": "Computed", "span": { "start": 13037, "end": 13042, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 13038, "end": 13041, "ctxt": 0 }, "value": "key", "optional": false } } }, "property": { "type": "Identifier", "span": { "start": 13043, "end": 13047, "ctxt": 0 }, "value": "push", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 13048, "end": 13051, "ctxt": 0 }, "value": "a", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 12994, "end": 13014, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 12995, "end": 13013, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 12995, "end": 12996, "ctxt": 0 }, "value": "S", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 13005, "end": 13013, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13005, "end": 13013, "ctxt": 0 }, "value": "KeyTypes", "optional": false }, "typeParams": null }, "default": null } ] }, "returnType": null }, { "type": "TsTypeAliasDeclaration", "span": { "start": 13079, "end": 13140, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 13084, "end": 13091, "ctxt": 0 }, "value": "Handler", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 13091, "end": 13094, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 13092, "end": 13093, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 13092, "end": 13093, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 13097, "end": 13139, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 13103, "end": 13137, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 13103, "end": 13111, "ctxt": 0 }, "value": "onChange", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13111, "end": 13136, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 13113, "end": 13136, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 13114, "end": 13127, "ctxt": 0 }, "value": "name", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13118, "end": 13127, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 13120, "end": 13127, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 13126, "end": 13127, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13126, "end": 13127, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13129, "end": 13136, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 13132, "end": 13136, "ctxt": 0 }, "kind": "void" } } } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 13151, "end": 13174, "ctxt": 0 }, "value": "onChangeGenericFunction", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 13178, "end": 13216, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 13178, "end": 13216, "ctxt": 0 }, "value": "handler", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13185, "end": 13216, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 13187, "end": 13216, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13187, "end": 13194, "ctxt": 0 }, "value": "Handler", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 13194, "end": 13216, "ctxt": 0 }, "params": [ { "type": "TsIntersectionType", "span": { "start": 13195, "end": 13215, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 13195, "end": 13196, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13195, "end": 13196, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeLiteral", "span": { "start": 13199, "end": 13215, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 13200, "end": 13214, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 13200, "end": 13206, "ctxt": 0 }, "value": "preset", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13206, "end": 13214, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 13208, "end": 13214, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } ] } ] } } } } } ], "decorators": [], "span": { "start": 13142, "end": 13252, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 13218, "end": 13252, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 13224, "end": 13250, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 13224, "end": 13250, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 13224, "end": 13240, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 13224, "end": 13231, "ctxt": 0 }, "value": "handler", "optional": false }, "property": { "type": "Identifier", "span": { "start": 13232, "end": 13240, "ctxt": 0 }, "value": "onChange", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 13241, "end": 13249, "ctxt": 0 }, "value": "preset", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ], "typeArguments": null } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 13174, "end": 13177, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 13175, "end": 13176, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 13175, "end": 13176, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 13285, "end": 13294, "ctxt": 0 }, "value": "updateIds", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 13347, "end": 13353, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 13347, "end": 13353, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13350, "end": 13353, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 13352, "end": 13353, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13352, "end": 13353, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 13359, "end": 13372, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 13359, "end": 13372, "ctxt": 0 }, "value": "idFields", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13367, "end": 13372, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 13369, "end": 13372, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 13369, "end": 13370, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13369, "end": 13370, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } }, { "type": "Parameter", "span": { "start": 13378, "end": 13416, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 13378, "end": 13416, "ctxt": 0 }, "value": "idMapping", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13387, "end": 13416, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 13389, "end": 13416, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13389, "end": 13396, "ctxt": 0 }, "value": "Partial", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 13396, "end": 13416, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 13397, "end": 13415, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13397, "end": 13403, "ctxt": 0 }, "value": "Record", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 13403, "end": 13415, "ctxt": 0 }, "params": [ { "type": "TsIndexedAccessType", "span": { "start": 13404, "end": 13408, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 13404, "end": 13405, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13404, "end": 13405, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 13406, "end": 13407, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13406, "end": 13407, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } }, { "type": "TsIndexedAccessType", "span": { "start": 13410, "end": 13414, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 13410, "end": 13411, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13410, "end": 13411, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 13412, "end": 13413, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13412, "end": 13413, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } ] } } ] } } } } } ], "decorators": [], "span": { "start": 13276, "end": 13631, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 13438, "end": 13631, "ctxt": 0 }, "stmts": [ { "type": "ForOfStatement", "span": { "start": 13444, "end": 13613, "ctxt": 0 }, "await": null, "left": { "type": "VariableDeclaration", "span": { "start": 13449, "end": 13462, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 13455, "end": 13462, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 13455, "end": 13462, "ctxt": 0 }, "value": "idField", "optional": false, "typeAnnotation": null }, "init": null, "definite": false } ] }, "right": { "type": "Identifier", "span": { "start": 13466, "end": 13474, "ctxt": 0 }, "value": "idFields", "optional": false }, "body": { "type": "BlockStatement", "span": { "start": 13476, "end": 13613, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 13486, "end": 13542, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 13492, "end": 13541, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 13492, "end": 13497, "ctxt": 0 }, "value": "newId", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13497, "end": 13515, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 13499, "end": 13515, "ctxt": 0 }, "types": [ { "type": "TsIndexedAccessType", "span": { "start": 13499, "end": 13503, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 13499, "end": 13500, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13499, "end": 13500, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 13501, "end": 13502, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13501, "end": 13502, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } }, { "type": "TsKeywordType", "span": { "start": 13506, "end": 13515, "ctxt": 0 }, "kind": "undefined" } ] } } }, "init": { "type": "MemberExpression", "span": { "start": 13518, "end": 13541, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 13518, "end": 13527, "ctxt": 0 }, "value": "idMapping", "optional": false }, "property": { "type": "Computed", "span": { "start": 13527, "end": 13541, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 13528, "end": 13540, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 13528, "end": 13531, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 13531, "end": 13540, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 13532, "end": 13539, "ctxt": 0 }, "value": "idField", "optional": false } } } } }, "definite": false } ] }, { "type": "IfStatement", "span": { "start": 13551, "end": 13607, "ctxt": 0 }, "test": { "type": "Identifier", "span": { "start": 13555, "end": 13560, "ctxt": 0 }, "value": "newId", "optional": false }, "consequent": { "type": "BlockStatement", "span": { "start": 13562, "end": 13607, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 13576, "end": 13597, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 13576, "end": 13596, "ctxt": 0 }, "operator": "=", "left": { "type": "MemberExpression", "span": { "start": 13576, "end": 13588, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 13576, "end": 13579, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 13579, "end": 13588, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 13580, "end": 13587, "ctxt": 0 }, "value": "idField", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 13591, "end": 13596, "ctxt": 0 }, "value": "newId", "optional": false } } } ] }, "alternate": null } ] } }, { "type": "ReturnStatement", "span": { "start": 13618, "end": 13629, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 13625, "end": 13628, "ctxt": 0 }, "value": "obj", "optional": false } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 13294, "end": 13341, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 13295, "end": 13322, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 13295, "end": 13296, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 13305, "end": 13322, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13305, "end": 13311, "ctxt": 0 }, "value": "Record", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 13311, "end": 13322, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 13312, "end": 13313, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13312, "end": 13313, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 13315, "end": 13321, "ctxt": 0 }, "kind": "string" } ] } }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 13324, "end": 13340, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 13324, "end": 13325, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsKeywordType", "span": { "start": 13334, "end": 13340, "ctxt": 0 }, "kind": "string" }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 13418, "end": 13437, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 13420, "end": 13437, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13420, "end": 13426, "ctxt": 0 }, "value": "Record", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 13426, "end": 13437, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 13427, "end": 13428, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13427, "end": 13428, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 13430, "end": 13436, "ctxt": 0 }, "kind": "string" } ] } } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 13664, "end": 13674, "ctxt": 0 }, "value": "updateIds2", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 13734, "end": 13740, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 13734, "end": 13740, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13737, "end": 13740, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 13739, "end": 13740, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13739, "end": 13740, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 13746, "end": 13752, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 13746, "end": 13752, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13749, "end": 13752, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 13751, "end": 13752, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13751, "end": 13752, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 13758, "end": 13796, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 13758, "end": 13796, "ctxt": 0 }, "value": "stringMap", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13767, "end": 13796, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 13769, "end": 13796, "ctxt": 0 }, "members": [ { "type": "TsIndexSignature", "params": [ { "type": "Identifier", "span": { "start": 13772, "end": 13785, "ctxt": 0 }, "value": "oldId", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13777, "end": 13785, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 13779, "end": 13785, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13786, "end": 13794, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 13788, "end": 13794, "ctxt": 0 }, "kind": "string" } }, "readonly": false, "static": false, "span": { "start": 13771, "end": 13794, "ctxt": 0 } } ] } } } } ], "decorators": [], "span": { "start": 13655, "end": 13859, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 13799, "end": 13859, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 13805, "end": 13822, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 13809, "end": 13821, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 13809, "end": 13810, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 13813, "end": 13821, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 13813, "end": 13816, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 13816, "end": 13821, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 13817, "end": 13820, "ctxt": 0 }, "value": "key", "optional": false } } }, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 13827, "end": 13840, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 13827, "end": 13839, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 13827, "end": 13836, "ctxt": 0 }, "value": "stringMap", "optional": false }, "property": { "type": "Computed", "span": { "start": 13836, "end": 13839, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 13837, "end": 13838, "ctxt": 0 }, "value": "x", "optional": false } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 13674, "end": 13728, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 13675, "end": 13708, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 13675, "end": 13676, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeLiteral", "span": { "start": 13685, "end": 13708, "ctxt": 0 }, "members": [ { "type": "TsIndexSignature", "params": [ { "type": "Identifier", "span": { "start": 13688, "end": 13697, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13689, "end": 13697, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 13691, "end": 13697, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13698, "end": 13706, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 13700, "end": 13706, "ctxt": 0 }, "kind": "string" } }, "readonly": false, "static": false, "span": { "start": 13687, "end": 13706, "ctxt": 0 } } ] }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 13710, "end": 13727, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 13710, "end": 13711, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 13720, "end": 13727, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 13726, "end": 13727, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13726, "end": 13727, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 13900, "end": 13904, "ctxt": 0 }, "value": "head", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 13927, "end": 13934, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 13927, "end": 13934, "ctxt": 0 }, "value": "list", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13931, "end": 13934, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 13933, "end": 13934, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13933, "end": 13934, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 13883, "end": 13942, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 13904, "end": 13926, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 13905, "end": 13925, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 13905, "end": 13906, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 13915, "end": 13925, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13915, "end": 13920, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 13920, "end": 13925, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 13921, "end": 13924, "ctxt": 0 }, "kind": "any" } ] } }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 13935, "end": 13941, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 13937, "end": 13941, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 13937, "end": 13938, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13937, "end": 13938, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsLiteralType", "span": { "start": 13939, "end": 13940, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 13939, "end": 13940, "ctxt": 0 }, "value": 0.0 } } } } }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 13972, "end": 13973, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "span": { "start": 13966, "end": 14009, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 13980, "end": 14007, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 13980, "end": 13985, "ctxt": 0 }, "value": "props", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13985, "end": 14006, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 13987, "end": 14006, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 13987, "end": 13988, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 13987, "end": 13988, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeLiteral", "span": { "start": 13991, "end": 14006, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 13993, "end": 14004, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 13993, "end": 13996, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 13996, "end": 14004, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 13998, "end": 14004, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } ] } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 13973, "end": 13976, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 13974, "end": 13975, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 13974, "end": 13975, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 14017, "end": 14018, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "span": { "start": 14011, "end": 14079, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 14046, "end": 14077, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 14046, "end": 14047, "ctxt": 0 }, "value": "f", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 14048, "end": 14064, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 14048, "end": 14064, "ctxt": 0 }, "value": "p", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 14049, "end": 14064, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 14051, "end": 14064, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsThisType", "span": { "start": 14051, "end": 14055, "ctxt": 0 } }, "indexType": { "type": "TsLiteralType", "span": { "start": 14056, "end": 14063, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 14056, "end": 14063, "ctxt": 0 }, "value": "props", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } } } } ], "decorators": [], "span": { "start": 14046, "end": 14077, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 14066, "end": 14077, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 14070, "end": 14074, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 14070, "end": 14073, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 14070, "end": 14071, "ctxt": 0 }, "value": "p", "optional": false }, "property": { "type": "Identifier", "span": { "start": 14072, "end": 14073, "ctxt": 0 }, "value": "x", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false } ], "superClass": { "type": "Identifier", "span": { "start": 14027, "end": 14028, "ctxt": 0 }, "value": "A", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 14028, "end": 14042, "ctxt": 0 }, "params": [ { "type": "TsTypeLiteral", "span": { "start": 14029, "end": 14041, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 14031, "end": 14040, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 14031, "end": 14032, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 14032, "end": 14040, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 14034, "end": 14040, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } ] }, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 14109, "end": 14113, "ctxt": 0 }, "value": "Form", "optional": false }, "declare": false, "span": { "start": 14103, "end": 14304, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 14123, "end": 14192, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 14131, "end": 14149, "ctxt": 0 }, "value": "childFormFactories", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 14149, "end": 14192, "ctxt": 0 }, "typeAnnotation": { "type": "TsMappedType", "span": { "start": 14151, "end": 14192, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 14153, "end": 14165, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 14153, "end": 14154, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 14158, "end": 14165, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 14164, "end": 14165, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14164, "end": 14165, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 14168, "end": 14191, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 14169, "end": 14176, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 14170, "end": 14176, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 14172, "end": 14176, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 14172, "end": 14173, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14172, "end": 14173, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 14174, "end": 14175, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14174, "end": 14175, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 14178, "end": 14191, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 14181, "end": 14191, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14181, "end": 14185, "ctxt": 0 }, "value": "Form", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 14185, "end": 14191, "ctxt": 0 }, "params": [ { "type": "TsIndexedAccessType", "span": { "start": 14186, "end": 14190, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 14186, "end": 14187, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14186, "end": 14187, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 14188, "end": 14189, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14188, "end": 14189, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } ] } } } } } }, "isStatic": false, "decorators": [], "accessibility": "private", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassMethod", "span": { "start": 14198, "end": 14302, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 14205, "end": 14208, "ctxt": 0 }, "value": "set", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 14228, "end": 14235, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 14228, "end": 14235, "ctxt": 0 }, "value": "prop", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 14232, "end": 14235, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 14234, "end": 14235, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14234, "end": 14235, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 14237, "end": 14248, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 14237, "end": 14248, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 14242, "end": 14248, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 14244, "end": 14248, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 14244, "end": 14245, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14244, "end": 14245, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 14246, "end": 14247, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14246, "end": 14247, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 14198, "end": 14302, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 14250, "end": 14302, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 14260, "end": 14296, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 14260, "end": 14296, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 14260, "end": 14289, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 14260, "end": 14283, "ctxt": 0 }, "object": { "type": "ThisExpression", "span": { "start": 14260, "end": 14264, "ctxt": 0 } }, "property": { "type": "Identifier", "span": { "start": 14265, "end": 14283, "ctxt": 0 }, "value": "childFormFactories", "optional": false } }, "property": { "type": "Computed", "span": { "start": 14283, "end": 14289, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 14284, "end": 14288, "ctxt": 0 }, "value": "prop", "optional": false } } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 14290, "end": 14295, "ctxt": 0 }, "value": "value", "optional": false } } ], "typeArguments": null } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 14208, "end": 14227, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 14209, "end": 14226, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 14209, "end": 14210, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 14219, "end": 14226, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 14225, "end": 14226, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14225, "end": 14226, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": "public", "isAbstract": false, "isOptional": false, "isOverride": false } ], "superClass": null, "isAbstract": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 14113, "end": 14116, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 14114, "end": 14115, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 14114, "end": 14115, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 14334, "end": 14345, "ctxt": 0 }, "value": "SampleClass", "optional": false }, "declare": false, "span": { "start": 14328, "end": 14460, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 14355, "end": 14381, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 14362, "end": 14367, "ctxt": 0 }, "value": "props", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 14367, "end": 14380, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 14369, "end": 14380, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14369, "end": 14377, "ctxt": 0 }, "value": "Readonly", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 14377, "end": 14380, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 14378, "end": 14379, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14378, "end": 14379, "ctxt": 0 }, "value": "P", "optional": false }, "typeParams": null } ] } } }, "isStatic": false, "decorators": [], "accessibility": "public", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "Constructor", "span": { "start": 14386, "end": 14458, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 14386, "end": 14397, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 14398, "end": 14406, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 14398, "end": 14406, "ctxt": 0 }, "value": "props", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 14403, "end": 14406, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 14405, "end": 14406, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14405, "end": 14406, "ctxt": 0 }, "value": "P", "optional": false }, "typeParams": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 14408, "end": 14458, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 14418, "end": 14452, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 14418, "end": 14451, "ctxt": 0 }, "operator": "=", "left": { "type": "MemberExpression", "span": { "start": 14418, "end": 14428, "ctxt": 0 }, "object": { "type": "ThisExpression", "span": { "start": 14418, "end": 14422, "ctxt": 0 } }, "property": { "type": "Identifier", "span": { "start": 14423, "end": 14428, "ctxt": 0 }, "value": "props", "optional": false } }, "right": { "type": "CallExpression", "span": { "start": 14431, "end": 14451, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 14431, "end": 14444, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 14431, "end": 14437, "ctxt": 0 }, "value": "Object", "optional": false }, "property": { "type": "Identifier", "span": { "start": 14438, "end": 14444, "ctxt": 0 }, "value": "freeze", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 14445, "end": 14450, "ctxt": 0 }, "value": "props", "optional": false } } ], "typeArguments": null } } } ] }, "accessibility": null, "isOptional": false } ], "superClass": null, "isAbstract": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 14345, "end": 14348, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 14346, "end": 14347, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 14346, "end": 14347, "ctxt": 0 }, "value": "P", "optional": false }, "constraint": null, "default": null } ] }, "superTypeParams": null, "implements": [] }, { "type": "TsInterfaceDeclaration", "span": { "start": 14462, "end": 14496, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 14472, "end": 14475, "ctxt": 0 }, "value": "Foo", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 14476, "end": 14496, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 14482, "end": 14494, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 14482, "end": 14485, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 14485, "end": 14493, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 14487, "end": 14493, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 14515, "end": 14520, "ctxt": 0 }, "value": "merge", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 14527, "end": 14534, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 14527, "end": 14534, "ctxt": 0 }, "value": "obj1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 14531, "end": 14534, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 14533, "end": 14534, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14533, "end": 14534, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 14536, "end": 14543, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 14536, "end": 14543, "ctxt": 0 }, "value": "obj2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 14540, "end": 14543, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 14542, "end": 14543, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14542, "end": 14543, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 14498, "end": 14552, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 14520, "end": 14526, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 14521, "end": 14522, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 14521, "end": 14522, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 14524, "end": 14525, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 14524, "end": 14525, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 14544, "end": 14551, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 14546, "end": 14551, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 14546, "end": 14547, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14546, "end": 14547, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 14550, "end": 14551, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14550, "end": 14551, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } ] } } }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 14560, "end": 14578, "ctxt": 0 }, "value": "AnotherSampleClass", "optional": false }, "declare": false, "span": { "start": 14554, "end": 14789, "ctxt": 0 }, "decorators": [], "body": [ { "type": "Constructor", "span": { "start": 14617, "end": 14721, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 14617, "end": 14628, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 14629, "end": 14637, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 14629, "end": 14637, "ctxt": 0 }, "value": "props", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 14634, "end": 14637, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 14636, "end": 14637, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14636, "end": 14637, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 14639, "end": 14721, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 14649, "end": 14681, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 14655, "end": 14680, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 14655, "end": 14658, "ctxt": 0 }, "value": "foo", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 14658, "end": 14663, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 14660, "end": 14663, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14660, "end": 14663, "ctxt": 0 }, "value": "Foo", "optional": false }, "typeParams": null } } }, "init": { "type": "ObjectExpression", "span": { "start": 14666, "end": 14680, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 14668, "end": 14671, "ctxt": 0 }, "value": "foo", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 14673, "end": 14678, "ctxt": 0 }, "value": "bar", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] }, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 14690, "end": 14715, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 14690, "end": 14714, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 14690, "end": 14695, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "CallExpression", "span": { "start": 14696, "end": 14713, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 14696, "end": 14701, "ctxt": 0 }, "value": "merge", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 14702, "end": 14707, "ctxt": 0 }, "value": "props", "optional": false } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 14709, "end": 14712, "ctxt": 0 }, "value": "foo", "optional": false } } ], "typeArguments": null } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false }, { "type": "ClassMethod", "span": { "start": 14727, "end": 14787, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 14734, "end": 14746, "ctxt": 0 }, "value": "brokenMethod", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 14727, "end": 14787, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 14749, "end": 14787, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 14759, "end": 14781, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 14759, "end": 14780, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 14759, "end": 14773, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 14759, "end": 14769, "ctxt": 0 }, "object": { "type": "ThisExpression", "span": { "start": 14759, "end": 14763, "ctxt": 0 } }, "property": { "type": "Identifier", "span": { "start": 14764, "end": 14769, "ctxt": 0 }, "value": "props", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 14770, "end": 14773, "ctxt": 0 }, "value": "foo", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 14774, "end": 14780, "ctxt": 0 }, "value": "concat", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": "public", "isAbstract": false, "isOptional": false, "isOverride": false } ], "superClass": { "type": "Identifier", "span": { "start": 14590, "end": 14601, "ctxt": 0 }, "value": "SampleClass", "optional": false }, "isAbstract": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 14578, "end": 14581, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 14579, "end": 14580, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 14579, "end": 14580, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "superTypeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 14601, "end": 14610, "ctxt": 0 }, "params": [ { "type": "TsIntersectionType", "span": { "start": 14602, "end": 14609, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 14602, "end": 14603, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14602, "end": 14603, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 14606, "end": 14609, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14606, "end": 14609, "ctxt": 0 }, "value": "Foo", "optional": false }, "typeParams": null } ] } ] }, "implements": [] }, { "type": "ExpressionStatement", "span": { "start": 14790, "end": 14817, "ctxt": 0 }, "expression": { "type": "NewExpression", "span": { "start": 14790, "end": 14816, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 14794, "end": 14812, "ctxt": 0 }, "value": "AnotherSampleClass", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ObjectExpression", "span": { "start": 14813, "end": 14815, "ctxt": 0 }, "properties": [] } } ], "typeArguments": null } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 14858, "end": 14860, "ctxt": 0 }, "value": "f3", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 14900, "end": 14904, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 14900, "end": 14904, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 14901, "end": 14904, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 14903, "end": 14904, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14903, "end": 14904, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 14906, "end": 14910, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 14906, "end": 14910, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 14907, "end": 14910, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 14909, "end": 14910, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14909, "end": 14910, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 14912, "end": 14920, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 14912, "end": 14920, "ctxt": 0 }, "value": "tk", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 14914, "end": 14920, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 14916, "end": 14920, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 14916, "end": 14917, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14916, "end": 14917, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 14918, "end": 14919, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14918, "end": 14919, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 14849, "end": 15047, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 14928, "end": 15047, "ctxt": 0 }, "stmts": [ { "type": "ForInStatement", "span": { "start": 14934, "end": 15045, "ctxt": 0 }, "left": { "type": "VariableDeclaration", "span": { "start": 14939, "end": 14946, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 14943, "end": 14946, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 14943, "end": 14946, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": null }, "init": null, "definite": false } ] }, "right": { "type": "Identifier", "span": { "start": 14950, "end": 14951, "ctxt": 0 }, "value": "t", "optional": false }, "body": { "type": "BlockStatement", "span": { "start": 14953, "end": 15045, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 14963, "end": 14970, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 14963, "end": 14970, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 14963, "end": 14966, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 14969, "end": 14970, "ctxt": 0 }, "value": "k", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 15000, "end": 15012, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 15000, "end": 15011, "ctxt": 0 }, "operator": "=", "left": { "type": "MemberExpression", "span": { "start": 15000, "end": 15006, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 15000, "end": 15001, "ctxt": 0 }, "value": "t", "optional": false }, "property": { "type": "Computed", "span": { "start": 15001, "end": 15006, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 15002, "end": 15005, "ctxt": 0 }, "value": "key", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 15009, "end": 15011, "ctxt": 0 }, "value": "tk", "optional": false } } } ] } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 14860, "end": 14899, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 14861, "end": 14862, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 14861, "end": 14862, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 14864, "end": 14898, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 14864, "end": 14865, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 14874, "end": 14898, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14874, "end": 14881, "ctxt": 0 }, "value": "Extract", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 14881, "end": 14898, "ctxt": 0 }, "params": [ { "type": "TsTypeOperator", "span": { "start": 14882, "end": 14889, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 14888, "end": 14889, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 14888, "end": 14889, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, { "type": "TsKeywordType", "span": { "start": 14891, "end": 14897, "ctxt": 0 }, "kind": "string" } ] } }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 14921, "end": 14927, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 14923, "end": 14927, "ctxt": 0 }, "kind": "void" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 15060, "end": 15198, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 15065, "end": 15075, "ctxt": 0 }, "value": "Predicates", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 15075, "end": 15089, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 15076, "end": 15088, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 15076, "end": 15088, "ctxt": 0 }, "value": "TaggedRecord", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsMappedType", "span": { "start": 15092, "end": 15198, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 15097, "end": 15120, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 15097, "end": 15098, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 15102, "end": 15120, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 15108, "end": 15120, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15108, "end": 15120, "ctxt": 0 }, "value": "TaggedRecord", "optional": false }, "typeParams": null } }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 15123, "end": 15196, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 15124, "end": 15165, "ctxt": 0 }, "value": "variant", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 15131, "end": 15165, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 15133, "end": 15165, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 15133, "end": 15145, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15133, "end": 15145, "ctxt": 0 }, "value": "TaggedRecord", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeOperator", "span": { "start": 15146, "end": 15164, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 15152, "end": 15164, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15152, "end": 15164, "ctxt": 0 }, "value": "TaggedRecord", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 15167, "end": 15196, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypePredicate", "span": { "start": 15170, "end": 15196, "ctxt": 0 }, "asserts": false, "paramName": { "type": "Identifier", "span": { "start": 15170, "end": 15177, "ctxt": 0 }, "value": "variant", "optional": false }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 15181, "end": 15196, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 15181, "end": 15196, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 15181, "end": 15193, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15181, "end": 15193, "ctxt": 0 }, "value": "TaggedRecord", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 15194, "end": 15195, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15194, "end": 15195, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 15223, "end": 15316, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 15228, "end": 15235, "ctxt": 0 }, "value": "Example", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 15235, "end": 15280, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 15236, "end": 15279, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 15236, "end": 15237, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsMappedType", "span": { "start": 15246, "end": 15279, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 15249, "end": 15261, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 15249, "end": 15250, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 15254, "end": 15261, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 15260, "end": 15261, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15260, "end": 15261, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 15264, "end": 15277, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 15266, "end": 15275, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 15266, "end": 15270, "ctxt": 0 }, "value": "prop", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 15270, "end": 15275, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 15272, "end": 15275, "ctxt": 0 }, "kind": "any" } }, "typeParams": null } ] } }, "default": null } ] }, "typeAnnotation": { "type": "TsMappedType", "span": { "start": 15283, "end": 15315, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 15286, "end": 15298, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 15286, "end": 15287, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 15291, "end": 15298, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 15297, "end": 15298, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15297, "end": 15298, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 15301, "end": 15313, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsIndexedAccessType", "span": { "start": 15301, "end": 15305, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 15301, "end": 15302, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15301, "end": 15302, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 15303, "end": 15304, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15303, "end": 15304, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } }, "indexType": { "type": "TsLiteralType", "span": { "start": 15306, "end": 15312, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 15306, "end": 15312, "ctxt": 0 }, "value": "prop", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 15317, "end": 15385, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 15322, "end": 15328, "ctxt": 0 }, "value": "Result", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 15331, "end": 15384, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15331, "end": 15338, "ctxt": 0 }, "value": "Example", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 15338, "end": 15384, "ctxt": 0 }, "params": [ { "type": "TsTypeLiteral", "span": { "start": 15339, "end": 15383, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 15341, "end": 15361, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 15341, "end": 15342, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 15342, "end": 15360, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 15344, "end": 15360, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 15346, "end": 15358, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 15346, "end": 15350, "ctxt": 0 }, "value": "prop", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 15350, "end": 15358, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 15352, "end": 15358, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 15362, "end": 15381, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 15362, "end": 15363, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 15363, "end": 15381, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 15365, "end": 15381, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 15367, "end": 15379, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 15367, "end": 15371, "ctxt": 0 }, "value": "prop", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 15371, "end": 15379, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 15373, "end": 15379, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, "typeParams": null } ] } ] } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 15387, "end": 15454, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 15392, "end": 15399, "ctxt": 0 }, "value": "Helper2", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 15399, "end": 15402, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 15400, "end": 15401, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 15400, "end": 15401, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsMappedType", "span": { "start": 15405, "end": 15453, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 15408, "end": 15420, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 15408, "end": 15409, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 15413, "end": 15420, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 15419, "end": 15420, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15419, "end": 15420, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 15423, "end": 15451, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15423, "end": 15430, "ctxt": 0 }, "value": "Extract", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 15430, "end": 15451, "ctxt": 0 }, "params": [ { "type": "TsIndexedAccessType", "span": { "start": 15431, "end": 15435, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 15431, "end": 15432, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15431, "end": 15432, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 15433, "end": 15434, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15433, "end": 15434, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } }, { "type": "TsTypeLiteral", "span": { "start": 15437, "end": 15450, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 15439, "end": 15448, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 15439, "end": 15443, "ctxt": 0 }, "value": "prop", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 15443, "end": 15448, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 15445, "end": 15448, "ctxt": 0 }, "kind": "any" } }, "typeParams": null } ] } ] } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 15455, "end": 15525, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 15460, "end": 15468, "ctxt": 0 }, "value": "Example2", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 15468, "end": 15471, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 15469, "end": 15470, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 15469, "end": 15470, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsMappedType", "span": { "start": 15474, "end": 15524, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 15477, "end": 15498, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 15477, "end": 15478, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 15482, "end": 15498, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 15488, "end": 15498, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15488, "end": 15495, "ctxt": 0 }, "value": "Helper2", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 15495, "end": 15498, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 15496, "end": 15497, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15496, "end": 15497, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 15501, "end": 15522, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsIndexedAccessType", "span": { "start": 15501, "end": 15514, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 15501, "end": 15511, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15501, "end": 15508, "ctxt": 0 }, "value": "Helper2", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 15508, "end": 15511, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 15509, "end": 15510, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15509, "end": 15510, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } }, "indexType": { "type": "TsTypeReference", "span": { "start": 15512, "end": 15513, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15512, "end": 15513, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } }, "indexType": { "type": "TsLiteralType", "span": { "start": 15515, "end": 15521, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 15515, "end": 15521, "ctxt": 0 }, "value": "prop", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 15526, "end": 15596, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 15531, "end": 15538, "ctxt": 0 }, "value": "Result2", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 15541, "end": 15595, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15541, "end": 15549, "ctxt": 0 }, "value": "Example2", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 15549, "end": 15595, "ctxt": 0 }, "params": [ { "type": "TsTypeLiteral", "span": { "start": 15550, "end": 15594, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 15552, "end": 15572, "ctxt": 0 }, "readonly": false, "key": { "type": "NumericLiteral", "span": { "start": 15552, "end": 15553, "ctxt": 0 }, "value": 1.0 }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 15553, "end": 15571, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 15555, "end": 15571, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 15557, "end": 15569, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 15557, "end": 15561, "ctxt": 0 }, "value": "prop", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 15561, "end": 15569, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 15563, "end": 15569, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 15573, "end": 15592, "ctxt": 0 }, "readonly": false, "key": { "type": "NumericLiteral", "span": { "start": 15573, "end": 15574, "ctxt": 0 }, "value": 2.0 }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 15574, "end": 15592, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 15576, "end": 15592, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 15578, "end": 15590, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 15578, "end": 15582, "ctxt": 0 }, "value": "prop", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 15582, "end": 15590, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 15584, "end": 15590, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, "typeParams": null } ] } ] } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 15620, "end": 15676, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 15625, "end": 15636, "ctxt": 0 }, "value": "DBBoolTable", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 15636, "end": 15654, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 15637, "end": 15653, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 15637, "end": 15638, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsKeywordType", "span": { "start": 15647, "end": 15653, "ctxt": 0 }, "kind": "string" }, "default": null } ] }, "typeAnnotation": { "type": "TsMappedType", "span": { "start": 15657, "end": 15676, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 15660, "end": 15666, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 15660, "end": 15661, "ctxt": 0 }, "value": "k", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 15665, "end": 15666, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15665, "end": 15666, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 15669, "end": 15674, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 15669, "end": 15670, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 15669, "end": 15670, "ctxt": 0 }, "value": 0.0 } }, { "type": "TsLiteralType", "span": { "start": 15673, "end": 15674, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 15673, "end": 15674, "ctxt": 0 }, "value": 1.0 } } ] } } }, { "type": "TsEnumDeclaration", "span": { "start": 15678, "end": 15736, "ctxt": 0 }, "declare": false, "isConst": false, "id": { "type": "Identifier", "span": { "start": 15683, "end": 15687, "ctxt": 0 }, "value": "Flag", "optional": false }, "members": [ { "type": "TsEnumMember", "span": { "start": 15694, "end": 15711, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 15694, "end": 15700, "ctxt": 0 }, "value": "FLAG_1", "optional": false }, "init": { "type": "StringLiteral", "span": { "start": 15703, "end": 15711, "ctxt": 0 }, "value": "flag_1", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "type": "TsEnumMember", "span": { "start": 15717, "end": 15734, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 15717, "end": 15723, "ctxt": 0 }, "value": "FLAG_2", "optional": false }, "init": { "type": "StringLiteral", "span": { "start": 15726, "end": 15734, "ctxt": 0 }, "value": "flag_2", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] }, { "type": "TsTypeAliasDeclaration", "span": { "start": 15738, "end": 15824, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 15743, "end": 15757, "ctxt": 0 }, "value": "SimpleDBRecord", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 15757, "end": 15778, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 15758, "end": 15777, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 15758, "end": 15762, "ctxt": 0 }, "value": "Flag", "optional": false }, "constraint": { "type": "TsKeywordType", "span": { "start": 15771, "end": 15777, "ctxt": 0 }, "kind": "string" }, "default": null } ] }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 15781, "end": 15824, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 15781, "end": 15804, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 15783, "end": 15802, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 15783, "end": 15794, "ctxt": 0 }, "value": "staticField", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 15794, "end": 15802, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 15796, "end": 15802, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] }, { "type": "TsTypeReference", "span": { "start": 15807, "end": 15824, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15807, "end": 15818, "ctxt": 0 }, "value": "DBBoolTable", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 15818, "end": 15824, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 15819, "end": 15823, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15819, "end": 15823, "ctxt": 0 }, "value": "Flag", "optional": false }, "typeParams": null } ] } } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 15834, "end": 15858, "ctxt": 0 }, "value": "getFlagsFromSimpleRecord", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 15880, "end": 15908, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 15880, "end": 15908, "ctxt": 0 }, "value": "record", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 15886, "end": 15908, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 15888, "end": 15908, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15888, "end": 15902, "ctxt": 0 }, "value": "SimpleDBRecord", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 15902, "end": 15908, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 15903, "end": 15907, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15903, "end": 15907, "ctxt": 0 }, "value": "Flag", "optional": false }, "typeParams": null } ] } } } } }, { "type": "Parameter", "span": { "start": 15910, "end": 15923, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 15910, "end": 15923, "ctxt": 0 }, "value": "flags", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 15915, "end": 15923, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 15917, "end": 15923, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 15917, "end": 15921, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 15917, "end": 15921, "ctxt": 0 }, "value": "Flag", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 15825, "end": 15957, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 15925, "end": 15957, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 15931, "end": 15955, "ctxt": 0 }, "argument": { "type": "MemberExpression", "span": { "start": 15938, "end": 15954, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 15938, "end": 15944, "ctxt": 0 }, "value": "record", "optional": false }, "property": { "type": "Computed", "span": { "start": 15944, "end": 15954, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 15945, "end": 15953, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 15945, "end": 15950, "ctxt": 0 }, "value": "flags", "optional": false }, "property": { "type": "Computed", "span": { "start": 15950, "end": 15953, "ctxt": 0 }, "expression": { "type": "NumericLiteral", "span": { "start": 15951, "end": 15952, "ctxt": 0 }, "value": 0.0 } } } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 15858, "end": 15879, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 15859, "end": 15878, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 15859, "end": 15863, "ctxt": 0 }, "value": "Flag", "optional": false }, "constraint": { "type": "TsKeywordType", "span": { "start": 15872, "end": 15878, "ctxt": 0 }, "kind": "string" }, "default": null } ] }, "returnType": null }, { "type": "TsTypeAliasDeclaration", "span": { "start": 15959, "end": 16076, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 15964, "end": 15979, "ctxt": 0 }, "value": "DynamicDBRecord", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 15979, "end": 16000, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 15980, "end": 15999, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 15980, "end": 15984, "ctxt": 0 }, "value": "Flag", "optional": false }, "constraint": { "type": "TsKeywordType", "span": { "start": 15993, "end": 15999, "ctxt": 0 }, "kind": "string" }, "default": null } ] }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 16003, "end": 16076, "ctxt": 0 }, "types": [ { "type": "TsParenthesizedType", "span": { "start": 16003, "end": 16056, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 16004, "end": 16055, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 16004, "end": 16028, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 16006, "end": 16026, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 16006, "end": 16018, "ctxt": 0 }, "value": "dynamicField", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 16018, "end": 16026, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 16020, "end": 16026, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] }, { "type": "TsTypeLiteral", "span": { "start": 16031, "end": 16055, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 16033, "end": 16053, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 16033, "end": 16045, "ctxt": 0 }, "value": "dynamicField", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 16045, "end": 16053, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 16047, "end": 16053, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } ] } }, { "type": "TsTypeReference", "span": { "start": 16059, "end": 16076, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16059, "end": 16070, "ctxt": 0 }, "value": "DBBoolTable", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 16070, "end": 16076, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 16071, "end": 16075, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16071, "end": 16075, "ctxt": 0 }, "value": "Flag", "optional": false }, "typeParams": null } ] } } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 16086, "end": 16111, "ctxt": 0 }, "value": "getFlagsFromDynamicRecord", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 16133, "end": 16162, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 16133, "end": 16162, "ctxt": 0 }, "value": "record", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 16139, "end": 16162, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 16141, "end": 16162, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16141, "end": 16156, "ctxt": 0 }, "value": "DynamicDBRecord", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 16156, "end": 16162, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 16157, "end": 16161, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16157, "end": 16161, "ctxt": 0 }, "value": "Flag", "optional": false }, "typeParams": null } ] } } } } }, { "type": "Parameter", "span": { "start": 16164, "end": 16177, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 16164, "end": 16177, "ctxt": 0 }, "value": "flags", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 16169, "end": 16177, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 16171, "end": 16177, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 16171, "end": 16175, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16171, "end": 16175, "ctxt": 0 }, "value": "Flag", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 16077, "end": 16211, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 16179, "end": 16211, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 16185, "end": 16209, "ctxt": 0 }, "argument": { "type": "MemberExpression", "span": { "start": 16192, "end": 16208, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 16192, "end": 16198, "ctxt": 0 }, "value": "record", "optional": false }, "property": { "type": "Computed", "span": { "start": 16198, "end": 16208, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 16199, "end": 16207, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 16199, "end": 16204, "ctxt": 0 }, "value": "flags", "optional": false }, "property": { "type": "Computed", "span": { "start": 16204, "end": 16207, "ctxt": 0 }, "expression": { "type": "NumericLiteral", "span": { "start": 16205, "end": 16206, "ctxt": 0 }, "value": 0.0 } } } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 16111, "end": 16132, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 16112, "end": 16131, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 16112, "end": 16116, "ctxt": 0 }, "value": "Flag", "optional": false }, "constraint": { "type": "TsKeywordType", "span": { "start": 16125, "end": 16131, "ctxt": 0 }, "kind": "string" }, "default": null } ] }, "returnType": null }, { "type": "TsInterfaceDeclaration", "span": { "start": 16235, "end": 16267, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 16245, "end": 16246, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 16247, "end": 16267, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 16253, "end": 16265, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 16253, "end": 16256, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 16256, "end": 16264, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 16258, "end": 16264, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 16286, "end": 16290, "ctxt": 0 }, "value": "take", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 16294, "end": 16298, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 16294, "end": 16298, "ctxt": 0 }, "value": "p", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 16295, "end": 16298, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 16297, "end": 16298, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16297, "end": 16298, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 16269, "end": 16306, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 16290, "end": 16293, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 16291, "end": 16292, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 16291, "end": 16292, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 16299, "end": 16305, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 16301, "end": 16305, "ctxt": 0 }, "kind": "void" } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 16317, "end": 16319, "ctxt": 0 }, "value": "fn", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 16352, "end": 16356, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 16352, "end": 16356, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 16353, "end": 16356, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 16355, "end": 16356, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16355, "end": 16356, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 16358, "end": 16362, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 16358, "end": 16362, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 16359, "end": 16362, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 16361, "end": 16362, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16361, "end": 16362, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 16308, "end": 16427, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 16364, "end": 16427, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 16370, "end": 16404, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 16370, "end": 16403, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 16370, "end": 16374, "ctxt": 0 }, "value": "take", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "MemberExpression", "span": { "start": 16398, "end": 16402, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 16398, "end": 16399, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 16399, "end": 16402, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 16400, "end": 16401, "ctxt": 0 }, "value": "k", "optional": false } } } } ], "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 16374, "end": 16397, "ctxt": 0 }, "params": [ { "type": "TsUnionType", "span": { "start": 16375, "end": 16396, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 16375, "end": 16377, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 16380, "end": 16384, "ctxt": 0 }, "kind": "null" }, { "type": "TsKeywordType", "span": { "start": 16387, "end": 16396, "ctxt": 0 }, "kind": "undefined" } ] } ] } } }, { "type": "ExpressionStatement", "span": { "start": 16409, "end": 16425, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 16409, "end": 16424, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 16409, "end": 16413, "ctxt": 0 }, "value": "take", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "MemberExpression", "span": { "start": 16419, "end": 16423, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 16419, "end": 16420, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 16420, "end": 16423, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 16421, "end": 16422, "ctxt": 0 }, "value": "k", "optional": false } } } } ], "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 16413, "end": 16418, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 16414, "end": 16417, "ctxt": 0 }, "kind": "any" } ] } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 16319, "end": 16351, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 16320, "end": 16331, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 16320, "end": 16321, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 16330, "end": 16331, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16330, "end": 16331, "ctxt": 0 }, "value": "I", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 16333, "end": 16350, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 16333, "end": 16334, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 16343, "end": 16350, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 16349, "end": 16350, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16349, "end": 16350, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 16457, "end": 16466, "ctxt": 0 }, "value": "Unbounded", "optional": false }, "declare": false, "span": { "start": 16451, "end": 16546, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 16476, "end": 16544, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 16476, "end": 16479, "ctxt": 0 }, "value": "foo", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 16480, "end": 16493, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 16480, "end": 16493, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 16481, "end": 16493, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 16483, "end": 16493, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 16483, "end": 16484, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16483, "end": 16484, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeOperator", "span": { "start": 16485, "end": 16492, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 16491, "end": 16492, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16491, "end": 16492, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } } ], "decorators": [], "span": { "start": 16476, "end": 16544, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 16495, "end": 16544, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 16505, "end": 16538, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 16509, "end": 16537, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 16509, "end": 16510, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 16510, "end": 16533, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 16512, "end": 16533, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 16512, "end": 16514, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 16517, "end": 16526, "ctxt": 0 }, "kind": "undefined" }, { "type": "TsKeywordType", "span": { "start": 16529, "end": 16533, "ctxt": 0 }, "kind": "null" } ] } } }, "init": { "type": "Identifier", "span": { "start": 16536, "end": 16537, "ctxt": 0 }, "value": "x", "optional": false }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false } ], "superClass": null, "isAbstract": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 16466, "end": 16469, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 16467, "end": 16468, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 16467, "end": 16468, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "superTypeParams": null, "implements": [] }, { "type": "TsInterfaceDeclaration", "span": { "start": 16570, "end": 16598, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 16580, "end": 16582, "ctxt": 0 }, "value": "I7", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 16583, "end": 16598, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 16589, "end": 16596, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 16589, "end": 16590, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 16590, "end": 16595, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 16592, "end": 16595, "ctxt": 0 }, "kind": "any" } }, "typeParams": null } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 16599, "end": 16631, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 16604, "end": 16608, "ctxt": 0 }, "value": "Foo7", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 16608, "end": 16626, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 16609, "end": 16625, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 16609, "end": 16610, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsKeywordType", "span": { "start": 16619, "end": 16625, "ctxt": 0 }, "kind": "number" }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 16629, "end": 16630, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16629, "end": 16630, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 16649, "end": 16651, "ctxt": 0 }, "value": "f7", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 16672, "end": 16679, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 16672, "end": 16679, "ctxt": 0 }, "value": "type", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 16676, "end": 16679, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 16678, "end": 16679, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16678, "end": 16679, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 16632, "end": 16694, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 16651, "end": 16671, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 16652, "end": 16670, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 16652, "end": 16653, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 16662, "end": 16670, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 16668, "end": 16670, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16668, "end": 16670, "ctxt": 0 }, "value": "I7", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 16680, "end": 16693, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 16682, "end": 16693, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16682, "end": 16686, "ctxt": 0 }, "value": "Foo7", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 16686, "end": 16693, "ctxt": 0 }, "params": [ { "type": "TsIndexedAccessType", "span": { "start": 16687, "end": 16692, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 16687, "end": 16689, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16687, "end": 16689, "ctxt": 0 }, "value": "I7", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 16690, "end": 16691, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16690, "end": 16691, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } ] } } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 16718, "end": 16771, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 16723, "end": 16727, "ctxt": 0 }, "value": "Dict", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 16727, "end": 16745, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 16728, "end": 16744, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 16728, "end": 16729, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsKeywordType", "span": { "start": 16738, "end": 16744, "ctxt": 0 }, "kind": "string" }, "default": null } ] }, "typeAnnotation": { "type": "TsMappedType", "span": { "start": 16748, "end": 16770, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 16751, "end": 16759, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 16751, "end": 16754, "ctxt": 0 }, "value": "key", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 16758, "end": 16759, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16758, "end": 16759, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 16762, "end": 16768, "ctxt": 0 }, "kind": "number" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 16772, "end": 16848, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 16777, "end": 16785, "ctxt": 0 }, "value": "DictDict", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 16785, "end": 16821, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 16786, "end": 16802, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 16786, "end": 16787, "ctxt": 0 }, "value": "V", "optional": false }, "constraint": { "type": "TsKeywordType", "span": { "start": 16796, "end": 16802, "ctxt": 0 }, "kind": "string" }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 16804, "end": 16820, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 16804, "end": 16805, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsKeywordType", "span": { "start": 16814, "end": 16820, "ctxt": 0 }, "kind": "string" }, "default": null } ] }, "typeAnnotation": { "type": "TsMappedType", "span": { "start": 16824, "end": 16847, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 16827, "end": 16835, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 16827, "end": 16830, "ctxt": 0 }, "value": "key", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 16834, "end": 16835, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16834, "end": 16835, "ctxt": 0 }, "value": "V", "optional": false }, "typeParams": null }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 16838, "end": 16845, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16838, "end": 16842, "ctxt": 0 }, "value": "Dict", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 16842, "end": 16845, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 16843, "end": 16844, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16843, "end": 16844, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 16859, "end": 16862, "ctxt": 0 }, "value": "ff1", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 16899, "end": 16917, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 16899, "end": 16917, "ctxt": 0 }, "value": "dd", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 16901, "end": 16917, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 16903, "end": 16917, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16903, "end": 16911, "ctxt": 0 }, "value": "DictDict", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 16911, "end": 16917, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 16912, "end": 16913, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16912, "end": 16913, "ctxt": 0 }, "value": "V", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 16915, "end": 16916, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16915, "end": 16916, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } } } }, { "type": "Parameter", "span": { "start": 16919, "end": 16924, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 16919, "end": 16924, "ctxt": 0 }, "value": "k1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 16921, "end": 16924, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 16923, "end": 16924, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16923, "end": 16924, "ctxt": 0 }, "value": "V", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 16926, "end": 16931, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 16926, "end": 16931, "ctxt": 0 }, "value": "k2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 16928, "end": 16931, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 16930, "end": 16931, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 16930, "end": 16931, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 16850, "end": 16967, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 16941, "end": 16967, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 16947, "end": 16965, "ctxt": 0 }, "argument": { "type": "MemberExpression", "span": { "start": 16954, "end": 16964, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 16954, "end": 16960, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 16954, "end": 16956, "ctxt": 0 }, "value": "dd", "optional": false }, "property": { "type": "Computed", "span": { "start": 16956, "end": 16960, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 16957, "end": 16959, "ctxt": 0 }, "value": "k1", "optional": false } } }, "property": { "type": "Computed", "span": { "start": 16960, "end": 16964, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 16961, "end": 16963, "ctxt": 0 }, "value": "k2", "optional": false } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 16862, "end": 16898, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 16863, "end": 16879, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 16863, "end": 16864, "ctxt": 0 }, "value": "V", "optional": false }, "constraint": { "type": "TsKeywordType", "span": { "start": 16873, "end": 16879, "ctxt": 0 }, "kind": "string" }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 16881, "end": 16897, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 16881, "end": 16882, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsKeywordType", "span": { "start": 16891, "end": 16897, "ctxt": 0 }, "kind": "string" }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 16932, "end": 16940, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 16934, "end": 16940, "ctxt": 0 }, "kind": "number" } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 16978, "end": 16981, "ctxt": 0 }, "value": "ff2", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 17018, "end": 17036, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 17018, "end": 17036, "ctxt": 0 }, "value": "dd", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 17020, "end": 17036, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 17022, "end": 17036, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 17022, "end": 17030, "ctxt": 0 }, "value": "DictDict", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 17030, "end": 17036, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 17031, "end": 17032, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 17031, "end": 17032, "ctxt": 0 }, "value": "V", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 17034, "end": 17035, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 17034, "end": 17035, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } } } }, { "type": "Parameter", "span": { "start": 17038, "end": 17043, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 17038, "end": 17043, "ctxt": 0 }, "value": "k1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 17040, "end": 17043, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 17042, "end": 17043, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 17042, "end": 17043, "ctxt": 0 }, "value": "V", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 17045, "end": 17050, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 17045, "end": 17050, "ctxt": 0 }, "value": "k2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 17047, "end": 17050, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 17049, "end": 17050, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 17049, "end": 17050, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 16969, "end": 17112, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 17060, "end": 17112, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 17066, "end": 17092, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 17072, "end": 17091, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 17072, "end": 17073, "ctxt": 0 }, "value": "d", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 17073, "end": 17082, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 17075, "end": 17082, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 17075, "end": 17079, "ctxt": 0 }, "value": "Dict", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 17079, "end": 17082, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 17080, "end": 17081, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 17080, "end": 17081, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } } }, "init": { "type": "MemberExpression", "span": { "start": 17085, "end": 17091, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 17085, "end": 17087, "ctxt": 0 }, "value": "dd", "optional": false }, "property": { "type": "Computed", "span": { "start": 17087, "end": 17091, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 17088, "end": 17090, "ctxt": 0 }, "value": "k1", "optional": false } } }, "definite": false } ] }, { "type": "ReturnStatement", "span": { "start": 17097, "end": 17110, "ctxt": 0 }, "argument": { "type": "MemberExpression", "span": { "start": 17104, "end": 17109, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 17104, "end": 17105, "ctxt": 0 }, "value": "d", "optional": false }, "property": { "type": "Computed", "span": { "start": 17105, "end": 17109, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 17106, "end": 17108, "ctxt": 0 }, "value": "k2", "optional": false } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 16981, "end": 17017, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 16982, "end": 16998, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 16982, "end": 16983, "ctxt": 0 }, "value": "V", "optional": false }, "constraint": { "type": "TsKeywordType", "span": { "start": 16992, "end": 16998, "ctxt": 0 }, "kind": "string" }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 17000, "end": 17016, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 17000, "end": 17001, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsKeywordType", "span": { "start": 17010, "end": 17016, "ctxt": 0 }, "kind": "string" }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 17051, "end": 17059, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 17053, "end": 17059, "ctxt": 0 }, "kind": "number" } } }, { "type": "VariableDeclaration", "span": { "start": 17136, "end": 17280, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 17142, "end": 17279, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 17142, "end": 17145, "ctxt": 0 }, "value": "cf1", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 17148, "end": 17279, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 17221, "end": 17225, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 17222, "end": 17225, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 17224, "end": 17225, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 17224, "end": 17225, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 17227, "end": 17231, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 17228, "end": 17231, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 17230, "end": 17231, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 17230, "end": 17231, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } ], "body": { "type": "BlockStatement", "span": { "start": 17236, "end": 17279, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 17242, "end": 17265, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 17248, "end": 17264, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 17248, "end": 17249, "ctxt": 0 }, "value": "s", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 17249, "end": 17257, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 17251, "end": 17257, "ctxt": 0 }, "kind": "string" } } }, "init": { "type": "MemberExpression", "span": { "start": 17260, "end": 17264, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 17260, "end": 17261, "ctxt": 0 }, "value": "t", "optional": false }, "property": { "type": "Computed", "span": { "start": 17261, "end": 17264, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 17262, "end": 17263, "ctxt": 0 }, "value": "k", "optional": false } } }, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 17270, "end": 17277, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 17270, "end": 17276, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 17270, "end": 17271, "ctxt": 0 }, "value": "t", "optional": false }, "property": { "type": "Identifier", "span": { "start": 17272, "end": 17276, "ctxt": 0 }, "value": "cool", "optional": false } } } ] }, "async": false, "generator": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 17148, "end": 17220, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 17149, "end": 17200, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 17149, "end": 17150, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsIntersectionType", "span": { "start": 17159, "end": 17200, "ctxt": 0 }, "types": [ { "type": "TsMappedType", "span": { "start": 17159, "end": 17180, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 17162, "end": 17168, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 17162, "end": 17163, "ctxt": 0 }, "value": "P", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 17167, "end": 17168, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 17167, "end": 17168, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 17171, "end": 17177, "ctxt": 0 }, "kind": "string" } }, { "type": "TsTypeLiteral", "span": { "start": 17183, "end": 17200, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 17185, "end": 17198, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 17185, "end": 17189, "ctxt": 0 }, "value": "cool", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 17189, "end": 17197, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 17191, "end": 17197, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } ] }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 17202, "end": 17219, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 17202, "end": 17203, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 17212, "end": 17219, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 17218, "end": 17219, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 17218, "end": 17219, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 17282, "end": 17415, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 17288, "end": 17414, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 17288, "end": 17291, "ctxt": 0 }, "value": "cf2", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 17294, "end": 17414, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 17356, "end": 17360, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 17357, "end": 17360, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 17359, "end": 17360, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 17359, "end": 17360, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 17362, "end": 17366, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 17363, "end": 17366, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 17365, "end": 17366, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 17365, "end": 17366, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } ], "body": { "type": "BlockStatement", "span": { "start": 17371, "end": 17414, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 17377, "end": 17400, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 17383, "end": 17399, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 17383, "end": 17384, "ctxt": 0 }, "value": "s", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 17384, "end": 17392, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 17386, "end": 17392, "ctxt": 0 }, "kind": "string" } } }, "init": { "type": "MemberExpression", "span": { "start": 17395, "end": 17399, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 17395, "end": 17396, "ctxt": 0 }, "value": "t", "optional": false }, "property": { "type": "Computed", "span": { "start": 17396, "end": 17399, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 17397, "end": 17398, "ctxt": 0 }, "value": "k", "optional": false } } }, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 17405, "end": 17412, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 17405, "end": 17411, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 17405, "end": 17406, "ctxt": 0 }, "value": "t", "optional": false }, "property": { "type": "Identifier", "span": { "start": 17407, "end": 17411, "ctxt": 0 }, "value": "cool", "optional": false } } } ] }, "async": false, "generator": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 17294, "end": 17355, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 17295, "end": 17335, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 17295, "end": 17296, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsMappedType", "span": { "start": 17305, "end": 17335, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 17308, "end": 17323, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 17308, "end": 17309, "ctxt": 0 }, "value": "P", "optional": false }, "constraint": { "type": "TsUnionType", "span": { "start": 17313, "end": 17323, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 17313, "end": 17314, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 17313, "end": 17314, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null }, { "type": "TsLiteralType", "span": { "start": 17317, "end": 17323, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 17317, "end": 17323, "ctxt": 0 }, "value": "cool", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 17326, "end": 17332, "ctxt": 0 }, "kind": "string" } }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 17337, "end": 17354, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 17337, "end": 17338, "ctxt": 0 }, "value": "K", "optional": false }, "constraint": { "type": "TsTypeOperator", "span": { "start": 17347, "end": 17354, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 17353, "end": 17354, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 17353, "end": 17354, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": null }, "definite": false } ] } ], "interpreter": null }