{ "type": "Script", "span": { "start": 1, "end": 836, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 1, "end": 42, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 11, "end": 12, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 12, "end": 28, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 13, "end": 27, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 13, "end": 14, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeReference", "span": { "start": 23, "end": 27, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 23, "end": 27, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 29, "end": 42, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 35, "end": 40, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 35, "end": 36, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 36, "end": 39, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 38, "end": 39, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 38, "end": 39, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 44, "end": 96, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 54, "end": 55, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 55, "end": 73, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 56, "end": 72, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 56, "end": 57, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeReference", "span": { "start": 66, "end": 72, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 66, "end": 72, "ctxt": 0 }, "value": "Number", "optional": false }, "typeParams": null }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 74, "end": 96, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 89, "end": 94, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 89, "end": 90, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 90, "end": 93, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 92, "end": 93, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 92, "end": 93, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 98, "end": 233, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 105, "end": 106, "ctxt": 0 }, "value": "M", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 107, "end": 233, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 113, "end": 165, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 123, "end": 124, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 124, "end": 143, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 125, "end": 142, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 125, "end": 126, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeReference", "span": { "start": 135, "end": 142, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 135, "end": 136, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 136, "end": 142, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 137, "end": 141, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 137, "end": 141, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } ] } }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 144, "end": 165, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 154, "end": 159, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 154, "end": 155, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 155, "end": 158, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 157, "end": 158, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 157, "end": 158, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 171, "end": 231, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 181, "end": 182, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 182, "end": 200, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 183, "end": 199, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 183, "end": 184, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeReference", "span": { "start": 193, "end": 199, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 193, "end": 194, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 194, "end": 199, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 195, "end": 198, "ctxt": 0 }, "kind": "any" } ] } }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 201, "end": 231, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 220, "end": 225, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 220, "end": 221, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 221, "end": 224, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 223, "end": 224, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 223, "end": 224, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 235, "end": 302, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 242, "end": 244, "ctxt": 0 }, "value": "M2", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 245, "end": 302, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 251, "end": 300, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 261, "end": 262, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 262, "end": 278, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 263, "end": 277, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 263, "end": 264, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeReference", "span": { "start": 273, "end": 277, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 273, "end": 277, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 279, "end": 300, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 289, "end": 294, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 289, "end": 290, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 290, "end": 293, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 292, "end": 293, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 292, "end": 293, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 304, "end": 424, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 311, "end": 313, "ctxt": 0 }, "value": "M2", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 314, "end": 424, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 320, "end": 422, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 330, "end": 331, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 331, "end": 349, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 332, "end": 348, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 332, "end": 333, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeReference", "span": { "start": 342, "end": 348, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 342, "end": 348, "ctxt": 0 }, "value": "Number", "optional": false }, "typeParams": null }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 350, "end": 422, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 411, "end": 416, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 411, "end": 412, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 412, "end": 415, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 414, "end": 415, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 414, "end": 415, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 426, "end": 500, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 433, "end": 435, "ctxt": 0 }, "value": "M3", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 436, "end": 500, "ctxt": 0 }, "body": [ { "type": "ExportDeclaration", "span": { "start": 442, "end": 498, "ctxt": 0 }, "declaration": { "type": "TsInterfaceDeclaration", "span": { "start": 449, "end": 498, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 459, "end": 460, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 460, "end": 476, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 461, "end": 475, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 461, "end": 462, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeReference", "span": { "start": 471, "end": 475, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 471, "end": 475, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 477, "end": 498, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 487, "end": 492, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 487, "end": 488, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 488, "end": 491, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 490, "end": 491, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 490, "end": 491, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 502, "end": 587, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 509, "end": 511, "ctxt": 0 }, "value": "M3", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 512, "end": 587, "ctxt": 0 }, "body": [ { "type": "ExportDeclaration", "span": { "start": 518, "end": 585, "ctxt": 0 }, "declaration": { "type": "TsInterfaceDeclaration", "span": { "start": 525, "end": 585, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 535, "end": 536, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 536, "end": 554, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 537, "end": 553, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 537, "end": 538, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeReference", "span": { "start": 547, "end": 553, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 547, "end": 553, "ctxt": 0 }, "value": "Number", "optional": false }, "typeParams": null }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 555, "end": 585, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 574, "end": 579, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 574, "end": 575, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 575, "end": 578, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 577, "end": 578, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 577, "end": 578, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 589, "end": 656, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 599, "end": 600, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 600, "end": 618, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 601, "end": 617, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 601, "end": 602, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsKeywordType", "span": { "start": 611, "end": 617, "ctxt": 0 }, "kind": "number" }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 619, "end": 656, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 623, "end": 628, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 623, "end": 624, "ctxt": 0 }, "value": "u", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 624, "end": 627, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 626, "end": 627, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 626, "end": 627, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 631, "end": 648, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 631, "end": 632, "ctxt": 0 }, "value": "v", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 632, "end": 647, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 634, "end": 647, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 634, "end": 644, "ctxt": 0 }, "value": "Constraint", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 644, "end": 647, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 645, "end": 646, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 645, "end": 646, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 658, "end": 716, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 668, "end": 669, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 669, "end": 672, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 670, "end": 671, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 670, "end": 671, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 673, "end": 716, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 683, "end": 688, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 683, "end": 684, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 684, "end": 687, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 686, "end": 687, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 686, "end": 687, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 691, "end": 708, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 691, "end": 692, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 692, "end": 707, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 694, "end": 707, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 694, "end": 704, "ctxt": 0 }, "value": "Constraint", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 704, "end": 707, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 705, "end": 706, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 705, "end": 706, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 718, "end": 744, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 728, "end": 729, "ctxt": 0 }, "value": "C", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 729, "end": 732, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 730, "end": 731, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 730, "end": 731, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 733, "end": 744, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 737, "end": 742, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 737, "end": 738, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 738, "end": 741, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 740, "end": 741, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 740, "end": 741, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 746, "end": 793, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 756, "end": 757, "ctxt": 0 }, "value": "C", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 757, "end": 775, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 758, "end": 774, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 758, "end": 759, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsKeywordType", "span": { "start": 768, "end": 774, "ctxt": 0 }, "kind": "number" }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 776, "end": 793, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 786, "end": 791, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 786, "end": 787, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 787, "end": 790, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 789, "end": 790, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 789, "end": 790, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 795, "end": 836, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 805, "end": 815, "ctxt": 0 }, "value": "Constraint", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 815, "end": 833, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 816, "end": 832, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 816, "end": 817, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsKeywordType", "span": { "start": 826, "end": 832, "ctxt": 0 }, "kind": "number" }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 834, "end": 836, "ctxt": 0 }, "body": [] } } ], "interpreter": null }