{ "type": "Script", "span": { "start": 62, "end": 808, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 62, "end": 133, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 72, "end": 73, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 74, "end": 133, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 80, "end": 103, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 80, "end": 83, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 84, "end": 93, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 85, "end": 93, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 87, "end": 93, "ctxt": 0 }, "kind": "number" } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 94, "end": 102, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 96, "end": 102, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsMethodSignature", "span": { "start": 108, "end": 131, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 108, "end": 111, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 112, "end": 121, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 113, "end": 121, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 115, "end": 121, "ctxt": 0 }, "kind": "string" } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 122, "end": 130, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 124, "end": 130, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 135, "end": 174, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 145, "end": 146, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 147, "end": 174, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 153, "end": 172, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 153, "end": 156, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 157, "end": 164, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 158, "end": 164, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 160, "end": 164, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 160, "end": 164, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 165, "end": 171, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 167, "end": 171, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 167, "end": 171, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 176, "end": 245, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 186, "end": 187, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 187, "end": 190, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 188, "end": 189, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 188, "end": 189, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 191, "end": 245, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 197, "end": 215, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 197, "end": 200, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 201, "end": 205, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 202, "end": 205, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 204, "end": 205, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 204, "end": 205, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 206, "end": 214, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 208, "end": 214, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsMethodSignature", "span": { "start": 220, "end": 243, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 220, "end": 223, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 224, "end": 233, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 225, "end": 233, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 227, "end": 233, "ctxt": 0 }, "kind": "string" } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 234, "end": 242, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 236, "end": 242, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 247, "end": 312, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 257, "end": 258, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 258, "end": 261, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 259, "end": 260, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 259, "end": 260, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 262, "end": 312, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 268, "end": 284, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 268, "end": 271, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 272, "end": 276, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 273, "end": 276, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 275, "end": 276, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 275, "end": 276, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 277, "end": 283, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 279, "end": 283, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 279, "end": 283, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsMethodSignature", "span": { "start": 289, "end": 310, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 289, "end": 292, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 293, "end": 300, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 294, "end": 300, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 296, "end": 300, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 296, "end": 300, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 301, "end": 309, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 303, "end": 309, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "VariableDeclaration", "span": { "start": 314, "end": 332, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 318, "end": 331, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 318, "end": 319, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 319, "end": 331, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 321, "end": 331, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 321, "end": 322, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 322, "end": 331, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 323, "end": 330, "ctxt": 0 }, "kind": "boolean" } ] } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 333, "end": 353, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 337, "end": 352, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 337, "end": 338, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 341, "end": 352, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 341, "end": 346, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 341, "end": 342, "ctxt": 0 }, "value": "b", "optional": false }, "property": { "type": "Identifier", "span": { "start": 343, "end": 346, "ctxt": 0 }, "value": "foo", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "BooleanLiteral", "span": { "start": 347, "end": 351, "ctxt": 0 }, "value": true } } ], "typeArguments": null }, "definite": false } ] }, { "type": "TsInterfaceDeclaration", "span": { "start": 395, "end": 484, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 405, "end": 406, "ctxt": 0 }, "value": "C", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 406, "end": 412, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 407, "end": 408, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 407, "end": 408, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 410, "end": 411, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 410, "end": 411, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 413, "end": 484, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 419, "end": 443, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 419, "end": 422, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 423, "end": 427, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 424, "end": 427, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 426, "end": 427, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 426, "end": 427, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 429, "end": 433, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 430, "end": 433, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 432, "end": 433, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 432, "end": 433, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 434, "end": 442, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 436, "end": 442, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsMethodSignature", "span": { "start": 448, "end": 482, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 448, "end": 451, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 452, "end": 461, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 453, "end": 461, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 455, "end": 461, "ctxt": 0 }, "kind": "string" } } }, { "type": "Identifier", "span": { "start": 463, "end": 472, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 464, "end": 472, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 466, "end": 472, "ctxt": 0 }, "kind": "string" } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 473, "end": 481, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 475, "end": 481, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 486, "end": 534, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 496, "end": 497, "ctxt": 0 }, "value": "C", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 497, "end": 503, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 498, "end": 499, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 498, "end": 499, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 501, "end": 502, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 501, "end": 502, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 504, "end": 534, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 510, "end": 532, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 510, "end": 513, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 517, "end": 521, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 518, "end": 521, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 520, "end": 521, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 520, "end": 521, "ctxt": 0 }, "value": "W", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 523, "end": 527, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 524, "end": 527, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 526, "end": 527, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 526, "end": 527, "ctxt": 0 }, "value": "W", "optional": false }, "typeParams": null } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 528, "end": 531, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 530, "end": 531, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 530, "end": 531, "ctxt": 0 }, "value": "W", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 513, "end": 516, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 514, "end": 515, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 514, "end": 515, "ctxt": 0 }, "value": "W", "optional": false }, "constraint": null, "default": null } ] } } ] } }, { "type": "VariableDeclaration", "span": { "start": 536, "end": 560, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 540, "end": 559, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 540, "end": 541, "ctxt": 0 }, "value": "c", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 541, "end": 559, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 543, "end": 559, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 543, "end": 544, "ctxt": 0 }, "value": "C", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 544, "end": 559, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 545, "end": 552, "ctxt": 0 }, "kind": "boolean" }, { "type": "TsTypeReference", "span": { "start": 554, "end": 558, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 554, "end": 558, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } ] } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 561, "end": 582, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 565, "end": 581, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 565, "end": 567, "ctxt": 0 }, "value": "r2", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 570, "end": 581, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 570, "end": 575, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 570, "end": 571, "ctxt": 0 }, "value": "c", "optional": false }, "property": { "type": "Identifier", "span": { "start": 572, "end": 575, "ctxt": 0 }, "value": "foo", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 576, "end": 577, "ctxt": 0 }, "value": 1.0 } }, { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 579, "end": 580, "ctxt": 0 }, "value": 2.0 } } ], "typeArguments": null }, "definite": false } ] }, { "type": "TsInterfaceDeclaration", "span": { "start": 642, "end": 710, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 652, "end": 653, "ctxt": 0 }, "value": "D", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 653, "end": 659, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 654, "end": 655, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 654, "end": 655, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 657, "end": 658, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 657, "end": 658, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 660, "end": 710, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 666, "end": 671, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 666, "end": 667, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 667, "end": 670, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 669, "end": 670, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 669, "end": 670, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 676, "end": 681, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 676, "end": 677, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 677, "end": 680, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 679, "end": 680, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 679, "end": 680, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsMethodSignature", "span": { "start": 686, "end": 708, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 686, "end": 689, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 693, "end": 697, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 694, "end": 697, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 696, "end": 697, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 696, "end": 697, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 699, "end": 703, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 700, "end": 703, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 702, "end": 703, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 702, "end": 703, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 704, "end": 707, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 706, "end": 707, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 706, "end": 707, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 689, "end": 692, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 690, "end": 691, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 690, "end": 691, "ctxt": 0 }, "value": "A", "optional": false }, "constraint": null, "default": null } ] } } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 712, "end": 760, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 722, "end": 723, "ctxt": 0 }, "value": "D", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 723, "end": 729, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 724, "end": 725, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 724, "end": 725, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 727, "end": 728, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 727, "end": 728, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 730, "end": 760, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 736, "end": 758, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 736, "end": 739, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 743, "end": 747, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 744, "end": 747, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 746, "end": 747, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 746, "end": 747, "ctxt": 0 }, "value": "W", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 749, "end": 753, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 750, "end": 753, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 752, "end": 753, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 752, "end": 753, "ctxt": 0 }, "value": "W", "optional": false }, "typeParams": null } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 754, "end": 757, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 756, "end": 757, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 756, "end": 757, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 739, "end": 742, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 740, "end": 741, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 740, "end": 741, "ctxt": 0 }, "value": "W", "optional": false }, "constraint": null, "default": null } ] } } ] } }, { "type": "VariableDeclaration", "span": { "start": 762, "end": 786, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 766, "end": 785, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 766, "end": 767, "ctxt": 0 }, "value": "d", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 767, "end": 785, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 769, "end": 785, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 769, "end": 770, "ctxt": 0 }, "value": "D", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 770, "end": 785, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 771, "end": 778, "ctxt": 0 }, "kind": "boolean" }, { "type": "TsTypeReference", "span": { "start": 780, "end": 784, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 780, "end": 784, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } ] } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 787, "end": 808, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 791, "end": 807, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 791, "end": 793, "ctxt": 0 }, "value": "r3", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 796, "end": 807, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 796, "end": 801, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 796, "end": 797, "ctxt": 0 }, "value": "d", "optional": false }, "property": { "type": "Identifier", "span": { "start": 798, "end": 801, "ctxt": 0 }, "value": "foo", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 802, "end": 803, "ctxt": 0 }, "value": 1.0 } }, { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 805, "end": 806, "ctxt": 0 }, "value": 1.0 } } ], "typeArguments": null }, "definite": false } ] } ], "interpreter": null }