{ "type": "Script", "span": { "start": 56, "end": 1334, "ctxt": 0 }, "body": [ { "type": "VariableDeclaration", "span": { "start": 56, "end": 67, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 60, "end": 66, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 60, "end": 61, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 61, "end": 66, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 63, "end": 66, "ctxt": 0 }, "kind": "any" } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 68, "end": 86, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 72, "end": 85, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 72, "end": 73, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 73, "end": 85, "ctxt": 0 }, "typeAnnotation": { "type": "TsTupleType", "span": { "start": 75, "end": 85, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 76, "end": 79, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 76, "end": 79, "ctxt": 0 }, "kind": "any" } }, { "type": "TsTupleElement", "span": { "start": 81, "end": 84, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 81, "end": 84, "ctxt": 0 }, "kind": "any" } } ] } } }, "init": null, "definite": false } ] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 104, "end": 106, "ctxt": 0 }, "value": "f1", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 110, "end": 114, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 110, "end": 114, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 111, "end": 114, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 113, "end": 114, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 113, "end": 114, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 87, "end": 118, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 106, "end": 109, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 107, "end": 108, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 107, "end": 108, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 115, "end": 118, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 117, "end": 118, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 117, "end": 118, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 136, "end": 138, "ctxt": 0 }, "value": "f2", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 142, "end": 148, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 142, "end": 148, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 143, "end": 148, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 145, "end": 148, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 145, "end": 146, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 145, "end": 146, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 119, "end": 153, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 138, "end": 141, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 139, "end": 140, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 139, "end": 140, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 149, "end": 152, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 151, "end": 152, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 151, "end": 152, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 171, "end": 173, "ctxt": 0 }, "value": "f3", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 180, "end": 189, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 180, "end": 189, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 181, "end": 189, "ctxt": 0 }, "typeAnnotation": { "type": "TsTupleType", "span": { "start": 183, "end": 189, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 184, "end": 185, "ctxt": 0 }, "label": null, "ty": { "type": "TsTypeReference", "span": { "start": 184, "end": 185, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 184, "end": 185, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, { "type": "TsTupleElement", "span": { "start": 187, "end": 188, "ctxt": 0 }, "label": null, "ty": { "type": "TsTypeReference", "span": { "start": 187, "end": 188, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 187, "end": 188, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } ] } } } } ], "decorators": [], "span": { "start": 154, "end": 199, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 173, "end": 179, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 174, "end": 175, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 174, "end": 175, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 177, "end": 178, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 177, "end": 178, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 190, "end": 198, "ctxt": 0 }, "typeAnnotation": { "type": "TsTupleType", "span": { "start": 192, "end": 198, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 193, "end": 194, "ctxt": 0 }, "label": null, "ty": { "type": "TsTypeReference", "span": { "start": 193, "end": 194, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 193, "end": 194, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, { "type": "TsTupleElement", "span": { "start": 196, "end": 197, "ctxt": 0 }, "label": null, "ty": { "type": "TsTypeReference", "span": { "start": 196, "end": 197, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 196, "end": 197, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } ] } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 217, "end": 219, "ctxt": 0 }, "value": "f4", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 223, "end": 244, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 223, "end": 244, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 224, "end": 244, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 226, "end": 244, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 228, "end": 235, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 228, "end": 231, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 231, "end": 234, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 233, "end": 234, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 233, "end": 234, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 236, "end": 242, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 236, "end": 239, "ctxt": 0 }, "value": "baz", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 239, "end": 242, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 241, "end": 242, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 241, "end": 242, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } } ], "decorators": [], "span": { "start": 200, "end": 249, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 219, "end": 222, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 220, "end": 221, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 220, "end": 221, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 245, "end": 248, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 247, "end": 248, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 247, "end": 248, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 267, "end": 269, "ctxt": 0 }, "value": "f5", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 273, "end": 290, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 273, "end": 290, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 274, "end": 290, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 276, "end": 290, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 277, "end": 281, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 278, "end": 281, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 280, "end": 281, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 280, "end": 281, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 283, "end": 290, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 286, "end": 290, "ctxt": 0 }, "kind": "void" } } } } } } ], "decorators": [], "span": { "start": 250, "end": 295, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 269, "end": 272, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 270, "end": 271, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 270, "end": 271, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 291, "end": 294, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 293, "end": 294, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 293, "end": 294, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 313, "end": 315, "ctxt": 0 }, "value": "f6", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 319, "end": 338, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 319, "end": 338, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 320, "end": 338, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 322, "end": 338, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 327, "end": 331, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 328, "end": 331, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 330, "end": 331, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 330, "end": 331, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 333, "end": 338, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 336, "end": 338, "ctxt": 0 }, "members": [] } }, "isAbstract": false } } } } ], "decorators": [], "span": { "start": 296, "end": 343, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 315, "end": 318, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 316, "end": 317, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 316, "end": 317, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 339, "end": 342, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 341, "end": 342, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 341, "end": 342, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 361, "end": 363, "ctxt": 0 }, "value": "f7", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 367, "end": 388, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 367, "end": 388, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 368, "end": 388, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 370, "end": 388, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 371, "end": 377, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 372, "end": 377, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 374, "end": 377, "ctxt": 0 }, "kind": "any" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 379, "end": 388, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypePredicate", "span": { "start": 382, "end": 388, "ctxt": 0 }, "asserts": false, "paramName": { "type": "Identifier", "span": { "start": 382, "end": 383, "ctxt": 0 }, "value": "a", "optional": false }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 387, "end": 388, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 387, "end": 388, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 387, "end": 388, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } } } } ], "decorators": [], "span": { "start": 344, "end": 393, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 363, "end": 366, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 364, "end": 365, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 364, "end": 365, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 389, "end": 392, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 391, "end": 392, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 391, "end": 392, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 411, "end": 413, "ctxt": 0 }, "value": "f8", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 417, "end": 427, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 417, "end": 427, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 418, "end": 427, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 420, "end": 427, "ctxt": 0 }, "params": [], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 423, "end": 427, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 426, "end": 427, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 426, "end": 427, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } } ], "decorators": [], "span": { "start": 394, "end": 432, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 413, "end": 416, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 414, "end": 415, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 414, "end": 415, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 428, "end": 431, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 430, "end": 431, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 430, "end": 431, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 450, "end": 452, "ctxt": 0 }, "value": "f9", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 456, "end": 470, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 456, "end": 470, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 457, "end": 470, "ctxt": 0 }, "typeAnnotation": { "type": "TsConstructorType", "span": { "start": 459, "end": 470, "ctxt": 0 }, "params": [], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 466, "end": 470, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 469, "end": 470, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 469, "end": 470, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isAbstract": false } } } } ], "decorators": [], "span": { "start": 433, "end": 475, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 452, "end": 455, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 453, "end": 454, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 453, "end": 454, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 471, "end": 474, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 473, "end": 474, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 473, "end": 474, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 493, "end": 496, "ctxt": 0 }, "value": "f10", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 500, "end": 521, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 500, "end": 521, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 501, "end": 521, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 503, "end": 521, "ctxt": 0 }, "members": [ { "type": "TsIndexSignature", "params": [ { "type": "Identifier", "span": { "start": 506, "end": 515, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 507, "end": 515, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 509, "end": 515, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 516, "end": 519, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 518, "end": 519, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 518, "end": 519, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "readonly": false, "static": false, "span": { "start": 505, "end": 519, "ctxt": 0 } } ] } } } } ], "decorators": [], "span": { "start": 476, "end": 526, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 496, "end": 499, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 497, "end": 498, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 497, "end": 498, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 522, "end": 525, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 524, "end": 525, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 524, "end": 525, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 544, "end": 547, "ctxt": 0 }, "value": "f11", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 551, "end": 572, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 551, "end": 572, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 552, "end": 572, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 554, "end": 572, "ctxt": 0 }, "members": [ { "type": "TsIndexSignature", "params": [ { "type": "Identifier", "span": { "start": 557, "end": 566, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 558, "end": 566, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 560, "end": 566, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 567, "end": 570, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 569, "end": 570, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 569, "end": 570, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "readonly": false, "static": false, "span": { "start": 556, "end": 570, "ctxt": 0 } } ] } } } } ], "decorators": [], "span": { "start": 527, "end": 577, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 547, "end": 550, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 548, "end": 549, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 548, "end": 549, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 573, "end": 576, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 575, "end": 576, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 575, "end": 576, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 595, "end": 598, "ctxt": 0 }, "value": "f12", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 605, "end": 613, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 605, "end": 613, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 606, "end": 613, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 608, "end": 613, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 608, "end": 609, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 608, "end": 609, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 612, "end": 613, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 612, "end": 613, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } ] } } } } ], "decorators": [], "span": { "start": 578, "end": 623, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 598, "end": 604, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 599, "end": 600, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 599, "end": 600, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 602, "end": 603, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 602, "end": 603, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 614, "end": 622, "ctxt": 0 }, "typeAnnotation": { "type": "TsTupleType", "span": { "start": 616, "end": 622, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 617, "end": 618, "ctxt": 0 }, "label": null, "ty": { "type": "TsTypeReference", "span": { "start": 617, "end": 618, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 617, "end": 618, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, { "type": "TsTupleElement", "span": { "start": 620, "end": 621, "ctxt": 0 }, "label": null, "ty": { "type": "TsTypeReference", "span": { "start": 620, "end": 621, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 620, "end": 621, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } ] } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 641, "end": 644, "ctxt": 0 }, "value": "f13", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 651, "end": 659, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 651, "end": 659, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 652, "end": 659, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 654, "end": 659, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 654, "end": 655, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 654, "end": 655, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 658, "end": 659, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 658, "end": 659, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } ] } } } } ], "decorators": [], "span": { "start": 624, "end": 669, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 644, "end": 650, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 645, "end": 646, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 645, "end": 646, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 648, "end": 649, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 648, "end": 649, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 660, "end": 668, "ctxt": 0 }, "typeAnnotation": { "type": "TsTupleType", "span": { "start": 662, "end": 668, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 663, "end": 664, "ctxt": 0 }, "label": null, "ty": { "type": "TsTypeReference", "span": { "start": 663, "end": 664, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 663, "end": 664, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, { "type": "TsTupleElement", "span": { "start": 666, "end": 667, "ctxt": 0 }, "label": null, "ty": { "type": "TsTypeReference", "span": { "start": 666, "end": 667, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 666, "end": 667, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } ] } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 687, "end": 690, "ctxt": 0 }, "value": "f14", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 697, "end": 722, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 697, "end": 722, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 698, "end": 722, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 700, "end": 722, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 702, "end": 711, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 702, "end": 703, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 703, "end": 710, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 705, "end": 710, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 705, "end": 706, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 705, "end": 706, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 709, "end": 710, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 709, "end": 710, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 712, "end": 720, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 712, "end": 713, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 713, "end": 720, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 715, "end": 720, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 715, "end": 716, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 715, "end": 716, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 719, "end": 720, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 719, "end": 720, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } }, "typeParams": null } ] } } } } ], "decorators": [], "span": { "start": 670, "end": 732, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 690, "end": 696, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 691, "end": 692, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 691, "end": 692, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 694, "end": 695, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 694, "end": 695, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 723, "end": 731, "ctxt": 0 }, "typeAnnotation": { "type": "TsTupleType", "span": { "start": 725, "end": 731, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 726, "end": 727, "ctxt": 0 }, "label": null, "ty": { "type": "TsTypeReference", "span": { "start": 726, "end": 727, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 726, "end": 727, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, { "type": "TsTupleElement", "span": { "start": 729, "end": 730, "ctxt": 0 }, "label": null, "ty": { "type": "TsTypeReference", "span": { "start": 729, "end": 730, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 729, "end": 730, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } ] } } }, { "type": "TsInterfaceDeclaration", "span": { "start": 733, "end": 751, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 743, "end": 744, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 744, "end": 747, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 745, "end": 746, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 745, "end": 746, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 748, "end": 751, "ctxt": 0 }, "body": [] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 769, "end": 772, "ctxt": 0 }, "value": "f15", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 776, "end": 783, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 776, "end": 783, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 777, "end": 783, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 779, "end": 783, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 779, "end": 780, "ctxt": 0 }, "value": "I", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 780, "end": 783, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 781, "end": 782, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 781, "end": 782, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } } } } ], "decorators": [], "span": { "start": 752, "end": 788, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 772, "end": 775, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 773, "end": 774, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 773, "end": 774, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 784, "end": 787, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 786, "end": 787, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 786, "end": 787, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 806, "end": 809, "ctxt": 0 }, "value": "f16", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 813, "end": 826, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 813, "end": 826, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 814, "end": 826, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 816, "end": 826, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 816, "end": 823, "ctxt": 0 }, "value": "Partial", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 823, "end": 826, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 824, "end": 825, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 824, "end": 825, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } } } } ], "decorators": [], "span": { "start": 789, "end": 831, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 809, "end": 812, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 810, "end": 811, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 810, "end": 811, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 827, "end": 830, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 829, "end": 830, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 829, "end": 830, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 849, "end": 852, "ctxt": 0 }, "value": "f17", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 859, "end": 881, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 859, "end": 881, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 860, "end": 881, "ctxt": 0 }, "typeAnnotation": { "type": "TsMappedType", "span": { "start": 862, "end": 881, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 864, "end": 876, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 864, "end": 865, "ctxt": 0 }, "value": "P", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeOperator", "span": { "start": 869, "end": 876, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 875, "end": 876, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 875, "end": 876, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 879, "end": 880, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 879, "end": 880, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 832, "end": 886, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 852, "end": 858, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 853, "end": 854, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 853, "end": 854, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 856, "end": 857, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 856, "end": 857, "ctxt": 0 }, "value": "K", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 882, "end": 885, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 884, "end": 885, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 884, "end": 885, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 904, "end": 907, "ctxt": 0 }, "value": "f18", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 930, "end": 949, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 930, "end": 949, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 931, "end": 949, "ctxt": 0 }, "typeAnnotation": { "type": "TsMappedType", "span": { "start": 933, "end": 949, "ctxt": 0 }, "readonly": null, "typeParam": { "type": "TsTypeParameter", "span": { "start": 935, "end": 941, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 935, "end": 936, "ctxt": 0 }, "value": "P", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeReference", "span": { "start": 940, "end": 941, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 940, "end": 941, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null }, "default": null }, "nameType": null, "optional": null, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 944, "end": 948, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 944, "end": 945, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 944, "end": 945, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 946, "end": 947, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 946, "end": 947, "ctxt": 0 }, "value": "P", "optional": false }, "typeParams": null } } } } } } ], "decorators": [], "span": { "start": 887, "end": 954, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 907, "end": 929, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 908, "end": 909, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 908, "end": 909, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 911, "end": 928, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 911, "end": 912, "ctxt": 0 }, "value": "K", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeOperator", "span": { "start": 921, "end": 928, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 927, "end": 928, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 927, "end": 928, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 950, "end": 953, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 952, "end": 953, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 952, "end": 953, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 972, "end": 975, "ctxt": 0 }, "value": "f19", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 998, "end": 1002, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 998, "end": 1002, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 999, "end": 1002, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1001, "end": 1002, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1001, "end": 1002, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 1004, "end": 1011, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1004, "end": 1011, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1005, "end": 1011, "ctxt": 0 }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 1007, "end": 1011, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 1007, "end": 1008, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1007, "end": 1008, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 1009, "end": 1010, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1009, "end": 1010, "ctxt": 0 }, "value": "K", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 955, "end": 1016, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 975, "end": 997, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 976, "end": 977, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 976, "end": 977, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 979, "end": 996, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 979, "end": 980, "ctxt": 0 }, "value": "K", "optional": false }, "in": false, "out": false, "constraint": { "type": "TsTypeOperator", "span": { "start": 989, "end": 996, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 995, "end": 996, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 995, "end": 996, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 1012, "end": 1015, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1014, "end": 1015, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1014, "end": 1015, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "VariableDeclaration", "span": { "start": 1037, "end": 1051, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1041, "end": 1050, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1041, "end": 1042, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1045, "end": 1050, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1045, "end": 1047, "ctxt": 0 }, "value": "f1", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1048, "end": 1049, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1052, "end": 1066, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1056, "end": 1065, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1056, "end": 1057, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1060, "end": 1065, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1060, "end": 1062, "ctxt": 0 }, "value": "f2", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1063, "end": 1064, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1067, "end": 1081, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1071, "end": 1080, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1071, "end": 1072, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1075, "end": 1080, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1075, "end": 1077, "ctxt": 0 }, "value": "f3", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1078, "end": 1079, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1082, "end": 1096, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1086, "end": 1095, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1086, "end": 1087, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1090, "end": 1095, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1090, "end": 1092, "ctxt": 0 }, "value": "f4", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1093, "end": 1094, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1097, "end": 1111, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1101, "end": 1110, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1101, "end": 1102, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1105, "end": 1110, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1105, "end": 1107, "ctxt": 0 }, "value": "f5", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1108, "end": 1109, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1112, "end": 1126, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1116, "end": 1125, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1116, "end": 1117, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1120, "end": 1125, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1120, "end": 1122, "ctxt": 0 }, "value": "f6", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1123, "end": 1124, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1127, "end": 1141, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1131, "end": 1140, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1131, "end": 1132, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1135, "end": 1140, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1135, "end": 1137, "ctxt": 0 }, "value": "f7", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1138, "end": 1139, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1142, "end": 1156, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1146, "end": 1155, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1146, "end": 1147, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1150, "end": 1155, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1150, "end": 1152, "ctxt": 0 }, "value": "f8", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1153, "end": 1154, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1157, "end": 1171, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1161, "end": 1170, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1161, "end": 1162, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1165, "end": 1170, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1165, "end": 1167, "ctxt": 0 }, "value": "f9", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1168, "end": 1169, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1172, "end": 1187, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1176, "end": 1186, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1176, "end": 1177, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1180, "end": 1186, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1180, "end": 1183, "ctxt": 0 }, "value": "f10", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1184, "end": 1185, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1188, "end": 1203, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1192, "end": 1202, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1192, "end": 1193, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1196, "end": 1202, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1196, "end": 1199, "ctxt": 0 }, "value": "f11", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1200, "end": 1201, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1204, "end": 1219, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1208, "end": 1218, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1208, "end": 1209, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1212, "end": 1218, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1212, "end": 1215, "ctxt": 0 }, "value": "f12", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1216, "end": 1217, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1220, "end": 1235, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1224, "end": 1234, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1224, "end": 1225, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1228, "end": 1234, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1228, "end": 1231, "ctxt": 0 }, "value": "f13", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1232, "end": 1233, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1236, "end": 1251, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1240, "end": 1250, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1240, "end": 1241, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1244, "end": 1250, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1244, "end": 1247, "ctxt": 0 }, "value": "f14", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1248, "end": 1249, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1252, "end": 1267, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1256, "end": 1266, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1256, "end": 1257, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1260, "end": 1266, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1260, "end": 1263, "ctxt": 0 }, "value": "f15", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1264, "end": 1265, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1268, "end": 1283, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1272, "end": 1282, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1272, "end": 1273, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1276, "end": 1282, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1276, "end": 1279, "ctxt": 0 }, "value": "f16", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1280, "end": 1281, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1284, "end": 1299, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1288, "end": 1298, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1288, "end": 1289, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1292, "end": 1298, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1292, "end": 1295, "ctxt": 0 }, "value": "f17", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1296, "end": 1297, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1300, "end": 1315, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1304, "end": 1314, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1304, "end": 1305, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1308, "end": 1314, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1308, "end": 1311, "ctxt": 0 }, "value": "f18", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1312, "end": 1313, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1316, "end": 1334, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1320, "end": 1333, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1320, "end": 1321, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1324, "end": 1333, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1324, "end": 1327, "ctxt": 0 }, "value": "f19", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1328, "end": 1329, "ctxt": 0 }, "value": "a", "optional": false } }, { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1331, "end": 1332, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] } ], "interpreter": null }