{ "type": "Script", "span": { "start": 102, "end": 3100, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 108, "end": 112, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 102, "end": 129, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 115, "end": 127, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 115, "end": 118, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 118, "end": 126, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 120, "end": 126, "ctxt": 0 }, "kind": "string" } }, "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": 136, "end": 143, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "span": { "start": 130, "end": 173, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 159, "end": 171, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 159, "end": 162, "ctxt": 0 }, "value": "bar", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 162, "end": 170, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 164, "end": 170, "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": 152, "end": 156, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 180, "end": 188, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "span": { "start": 174, "end": 221, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 207, "end": 219, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 207, "end": 210, "ctxt": 0 }, "value": "baz", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 210, "end": 218, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 212, "end": 218, "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": 197, "end": 204, "ctxt": 0 }, "value": "Derived", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 228, "end": 240, "ctxt": 0 }, "value": "OtherDerived", "optional": false }, "declare": false, "span": { "start": 222, "end": 271, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 256, "end": 269, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 256, "end": 260, "ctxt": 0 }, "value": "bing", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 260, "end": 268, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 262, "end": 268, "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": 249, "end": 253, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "TsInterfaceDeclaration", "span": { "start": 273, "end": 1571, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 283, "end": 284, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 285, "end": 1571, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 307, "end": 334, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 307, "end": 308, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 308, "end": 333, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 310, "end": 333, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 311, "end": 320, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 312, "end": 320, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 314, "end": 320, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 322, "end": 333, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 325, "end": 333, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 325, "end": 331, "ctxt": 0 }, "kind": "number" } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 339, "end": 367, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 339, "end": 341, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 341, "end": 366, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 343, "end": 366, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 344, "end": 353, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 345, "end": 353, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 347, "end": 353, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 355, "end": 366, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 358, "end": 366, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 358, "end": 364, "ctxt": 0 }, "kind": "string" } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 372, "end": 396, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 372, "end": 374, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 374, "end": 395, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 376, "end": 395, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 377, "end": 386, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 378, "end": 386, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 380, "end": 386, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 388, "end": 395, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 391, "end": 395, "ctxt": 0 }, "kind": "void" } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 401, "end": 438, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 401, "end": 403, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 403, "end": 437, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 405, "end": 437, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 406, "end": 415, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 407, "end": 415, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 409, "end": 415, "ctxt": 0 }, "kind": "string" } } }, { "type": "Identifier", "span": { "start": 417, "end": 426, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 418, "end": 426, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 420, "end": 426, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 428, "end": 437, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 431, "end": 437, "ctxt": 0 }, "kind": "string" } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 443, "end": 486, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 443, "end": 445, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 445, "end": 485, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 447, "end": 485, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 448, "end": 474, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 449, "end": 474, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 451, "end": 474, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 452, "end": 463, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 455, "end": 463, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 457, "end": 463, "ctxt": 0 }, "kind": "string" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 465, "end": 474, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 468, "end": 474, "ctxt": 0 }, "kind": "number" } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 476, "end": 485, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 479, "end": 485, "ctxt": 0 }, "kind": "string" } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 491, "end": 531, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 491, "end": 493, "ctxt": 0 }, "value": "a6", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 493, "end": 530, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 495, "end": 530, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 496, "end": 521, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 497, "end": 521, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 499, "end": 521, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 500, "end": 509, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 503, "end": 509, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 505, "end": 509, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 505, "end": 509, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 511, "end": 521, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 514, "end": 521, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 514, "end": 521, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 523, "end": 530, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 526, "end": 530, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 526, "end": 530, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 536, "end": 592, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 536, "end": 538, "ctxt": 0 }, "value": "a7", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 538, "end": 591, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 540, "end": 591, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 541, "end": 566, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 542, "end": 566, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 544, "end": 566, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 545, "end": 554, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 548, "end": 554, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 550, "end": 554, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 550, "end": 554, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 556, "end": 566, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 559, "end": 566, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 559, "end": 566, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 568, "end": 591, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 571, "end": 591, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 572, "end": 579, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 573, "end": 579, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 575, "end": 579, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 575, "end": 579, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 581, "end": 591, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 584, "end": 591, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 584, "end": 591, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 597, "end": 681, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 597, "end": 599, "ctxt": 0 }, "value": "a8", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 599, "end": 680, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 601, "end": 680, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 602, "end": 627, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 603, "end": 627, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 605, "end": 627, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 606, "end": 615, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 609, "end": 615, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 611, "end": 615, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 611, "end": 615, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 617, "end": 627, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 620, "end": 627, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 620, "end": 627, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 629, "end": 655, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 630, "end": 655, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 632, "end": 655, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 633, "end": 643, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 637, "end": 643, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 639, "end": 643, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 639, "end": 643, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 645, "end": 655, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 648, "end": 655, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 648, "end": 655, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 657, "end": 680, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 660, "end": 680, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 661, "end": 668, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 662, "end": 668, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 664, "end": 668, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 664, "end": 668, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 670, "end": 680, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 673, "end": 680, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 673, "end": 680, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 686, "end": 770, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 686, "end": 688, "ctxt": 0 }, "value": "a9", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 688, "end": 769, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 690, "end": 769, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 691, "end": 716, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 692, "end": 716, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 694, "end": 716, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 695, "end": 704, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 698, "end": 704, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 700, "end": 704, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 700, "end": 704, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 706, "end": 716, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 709, "end": 716, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 709, "end": 716, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 718, "end": 744, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 719, "end": 744, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 721, "end": 744, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 722, "end": 732, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 726, "end": 732, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 728, "end": 732, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 728, "end": 732, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 734, "end": 744, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 737, "end": 744, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 737, "end": 744, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 746, "end": 769, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 749, "end": 769, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 750, "end": 757, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 751, "end": 757, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 753, "end": 757, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 753, "end": 757, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 759, "end": 769, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 762, "end": 769, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 762, "end": 769, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 775, "end": 809, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 775, "end": 778, "ctxt": 0 }, "value": "a10", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 778, "end": 808, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 780, "end": 808, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 781, "end": 796, "ctxt": 0 }, "rest": { "start": 781, "end": 784, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 784, "end": 785, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 785, "end": 796, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 787, "end": 796, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 787, "end": 794, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 787, "end": 794, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 798, "end": 808, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 801, "end": 808, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 801, "end": 808, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 814, "end": 881, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 814, "end": 817, "ctxt": 0 }, "value": "a11", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 817, "end": 880, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 819, "end": 880, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 820, "end": 838, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 821, "end": 838, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 823, "end": 838, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 825, "end": 836, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 825, "end": 828, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 828, "end": 836, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 830, "end": 836, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } }, { "type": "Identifier", "span": { "start": 840, "end": 871, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 841, "end": 871, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 843, "end": 871, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 845, "end": 857, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 845, "end": 848, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 848, "end": 856, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 850, "end": 856, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 858, "end": 869, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 858, "end": 861, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 861, "end": 869, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 863, "end": 869, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 873, "end": 880, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 876, "end": 880, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 876, "end": 880, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 886, "end": 946, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 886, "end": 889, "ctxt": 0 }, "value": "a12", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 889, "end": 945, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 891, "end": 945, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 892, "end": 906, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 893, "end": 906, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 895, "end": 906, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 895, "end": 900, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 900, "end": 906, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 901, "end": 905, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 901, "end": 905, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 908, "end": 926, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 909, "end": 926, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 911, "end": 926, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 911, "end": 916, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 916, "end": 926, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 917, "end": 925, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 917, "end": 925, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null } ] } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 928, "end": 945, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 931, "end": 945, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 931, "end": 936, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 936, "end": 945, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 937, "end": 944, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 937, "end": 944, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 951, "end": 1010, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 951, "end": 954, "ctxt": 0 }, "value": "a13", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 954, "end": 1009, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 956, "end": 1009, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 957, "end": 971, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 958, "end": 971, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 960, "end": 971, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 960, "end": 965, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 965, "end": 971, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 966, "end": 970, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 966, "end": 970, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 973, "end": 990, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 974, "end": 990, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 976, "end": 990, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 976, "end": 981, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 981, "end": 990, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 982, "end": 989, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 982, "end": 989, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 992, "end": 1009, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 995, "end": 1009, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 995, "end": 1000, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1000, "end": 1009, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1001, "end": 1008, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1001, "end": 1008, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1015, "end": 1060, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1015, "end": 1018, "ctxt": 0 }, "value": "a14", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1018, "end": 1059, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1020, "end": 1059, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1021, "end": 1048, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1022, "end": 1048, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1024, "end": 1048, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1026, "end": 1036, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1026, "end": 1027, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1027, "end": 1035, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1029, "end": 1035, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1037, "end": 1046, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1037, "end": 1038, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1038, "end": 1046, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1040, "end": 1046, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1050, "end": 1059, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1053, "end": 1059, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1053, "end": 1059, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1065, "end": 1140, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1065, "end": 1068, "ctxt": 0 }, "value": "a15", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1068, "end": 1139, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1070, "end": 1139, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1080, "end": 1102, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1081, "end": 1090, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1082, "end": 1090, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1084, "end": 1090, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1091, "end": 1101, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1093, "end": 1101, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1093, "end": 1099, "ctxt": 0 }, "kind": "number" } } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1111, "end": 1133, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1112, "end": 1121, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1113, "end": 1121, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1115, "end": 1121, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1122, "end": 1132, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1124, "end": 1132, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1124, "end": 1130, "ctxt": 0 }, "kind": "string" } } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1145, "end": 1245, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1145, "end": 1148, "ctxt": 0 }, "value": "a16", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1148, "end": 1244, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1150, "end": 1244, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1160, "end": 1196, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1180, "end": 1184, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1181, "end": 1184, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1183, "end": 1184, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1183, "end": 1184, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1185, "end": 1195, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1187, "end": 1195, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1187, "end": 1193, "ctxt": 0 }, "kind": "number" } } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1160, "end": 1179, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1161, "end": 1178, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1161, "end": 1162, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1171, "end": 1178, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1171, "end": 1178, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1205, "end": 1238, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1222, "end": 1226, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1223, "end": 1226, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1225, "end": 1226, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1225, "end": 1226, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1227, "end": 1237, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1229, "end": 1237, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1229, "end": 1235, "ctxt": 0 }, "kind": "number" } } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1205, "end": 1221, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1206, "end": 1220, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1206, "end": 1207, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1216, "end": 1220, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1216, "end": 1220, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1250, "end": 1355, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1250, "end": 1253, "ctxt": 0 }, "value": "a17", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1253, "end": 1354, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1255, "end": 1354, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1265, "end": 1302, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1266, "end": 1290, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1267, "end": 1290, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1269, "end": 1290, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1270, "end": 1279, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1271, "end": 1279, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1273, "end": 1279, "ctxt": 0 }, "kind": "number" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1281, "end": 1290, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1284, "end": 1290, "ctxt": 0 }, "kind": "number" } } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1291, "end": 1301, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1293, "end": 1301, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1293, "end": 1299, "ctxt": 0 }, "kind": "number" } } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1311, "end": 1348, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1312, "end": 1336, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1313, "end": 1336, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1315, "end": 1336, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1316, "end": 1325, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1317, "end": 1325, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1319, "end": 1325, "ctxt": 0 }, "kind": "string" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1327, "end": 1336, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1330, "end": 1336, "ctxt": 0 }, "kind": "string" } } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1337, "end": 1347, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1339, "end": 1347, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1339, "end": 1345, "ctxt": 0 }, "kind": "string" } } }, "typeParams": null } ] } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1360, "end": 1569, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1360, "end": 1363, "ctxt": 0 }, "value": "a18", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1363, "end": 1568, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1365, "end": 1568, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1375, "end": 1465, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1376, "end": 1456, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1377, "end": 1456, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1379, "end": 1456, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1393, "end": 1413, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1394, "end": 1403, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1395, "end": 1403, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1397, "end": 1403, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1404, "end": 1412, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1406, "end": 1412, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1426, "end": 1446, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1427, "end": 1436, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1428, "end": 1436, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1430, "end": 1436, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1437, "end": 1445, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1439, "end": 1445, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1457, "end": 1464, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1459, "end": 1464, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1459, "end": 1462, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1474, "end": 1562, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1475, "end": 1553, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1476, "end": 1553, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1478, "end": 1553, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 1492, "end": 1514, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1493, "end": 1503, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1494, "end": 1503, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1496, "end": 1503, "ctxt": 0 }, "kind": "boolean" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1504, "end": 1513, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1506, "end": 1513, "ctxt": 0 }, "kind": "boolean" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1527, "end": 1543, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1528, "end": 1535, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1529, "end": 1535, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1531, "end": 1535, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1531, "end": 1535, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1536, "end": 1542, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1538, "end": 1542, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1538, "end": 1542, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1554, "end": 1561, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1556, "end": 1561, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1556, "end": 1559, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null } ] } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1580, "end": 3100, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1590, "end": 1591, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1600, "end": 1601, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1600, "end": 1601, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1602, "end": 3100, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1619, "end": 1639, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1619, "end": 1620, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1620, "end": 1638, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1622, "end": 1638, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1626, "end": 1630, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1627, "end": 1630, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1629, "end": 1630, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1629, "end": 1630, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1622, "end": 1625, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1623, "end": 1624, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1623, "end": 1624, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1632, "end": 1638, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1635, "end": 1638, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1635, "end": 1636, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1635, "end": 1636, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1701, "end": 1727, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1701, "end": 1703, "ctxt": 0 }, "value": "a2", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1703, "end": 1726, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1705, "end": 1726, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1709, "end": 1713, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1710, "end": 1713, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1712, "end": 1713, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1712, "end": 1713, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1705, "end": 1708, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1706, "end": 1707, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1706, "end": 1707, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1715, "end": 1726, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1718, "end": 1726, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1718, "end": 1724, "ctxt": 0 }, "kind": "string" } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1738, "end": 1757, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1738, "end": 1740, "ctxt": 0 }, "value": "a3", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1740, "end": 1756, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1742, "end": 1756, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1746, "end": 1750, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1747, "end": 1750, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1749, "end": 1750, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1749, "end": 1750, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1742, "end": 1745, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1743, "end": 1744, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1743, "end": 1744, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1752, "end": 1756, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1755, "end": 1756, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1755, "end": 1756, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1792, "end": 1820, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1792, "end": 1794, "ctxt": 0 }, "value": "a4", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1794, "end": 1819, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1796, "end": 1819, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1803, "end": 1807, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1804, "end": 1807, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1806, "end": 1807, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1806, "end": 1807, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 1809, "end": 1813, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1810, "end": 1813, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1812, "end": 1813, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1812, "end": 1813, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1796, "end": 1802, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1797, "end": 1798, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1797, "end": 1798, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1800, "end": 1801, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1800, "end": 1801, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1815, "end": 1819, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1818, "end": 1819, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1818, "end": 1819, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1895, "end": 1929, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1895, "end": 1897, "ctxt": 0 }, "value": "a5", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1897, "end": 1928, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1899, "end": 1928, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1906, "end": 1922, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1907, "end": 1922, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1909, "end": 1922, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1910, "end": 1916, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1913, "end": 1916, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1915, "end": 1916, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1915, "end": 1916, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1918, "end": 1922, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1921, "end": 1922, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1921, "end": 1922, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1899, "end": 1905, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1900, "end": 1901, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1900, "end": 1901, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1903, "end": 1904, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1903, "end": 1904, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1924, "end": 1928, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1927, "end": 1928, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1927, "end": 1928, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1996, "end": 2059, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1996, "end": 1998, "ctxt": 0 }, "value": "a6", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1998, "end": 2058, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2000, "end": 2058, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2036, "end": 2052, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2037, "end": 2052, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2039, "end": 2052, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2040, "end": 2046, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2043, "end": 2046, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2045, "end": 2046, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2045, "end": 2046, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2048, "end": 2052, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2051, "end": 2052, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2051, "end": 2052, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2000, "end": 2035, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2001, "end": 2015, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2001, "end": 2002, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2011, "end": 2015, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2011, "end": 2015, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2017, "end": 2034, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2017, "end": 2018, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2027, "end": 2034, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2027, "end": 2034, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2054, "end": 2058, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2057, "end": 2058, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2057, "end": 2058, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2113, "end": 2186, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2113, "end": 2115, "ctxt": 0 }, "value": "a7", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2115, "end": 2185, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2117, "end": 2185, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2153, "end": 2169, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2154, "end": 2169, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2156, "end": 2169, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2157, "end": 2163, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2160, "end": 2163, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2162, "end": 2163, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2162, "end": 2163, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2165, "end": 2169, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2168, "end": 2169, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2168, "end": 2169, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2117, "end": 2152, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2118, "end": 2132, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2118, "end": 2119, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2128, "end": 2132, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2128, "end": 2132, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2134, "end": 2151, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2134, "end": 2135, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2144, "end": 2151, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2144, "end": 2151, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2171, "end": 2185, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2174, "end": 2185, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2175, "end": 2179, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2176, "end": 2179, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2178, "end": 2179, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2178, "end": 2179, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2181, "end": 2185, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2184, "end": 2185, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2184, "end": 2185, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2197, "end": 2289, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2197, "end": 2199, "ctxt": 0 }, "value": "a8", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2199, "end": 2288, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2201, "end": 2288, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2237, "end": 2253, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2238, "end": 2253, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2240, "end": 2253, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2241, "end": 2247, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2244, "end": 2247, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2246, "end": 2247, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2246, "end": 2247, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2249, "end": 2253, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2252, "end": 2253, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2252, "end": 2253, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 2255, "end": 2272, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2256, "end": 2272, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2258, "end": 2272, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2259, "end": 2266, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2263, "end": 2266, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2265, "end": 2266, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2265, "end": 2266, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2268, "end": 2272, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2271, "end": 2272, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2271, "end": 2272, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2201, "end": 2236, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2202, "end": 2216, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2202, "end": 2203, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2212, "end": 2216, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2212, "end": 2216, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2218, "end": 2235, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2218, "end": 2219, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2228, "end": 2235, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2228, "end": 2235, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2274, "end": 2288, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2277, "end": 2288, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2278, "end": 2282, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2279, "end": 2282, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2281, "end": 2282, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2281, "end": 2282, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2284, "end": 2288, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2287, "end": 2288, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2287, "end": 2288, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2300, "end": 2420, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2300, "end": 2302, "ctxt": 0 }, "value": "a9", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2302, "end": 2419, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2304, "end": 2419, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2340, "end": 2356, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2341, "end": 2356, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2343, "end": 2356, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2344, "end": 2350, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2347, "end": 2350, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2349, "end": 2350, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2349, "end": 2350, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2352, "end": 2356, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2355, "end": 2356, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2355, "end": 2356, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, { "type": "Identifier", "span": { "start": 2358, "end": 2403, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2359, "end": 2403, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2361, "end": 2403, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2362, "end": 2397, "ctxt": 0 }, "value": "arg2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2366, "end": 2397, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2368, "end": 2397, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2370, "end": 2382, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2370, "end": 2373, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2373, "end": 2381, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2375, "end": 2381, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2383, "end": 2395, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2383, "end": 2387, "ctxt": 0 }, "value": "bing", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2387, "end": 2395, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2389, "end": 2395, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2399, "end": 2403, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2402, "end": 2403, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2402, "end": 2403, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2304, "end": 2339, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2305, "end": 2319, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2305, "end": 2306, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2315, "end": 2319, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2315, "end": 2319, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2321, "end": 2338, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2321, "end": 2322, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2331, "end": 2338, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2331, "end": 2338, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2405, "end": 2419, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2408, "end": 2419, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2409, "end": 2413, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2410, "end": 2413, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2412, "end": 2413, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2412, "end": 2413, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2415, "end": 2419, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2418, "end": 2419, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2418, "end": 2419, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2474, "end": 2515, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2474, "end": 2477, "ctxt": 0 }, "value": "a10", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2477, "end": 2514, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2479, "end": 2514, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 2499, "end": 2508, "ctxt": 0 }, "rest": { "start": 2499, "end": 2502, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 2502, "end": 2503, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2503, "end": 2508, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2505, "end": 2508, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2505, "end": 2506, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2505, "end": 2506, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2479, "end": 2498, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2480, "end": 2497, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2480, "end": 2481, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2490, "end": 2497, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2490, "end": 2497, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2510, "end": 2514, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2513, "end": 2514, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2513, "end": 2514, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2526, "end": 2565, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2526, "end": 2529, "ctxt": 0 }, "value": "a11", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2529, "end": 2564, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2531, "end": 2564, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2548, "end": 2552, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2549, "end": 2552, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2551, "end": 2552, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2551, "end": 2552, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 2554, "end": 2558, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2555, "end": 2558, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2557, "end": 2558, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2557, "end": 2558, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2531, "end": 2547, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2532, "end": 2546, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2532, "end": 2533, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2542, "end": 2546, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2542, "end": 2546, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2560, "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 } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2576, "end": 2645, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2576, "end": 2579, "ctxt": 0 }, "value": "a12", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2579, "end": 2644, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2581, "end": 2644, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2605, "end": 2619, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2606, "end": 2619, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2608, "end": 2619, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2608, "end": 2613, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2613, "end": 2619, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2614, "end": 2618, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2614, "end": 2618, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 2621, "end": 2625, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2622, "end": 2625, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2624, "end": 2625, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2624, "end": 2625, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2581, "end": 2604, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2582, "end": 2603, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2582, "end": 2583, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2592, "end": 2603, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2592, "end": 2597, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2597, "end": 2603, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2598, "end": 2602, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2598, "end": 2602, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2627, "end": 2644, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2630, "end": 2644, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2630, "end": 2635, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2635, "end": 2644, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2636, "end": 2643, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2636, "end": 2643, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2686, "end": 2745, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2686, "end": 2689, "ctxt": 0 }, "value": "a13", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2689, "end": 2744, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2691, "end": 2744, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2718, "end": 2732, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2719, "end": 2732, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2721, "end": 2732, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2721, "end": 2726, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2726, "end": 2732, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2727, "end": 2731, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2727, "end": 2731, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } ] } } } }, { "type": "Identifier", "span": { "start": 2734, "end": 2738, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2735, "end": 2738, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2737, "end": 2738, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2737, "end": 2738, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2691, "end": 2717, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2692, "end": 2716, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2692, "end": 2693, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2702, "end": 2716, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2702, "end": 2707, "ctxt": 0 }, "value": "Array", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 2707, "end": 2716, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 2708, "end": 2715, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2708, "end": 2715, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } ] } }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2740, "end": 2744, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2743, "end": 2744, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2743, "end": 2744, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2843, "end": 2879, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2843, "end": 2846, "ctxt": 0 }, "value": "a14", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2846, "end": 2878, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2848, "end": 2878, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2855, "end": 2872, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2856, "end": 2872, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2858, "end": 2872, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2860, "end": 2865, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2860, "end": 2861, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2861, "end": 2864, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2863, "end": 2864, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2863, "end": 2864, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2866, "end": 2870, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2866, "end": 2867, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2867, "end": 2870, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2869, "end": 2870, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2869, "end": 2870, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2848, "end": 2854, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2849, "end": 2850, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2849, "end": 2850, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 2852, "end": 2853, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2852, "end": 2853, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2874, "end": 2878, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2877, "end": 2878, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2877, "end": 2878, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2890, "end": 2912, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2890, "end": 2893, "ctxt": 0 }, "value": "a15", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2893, "end": 2911, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2895, "end": 2911, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2899, "end": 2903, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2900, "end": 2903, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2902, "end": 2903, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2902, "end": 2903, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2895, "end": 2898, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2896, "end": 2897, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2896, "end": 2897, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2905, "end": 2911, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2908, "end": 2911, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 2908, "end": 2909, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2908, "end": 2909, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2923, "end": 2963, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2923, "end": 2926, "ctxt": 0 }, "value": "a16", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2926, "end": 2962, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2928, "end": 2962, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2945, "end": 2949, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2946, "end": 2949, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2948, "end": 2949, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2948, "end": 2949, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2928, "end": 2944, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2929, "end": 2943, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2929, "end": 2930, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 2939, "end": 2943, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2939, "end": 2943, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2951, "end": 2962, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 2954, "end": 2962, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 2954, "end": 2960, "ctxt": 0 }, "kind": "number" } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2974, "end": 3006, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2974, "end": 2977, "ctxt": 0 }, "value": "a17", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2977, "end": 3005, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2979, "end": 3005, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2983, "end": 2997, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2984, "end": 2997, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2986, "end": 2997, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 2987, "end": 2991, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2988, "end": 2991, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2990, "end": 2991, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2990, "end": 2991, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2993, "end": 2997, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2996, "end": 2997, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2996, "end": 2997, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 2979, "end": 2982, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2980, "end": 2981, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2980, "end": 2981, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2999, "end": 3005, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 3002, "end": 3005, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 3002, "end": 3003, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3002, "end": 3003, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 3017, "end": 3049, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 3017, "end": 3020, "ctxt": 0 }, "value": "a18", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3020, "end": 3048, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3022, "end": 3048, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3026, "end": 3040, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3027, "end": 3040, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 3029, "end": 3040, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 3030, "end": 3034, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3031, "end": 3034, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3033, "end": 3034, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3033, "end": 3034, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3036, "end": 3040, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3039, "end": 3040, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3039, "end": 3040, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 3022, "end": 3025, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3023, "end": 3024, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3023, "end": 3024, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3042, "end": 3048, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 3045, "end": 3048, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 3045, "end": 3046, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3045, "end": 3046, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "typeParams": null } ] } } ], "interpreter": null }