{ "type": "Script", "span": { "start": 63, "end": 809, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 63, "end": 134, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 73, "end": 74, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 75, "end": 134, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 81, "end": 104, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 81, "end": 84, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 85, "end": 94, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 86, "end": 94, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 88, "end": 94, "ctxt": 0 }, "kind": "number" } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 95, "end": 103, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 97, "end": 103, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsMethodSignature", "span": { "start": 109, "end": 132, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 109, "end": 112, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 113, "end": 122, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 114, "end": 122, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 116, "end": 122, "ctxt": 0 }, "kind": "string" } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 123, "end": 131, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 125, "end": 131, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 136, "end": 175, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 146, "end": 147, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 148, "end": 175, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 154, "end": 173, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 154, "end": 157, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 158, "end": 165, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 159, "end": 165, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 161, "end": 165, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 161, "end": 165, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 166, "end": 172, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 168, "end": 172, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 168, "end": 172, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 177, "end": 246, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 187, "end": 188, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 188, "end": 191, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 189, "end": 190, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 189, "end": 190, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 192, "end": 246, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 198, "end": 216, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 198, "end": 201, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 202, "end": 206, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 203, "end": 206, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 205, "end": 206, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 205, "end": 206, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 207, "end": 215, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 209, "end": 215, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsMethodSignature", "span": { "start": 221, "end": 244, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 221, "end": 224, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 225, "end": 234, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 226, "end": 234, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 228, "end": 234, "ctxt": 0 }, "kind": "string" } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 235, "end": 243, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 237, "end": 243, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 248, "end": 313, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 258, "end": 259, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 259, "end": 262, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 260, "end": 261, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 260, "end": 261, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 263, "end": 313, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 269, "end": 285, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 269, "end": 272, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 273, "end": 277, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 274, "end": 277, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 276, "end": 277, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 276, "end": 277, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 278, "end": 284, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 280, "end": 284, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 280, "end": 284, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsMethodSignature", "span": { "start": 290, "end": 311, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 290, "end": 293, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 294, "end": 301, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 295, "end": 301, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 297, "end": 301, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 297, "end": 301, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 302, "end": 310, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 304, "end": 310, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "VariableDeclaration", "span": { "start": 315, "end": 333, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 319, "end": 332, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 319, "end": 320, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 320, "end": 332, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 322, "end": 332, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 322, "end": 323, "ctxt": 0 }, "value": "B", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 323, "end": 332, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 324, "end": 331, "ctxt": 0 }, "kind": "boolean" } ] } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 334, "end": 354, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 338, "end": 353, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 338, "end": 339, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 342, "end": 353, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 342, "end": 347, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 342, "end": 343, "ctxt": 0 }, "value": "b", "optional": false }, "property": { "type": "Identifier", "span": { "start": 344, "end": 347, "ctxt": 0 }, "value": "foo", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "BooleanLiteral", "span": { "start": 348, "end": 352, "ctxt": 0 }, "value": true } } ], "typeArguments": null }, "definite": false } ] }, { "type": "TsInterfaceDeclaration", "span": { "start": 396, "end": 485, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 406, "end": 407, "ctxt": 0 }, "value": "C", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 407, "end": 413, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 408, "end": 409, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 408, "end": 409, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 411, "end": 412, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 411, "end": 412, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 414, "end": 485, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 420, "end": 444, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 420, "end": 423, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 424, "end": 428, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 425, "end": 428, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 427, "end": 428, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 427, "end": 428, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 430, "end": 434, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 431, "end": 434, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 433, "end": 434, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 433, "end": 434, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 435, "end": 443, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 437, "end": 443, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsMethodSignature", "span": { "start": 449, "end": 483, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 449, "end": 452, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 453, "end": 462, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 454, "end": 462, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 456, "end": 462, "ctxt": 0 }, "kind": "string" } } }, { "type": "Identifier", "span": { "start": 464, "end": 473, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 465, "end": 473, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 467, "end": 473, "ctxt": 0 }, "kind": "string" } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 474, "end": 482, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 476, "end": 482, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 487, "end": 535, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 497, "end": 498, "ctxt": 0 }, "value": "C", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 498, "end": 504, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 499, "end": 500, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 499, "end": 500, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 502, "end": 503, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 502, "end": 503, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 505, "end": 535, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 511, "end": 533, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 511, "end": 514, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 518, "end": 522, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 519, "end": 522, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 521, "end": 522, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 521, "end": 522, "ctxt": 0 }, "value": "W", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 524, "end": 528, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 525, "end": 528, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 527, "end": 528, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 527, "end": 528, "ctxt": 0 }, "value": "W", "optional": false }, "typeParams": null } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 529, "end": 532, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 531, "end": 532, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 531, "end": 532, "ctxt": 0 }, "value": "W", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 514, "end": 517, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 515, "end": 516, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 515, "end": 516, "ctxt": 0 }, "value": "W", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] } } ] } }, { "type": "VariableDeclaration", "span": { "start": 537, "end": 561, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 541, "end": 560, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 541, "end": 542, "ctxt": 0 }, "value": "c", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 542, "end": 560, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 544, "end": 560, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 544, "end": 545, "ctxt": 0 }, "value": "C", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 545, "end": 560, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 546, "end": 553, "ctxt": 0 }, "kind": "boolean" }, { "type": "TsTypeReference", "span": { "start": 555, "end": 559, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 555, "end": 559, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } ] } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 562, "end": 583, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 566, "end": 582, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 566, "end": 568, "ctxt": 0 }, "value": "r2", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 571, "end": 582, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 571, "end": 576, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 571, "end": 572, "ctxt": 0 }, "value": "c", "optional": false }, "property": { "type": "Identifier", "span": { "start": 573, "end": 576, "ctxt": 0 }, "value": "foo", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 577, "end": 578, "ctxt": 0 }, "value": 1.0, "raw": "1" } }, { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 580, "end": 581, "ctxt": 0 }, "value": 2.0, "raw": "2" } } ], "typeArguments": null }, "definite": false } ] }, { "type": "TsInterfaceDeclaration", "span": { "start": 643, "end": 711, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 653, "end": 654, "ctxt": 0 }, "value": "D", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 654, "end": 660, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 655, "end": 656, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 655, "end": 656, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 658, "end": 659, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 658, "end": 659, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 661, "end": 711, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 667, "end": 672, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 667, "end": 668, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 668, "end": 671, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 670, "end": 671, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 670, "end": 671, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 677, "end": 682, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 677, "end": 678, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 678, "end": 681, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 680, "end": 681, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 680, "end": 681, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsMethodSignature", "span": { "start": 687, "end": 709, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 687, "end": 690, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 694, "end": 698, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 695, "end": 698, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 697, "end": 698, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 697, "end": 698, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 700, "end": 704, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 701, "end": 704, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 703, "end": 704, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 703, "end": 704, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 705, "end": 708, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 707, "end": 708, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 707, "end": 708, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 690, "end": 693, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 691, "end": 692, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 691, "end": 692, "ctxt": 0 }, "value": "A", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] } } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 713, "end": 761, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 723, "end": 724, "ctxt": 0 }, "value": "D", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 724, "end": 730, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 725, "end": 726, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 725, "end": 726, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 728, "end": 729, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 728, "end": 729, "ctxt": 0 }, "value": "U", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 731, "end": 761, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 737, "end": 759, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 737, "end": 740, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 744, "end": 748, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 745, "end": 748, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 747, "end": 748, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 747, "end": 748, "ctxt": 0 }, "value": "W", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 750, "end": 754, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 751, "end": 754, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 753, "end": 754, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 753, "end": 754, "ctxt": 0 }, "value": "W", "optional": false }, "typeParams": null } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 755, "end": 758, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 757, "end": 758, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 757, "end": 758, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 740, "end": 743, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 741, "end": 742, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 741, "end": 742, "ctxt": 0 }, "value": "W", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] } } ] } }, { "type": "VariableDeclaration", "span": { "start": 763, "end": 787, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 767, "end": 786, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 767, "end": 768, "ctxt": 0 }, "value": "d", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 768, "end": 786, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 770, "end": 786, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 770, "end": 771, "ctxt": 0 }, "value": "D", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 771, "end": 786, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 772, "end": 779, "ctxt": 0 }, "kind": "boolean" }, { "type": "TsTypeReference", "span": { "start": 781, "end": 785, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 781, "end": 785, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } ] } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 788, "end": 809, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 792, "end": 808, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 792, "end": 794, "ctxt": 0 }, "value": "r3", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 797, "end": 808, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 797, "end": 802, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 797, "end": 798, "ctxt": 0 }, "value": "d", "optional": false }, "property": { "type": "Identifier", "span": { "start": 799, "end": 802, "ctxt": 0 }, "value": "foo", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 803, "end": 804, "ctxt": 0 }, "value": 1.0, "raw": "1" } }, { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 806, "end": 807, "ctxt": 0 }, "value": 1.0, "raw": "1" } } ], "typeArguments": null }, "definite": false } ] } ], "interpreter": null }