{ "type": "Script", "span": { "start": 92, "end": 1824, "ctxt": 0 }, "body": [ { "type": "TsInterfaceDeclaration", "span": { "start": 92, "end": 148, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 102, "end": 110, "ctxt": 0 }, "value": "MyString", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 119, "end": 125, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 119, "end": 125, "ctxt": 0 }, "value": "String", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 126, "end": 148, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 133, "end": 145, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 133, "end": 136, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 136, "end": 144, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 138, "end": 144, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 158, "end": 159, "ctxt": 0 }, "value": "C", "optional": false }, "declare": false, "span": { "start": 152, "end": 751, "ctxt": 0 }, "decorators": [], "body": [ { "type": "TsIndexSignature", "params": [ { "type": "Identifier", "span": { "start": 168, "end": 177, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 169, "end": 177, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 171, "end": 177, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 178, "end": 186, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 180, "end": 186, "ctxt": 0 }, "kind": "string" } }, "readonly": false, "static": false, "span": { "start": 167, "end": 187, "ctxt": 0 } }, { "type": "Constructor", "span": { "start": 195, "end": 212, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 195, "end": 206, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [], "body": { "type": "BlockStatement", "span": { "start": 209, "end": 212, "ctxt": 0 }, "stmts": [] }, "accessibility": null, "isOptional": false }, { "type": "ClassProperty", "span": { "start": 226, "end": 236, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 226, "end": 227, "ctxt": 0 }, "value": "a", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 227, "end": 235, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 229, "end": 235, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 248, "end": 258, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 248, "end": 249, "ctxt": 0 }, "value": "b", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 249, "end": 257, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 251, "end": 257, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 273, "end": 284, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 273, "end": 274, "ctxt": 0 }, "value": "c", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 274, "end": 284, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 276, "end": 284, "ctxt": 0 }, "params": [], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 279, "end": 284, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 282, "end": 284, "ctxt": 0 }, "members": [] } } } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 299, "end": 311, "ctxt": 0 }, "key": { "type": "StringLiteral", "span": { "start": 299, "end": 302, "ctxt": 0 }, "value": "d", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 302, "end": 310, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 304, "end": 310, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 323, "end": 335, "ctxt": 0 }, "key": { "type": "StringLiteral", "span": { "start": 323, "end": 326, "ctxt": 0 }, "value": "e", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 326, "end": 334, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 328, "end": 334, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 350, "end": 362, "ctxt": 0 }, "key": { "type": "NumericLiteral", "span": { "start": 350, "end": 353, "ctxt": 0 }, "value": 1.0 }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 353, "end": 361, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 355, "end": 361, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 374, "end": 386, "ctxt": 0 }, "key": { "type": "NumericLiteral", "span": { "start": 374, "end": 377, "ctxt": 0 }, "value": 2.0 }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 377, "end": 385, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 379, "end": 385, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 401, "end": 415, "ctxt": 0 }, "key": { "type": "StringLiteral", "span": { "start": 401, "end": 406, "ctxt": 0 }, "value": "3.0", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 406, "end": 414, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 408, "end": 414, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 427, "end": 441, "ctxt": 0 }, "key": { "type": "StringLiteral", "span": { "start": 427, "end": 432, "ctxt": 0 }, "value": "4.0", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 432, "end": 440, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 434, "end": 440, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 456, "end": 468, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 456, "end": 457, "ctxt": 0 }, "value": "f", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 457, "end": 467, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 459, "end": 467, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 459, "end": 467, "ctxt": 0 }, "value": "MyString", "optional": false }, "typeParams": null } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassMethod", "span": { "start": 485, "end": 527, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 489, "end": 490, "ctxt": 0 }, "value": "X", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 485, "end": 527, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 493, "end": 527, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 510, "end": 520, "ctxt": 0 }, "argument": { "type": "StringLiteral", "span": { "start": 517, "end": 519, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "getter", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassMethod", "span": { "start": 533, "end": 545, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 537, "end": 538, "ctxt": 0 }, "value": "X", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 539, "end": 540, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 539, "end": 540, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": null } } ], "decorators": [], "span": { "start": 533, "end": 545, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 542, "end": 545, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "setter", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassMethod", "span": { "start": 559, "end": 602, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 559, "end": 562, "ctxt": 0 }, "value": "foo", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 559, "end": 602, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 565, "end": 602, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 585, "end": 595, "ctxt": 0 }, "argument": { "type": "StringLiteral", "span": { "start": 592, "end": 594, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassProperty", "span": { "start": 610, "end": 628, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 617, "end": 619, "ctxt": 0 }, "value": "sa", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 619, "end": 627, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 621, "end": 627, "ctxt": 0 }, "kind": "number" } }, "isStatic": true, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 640, "end": 658, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 647, "end": 649, "ctxt": 0 }, "value": "sb", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 649, "end": 657, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 651, "end": 657, "ctxt": 0 }, "kind": "string" } }, "isStatic": true, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassMethod", "span": { "start": 672, "end": 688, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 679, "end": 682, "ctxt": 0 }, "value": "foo", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 672, "end": 688, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 685, "end": 688, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": true, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassMethod", "span": { "start": 700, "end": 748, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 711, "end": 712, "ctxt": 0 }, "value": "X", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 700, "end": 748, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 715, "end": 748, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 732, "end": 741, "ctxt": 0 }, "argument": { "type": "NumericLiteral", "span": { "start": 739, "end": 740, "ctxt": 0 }, "value": 1.0 } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "getter", "isStatic": true, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "TsInterfaceDeclaration", "span": { "start": 755, "end": 1131, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 765, "end": 766, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 767, "end": 1131, "ctxt": 0 }, "body": [ { "type": "TsIndexSignature", "params": [ { "type": "Identifier", "span": { "start": 775, "end": 784, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 776, "end": 784, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 778, "end": 784, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 785, "end": 793, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 787, "end": 793, "ctxt": 0 }, "kind": "string" } }, "readonly": false, "static": false, "span": { "start": 774, "end": 794, "ctxt": 0 } }, { "type": "TsPropertySignature", "span": { "start": 802, "end": 812, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 802, "end": 803, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 803, "end": 811, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 805, "end": 811, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 824, "end": 834, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 824, "end": 825, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 825, "end": 833, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 827, "end": 833, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 849, "end": 860, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 849, "end": 850, "ctxt": 0 }, "value": "c", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 850, "end": 860, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 852, "end": 860, "ctxt": 0 }, "params": [], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 855, "end": 860, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 858, "end": 860, "ctxt": 0 }, "members": [] } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 875, "end": 887, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 875, "end": 878, "ctxt": 0 }, "value": "d", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 878, "end": 886, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 880, "end": 886, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 899, "end": 911, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 899, "end": 902, "ctxt": 0 }, "value": "e", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 902, "end": 910, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 904, "end": 910, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 926, "end": 938, "ctxt": 0 }, "readonly": false, "key": { "type": "NumericLiteral", "span": { "start": 926, "end": 929, "ctxt": 0 }, "value": 1.0 }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 929, "end": 937, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 931, "end": 937, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 950, "end": 962, "ctxt": 0 }, "readonly": false, "key": { "type": "NumericLiteral", "span": { "start": 950, "end": 953, "ctxt": 0 }, "value": 2.0 }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 953, "end": 961, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 955, "end": 961, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 977, "end": 988, "ctxt": 0 }, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 979, "end": 987, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 981, "end": 987, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1000, "end": 1011, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1001, "end": 1002, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1003, "end": 1011, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1005, "end": 1011, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsMethodSignature", "span": { "start": 1023, "end": 1037, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1023, "end": 1026, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 1028, "end": 1036, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1030, "end": 1036, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1052, "end": 1066, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 1052, "end": 1057, "ctxt": 0 }, "value": "3.0", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1057, "end": 1065, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1059, "end": 1065, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1078, "end": 1092, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 1078, "end": 1083, "ctxt": 0 }, "value": "4.0", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1083, "end": 1091, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1085, "end": 1091, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1107, "end": 1119, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1107, "end": 1108, "ctxt": 0 }, "value": "f", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1108, "end": 1118, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1110, "end": 1118, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1110, "end": 1118, "ctxt": 0 }, "value": "MyString", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "VariableDeclaration", "span": { "start": 1135, "end": 1506, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1139, "end": 1506, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1139, "end": 1140, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1140, "end": 1506, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1142, "end": 1506, "ctxt": 0 }, "members": [ { "type": "TsIndexSignature", "params": [ { "type": "Identifier", "span": { "start": 1150, "end": 1159, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1151, "end": 1159, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1153, "end": 1159, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1160, "end": 1168, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1162, "end": 1168, "ctxt": 0 }, "kind": "string" } }, "readonly": false, "static": false, "span": { "start": 1149, "end": 1169, "ctxt": 0 } }, { "type": "TsPropertySignature", "span": { "start": 1177, "end": 1187, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1177, "end": 1178, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1178, "end": 1186, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1180, "end": 1186, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1199, "end": 1209, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1199, "end": 1200, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1200, "end": 1208, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1202, "end": 1208, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1224, "end": 1235, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1224, "end": 1225, "ctxt": 0 }, "value": "c", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1225, "end": 1235, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1227, "end": 1235, "ctxt": 0 }, "params": [], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1230, "end": 1235, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1233, "end": 1235, "ctxt": 0 }, "members": [] } } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1250, "end": 1262, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 1250, "end": 1253, "ctxt": 0 }, "value": "d", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1253, "end": 1261, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1255, "end": 1261, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1274, "end": 1286, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 1274, "end": 1277, "ctxt": 0 }, "value": "e", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1277, "end": 1285, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1279, "end": 1285, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1301, "end": 1313, "ctxt": 0 }, "readonly": false, "key": { "type": "NumericLiteral", "span": { "start": 1301, "end": 1304, "ctxt": 0 }, "value": 1.0 }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1304, "end": 1312, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1306, "end": 1312, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1325, "end": 1337, "ctxt": 0 }, "readonly": false, "key": { "type": "NumericLiteral", "span": { "start": 1325, "end": 1328, "ctxt": 0 }, "value": 2.0 }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1328, "end": 1336, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1330, "end": 1336, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1352, "end": 1363, "ctxt": 0 }, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1354, "end": 1362, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1356, "end": 1362, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 1375, "end": 1386, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1376, "end": 1377, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1378, "end": 1386, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1380, "end": 1386, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsMethodSignature", "span": { "start": 1398, "end": 1412, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1398, "end": 1401, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "params": [], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 1403, "end": 1411, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1405, "end": 1411, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1427, "end": 1441, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 1427, "end": 1432, "ctxt": 0 }, "value": "3.0", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1432, "end": 1440, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1434, "end": 1440, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1453, "end": 1467, "ctxt": 0 }, "readonly": false, "key": { "type": "StringLiteral", "span": { "start": 1453, "end": 1458, "ctxt": 0 }, "value": "4.0", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1458, "end": 1466, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1460, "end": 1466, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1482, "end": 1494, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1482, "end": 1483, "ctxt": 0 }, "value": "f", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1483, "end": 1493, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1485, "end": 1493, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1485, "end": 1493, "ctxt": 0 }, "value": "MyString", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1520, "end": 1824, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1524, "end": 1824, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1524, "end": 1525, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1525, "end": 1551, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1527, "end": 1551, "ctxt": 0 }, "members": [ { "type": "TsIndexSignature", "params": [ { "type": "Identifier", "span": { "start": 1530, "end": 1539, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1531, "end": 1539, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1533, "end": 1539, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1540, "end": 1548, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1542, "end": 1548, "ctxt": 0 }, "kind": "string" } }, "readonly": false, "static": false, "span": { "start": 1529, "end": 1549, "ctxt": 0 } } ] } } }, "init": { "type": "ObjectExpression", "span": { "start": 1554, "end": 1824, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 1561, "end": 1562, "ctxt": 0 }, "value": "a", "optional": false }, "value": { "type": "StringLiteral", "span": { "start": 1564, "end": 1566, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 1573, "end": 1574, "ctxt": 0 }, "value": "b", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 1576, "end": 1577, "ctxt": 0 }, "value": 1.0 } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 1585, "end": 1586, "ctxt": 0 }, "value": "c", "optional": false }, "value": { "type": "ArrowFunctionExpression", "span": { "start": 1588, "end": 1597, "ctxt": 0 }, "params": [], "body": { "type": "BlockStatement", "span": { "start": 1594, "end": 1597, "ctxt": 0 }, "stmts": [] }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "type": "KeyValueProperty", "key": { "type": "StringLiteral", "span": { "start": 1605, "end": 1608, "ctxt": 0 }, "value": "d", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "value": { "type": "StringLiteral", "span": { "start": 1610, "end": 1612, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "type": "KeyValueProperty", "key": { "type": "StringLiteral", "span": { "start": 1620, "end": 1623, "ctxt": 0 }, "value": "e", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "value": { "type": "NumericLiteral", "span": { "start": 1625, "end": 1626, "ctxt": 0 }, "value": 1.0 } }, { "type": "KeyValueProperty", "key": { "type": "NumericLiteral", "span": { "start": 1634, "end": 1637, "ctxt": 0 }, "value": 1.0 }, "value": { "type": "StringLiteral", "span": { "start": 1639, "end": 1641, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "type": "KeyValueProperty", "key": { "type": "NumericLiteral", "span": { "start": 1648, "end": 1651, "ctxt": 0 }, "value": 2.0 }, "value": { "type": "NumericLiteral", "span": { "start": 1653, "end": 1654, "ctxt": 0 }, "value": 1.0 } }, { "type": "KeyValueProperty", "key": { "type": "StringLiteral", "span": { "start": 1662, "end": 1667, "ctxt": 0 }, "value": "3.0", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "value": { "type": "StringLiteral", "span": { "start": 1669, "end": 1671, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "type": "KeyValueProperty", "key": { "type": "StringLiteral", "span": { "start": 1679, "end": 1684, "ctxt": 0 }, "value": "4.0", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "value": { "type": "NumericLiteral", "span": { "start": 1686, "end": 1687, "ctxt": 0 }, "value": 1.0 } }, { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 1695, "end": 1696, "ctxt": 0 }, "value": "f", "optional": false }, "value": { "type": "TsTypeAssertion", "span": { "start": 1698, "end": 1712, "ctxt": 0 }, "expression": { "type": "NullLiteral", "span": { "start": 1708, "end": 1712, "ctxt": 0 } }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1699, "end": 1707, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1699, "end": 1707, "ctxt": 0 }, "value": "MyString", "optional": false }, "typeParams": null } } }, { "type": "GetterProperty", "span": { "start": 1722, "end": 1759, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1726, "end": 1727, "ctxt": 0 }, "value": "X", "optional": false }, "typeAnnotation": null, "body": { "type": "BlockStatement", "span": { "start": 1730, "end": 1759, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 1742, "end": 1752, "ctxt": 0 }, "argument": { "type": "StringLiteral", "span": { "start": 1749, "end": 1751, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] } }, { "type": "SetterProperty", "span": { "start": 1766, "end": 1778, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1770, "end": 1771, "ctxt": 0 }, "value": "X", "optional": false }, "param": { "type": "Identifier", "span": { "start": 1772, "end": 1773, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": null }, "body": { "type": "BlockStatement", "span": { "start": 1775, "end": 1778, "ctxt": 0 }, "stmts": [] } }, { "type": "MethodProperty", "key": { "type": "Identifier", "span": { "start": 1786, "end": 1789, "ctxt": 0 }, "value": "foo", "optional": false }, "params": [], "decorators": [], "span": { "start": 1786, "end": 1821, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1792, "end": 1821, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 1804, "end": 1814, "ctxt": 0 }, "argument": { "type": "StringLiteral", "span": { "start": 1811, "end": 1813, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null } ] }, "definite": false } ] } ], "interpreter": null }