{ "type": "Script", "span": { "start": 0, "end": 835, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 0, "end": 41, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 10, "end": 11, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 11, "end": 27, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 12, "end": 26, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 12, "end": 13, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 22, "end": 26, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 22, "end": 26, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 28, "end": 41, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 34, "end": 39, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 34, "end": 35, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 35, "end": 38, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 37, "end": 38, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 37, "end": 38, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 43, "end": 95, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 53, "end": 54, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 54, "end": 72, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 55, "end": 71, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 55, "end": 56, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 65, "end": 71, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 65, "end": 71, "ctxt": 0 }, "value": "Number", "optional": false }, "typeParams": null }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 73, "end": 95, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 88, "end": 93, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 88, "end": 89, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 89, "end": 92, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 91, "end": 92, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 91, "end": 92, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 97, "end": 232, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 104, "end": 105, "ctxt": 0 }, "value": "M", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 106, "end": 232, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 112, "end": 164, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 122, "end": 123, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 123, "end": 142, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 124, "end": 141, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 124, "end": 125, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 134, "end": 141, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 134, "end": 135, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 135, "end": 141, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 136, "end": 140, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 136, "end": 140, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } ] } }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 143, "end": 164, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 153, "end": 158, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 153, "end": 154, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 154, "end": 157, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 156, "end": 157, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 156, "end": 157, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 170, "end": 230, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 180, "end": 181, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 181, "end": 199, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 182, "end": 198, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 182, "end": 183, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 192, "end": 198, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 192, "end": 193, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 193, "end": 198, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 194, "end": 197, "ctxt": 0 }, "kind": "any" } ] } }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 200, "end": 230, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 219, "end": 224, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 219, "end": 220, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 220, "end": 223, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 222, "end": 223, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 222, "end": 223, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 234, "end": 301, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 241, "end": 243, "ctxt": 0 }, "value": "M2", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 244, "end": 301, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 250, "end": 299, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 260, "end": 261, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 261, "end": 277, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 262, "end": 276, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 262, "end": 263, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 272, "end": 276, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 272, "end": 276, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 278, "end": 299, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 288, "end": 293, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 288, "end": 289, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 289, "end": 292, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 291, "end": 292, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 291, "end": 292, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 303, "end": 423, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 310, "end": 312, "ctxt": 0 }, "value": "M2", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 313, "end": 423, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 319, "end": 421, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 329, "end": 330, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 330, "end": 348, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 331, "end": 347, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 331, "end": 332, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 341, "end": 347, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 341, "end": 347, "ctxt": 0 }, "value": "Number", "optional": false }, "typeParams": null }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 349, "end": 421, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 410, "end": 415, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 410, "end": 411, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 411, "end": 414, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 413, "end": 414, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 413, "end": 414, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 425, "end": 499, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 432, "end": 434, "ctxt": 0 }, "value": "M3", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 435, "end": 499, "ctxt": 0 }, "body": [ { "type": "ExportDeclaration", "span": { "start": 441, "end": 497, "ctxt": 0 }, "declaration": { "type": "TsInterfaceDeclaration", "span": { "start": 448, "end": 497, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 458, "end": 459, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 459, "end": 475, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 460, "end": 474, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 460, "end": 461, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 470, "end": 474, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 470, "end": 474, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 476, "end": 497, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 486, "end": 491, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 486, "end": 487, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 487, "end": 490, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 489, "end": 490, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 489, "end": 490, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ] } }, { "type": "TsModuleDeclaration", "span": { "start": 501, "end": 586, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 508, "end": 510, "ctxt": 0 }, "value": "M3", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 511, "end": 586, "ctxt": 0 }, "body": [ { "type": "ExportDeclaration", "span": { "start": 517, "end": 584, "ctxt": 0 }, "declaration": { "type": "TsInterfaceDeclaration", "span": { "start": 524, "end": 584, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 534, "end": 535, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 535, "end": 553, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 536, "end": 552, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 536, "end": 537, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 546, "end": 552, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 546, "end": 552, "ctxt": 0 }, "value": "Number", "optional": false }, "typeParams": null }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 554, "end": 584, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 573, "end": 578, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 573, "end": 574, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 574, "end": 577, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 576, "end": 577, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 576, "end": 577, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 588, "end": 655, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 598, "end": 599, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 599, "end": 617, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 600, "end": 616, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 600, "end": 601, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsKeywordType", "span": { "start": 610, "end": 616, "ctxt": 0 }, "kind": "number" }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 618, "end": 655, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 622, "end": 627, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 622, "end": 623, "ctxt": 0 }, "value": "u", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 623, "end": 626, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 625, "end": 626, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 625, "end": 626, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 630, "end": 647, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 630, "end": 631, "ctxt": 0 }, "value": "v", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 631, "end": 646, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 633, "end": 646, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 633, "end": 643, "ctxt": 0 }, "value": "Constraint", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 643, "end": 646, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 644, "end": 645, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 644, "end": 645, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 657, "end": 715, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 667, "end": 668, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 668, "end": 671, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 669, "end": 670, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 669, "end": 670, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 672, "end": 715, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 682, "end": 687, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 682, "end": 683, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 683, "end": 686, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 685, "end": 686, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 685, "end": 686, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 690, "end": 707, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 690, "end": 691, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 691, "end": 706, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 693, "end": 706, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 693, "end": 703, "ctxt": 0 }, "value": "Constraint", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 703, "end": 706, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 704, "end": 705, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 704, "end": 705, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 717, "end": 743, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 727, "end": 728, "ctxt": 0 }, "value": "C", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 728, "end": 731, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 729, "end": 730, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 729, "end": 730, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 732, "end": 743, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 736, "end": 741, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 736, "end": 737, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 737, "end": 740, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 739, "end": 740, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 739, "end": 740, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 745, "end": 792, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 755, "end": 756, "ctxt": 0 }, "value": "C", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 756, "end": 774, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 757, "end": 773, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 757, "end": 758, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsKeywordType", "span": { "start": 767, "end": 773, "ctxt": 0 }, "kind": "number" }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 775, "end": 792, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 785, "end": 790, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 785, "end": 786, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 786, "end": 789, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 788, "end": 789, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 788, "end": 789, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 794, "end": 835, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 804, "end": 814, "ctxt": 0 }, "value": "Constraint", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 814, "end": 832, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 815, "end": 831, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 815, "end": 816, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsKeywordType", "span": { "start": 825, "end": 831, "ctxt": 0 }, "kind": "number" }, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 833, "end": 835, "ctxt": 0 }, "body": [] } } ], "interpreter": null }