{ "type": "Script", "span": { "start": 0, "end": 570, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 6, "end": 9, "ctxt": 0 }, "value": "Foo", "optional": false }, "declare": false, "span": { "start": 0, "end": 38, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 16, "end": 36, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 26, "end": 27, "ctxt": 0 }, "value": "x", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 27, "end": 35, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 29, "end": 35, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "TsInterfaceDeclaration", "span": { "start": 40, "end": 82, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 50, "end": 51, "ctxt": 0 }, "value": "I", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 60, "end": 63, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 60, "end": 63, "ctxt": 0 }, "value": "Foo", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 64, "end": 82, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 70, "end": 80, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 70, "end": 71, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 71, "end": 79, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 73, "end": 79, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 90, "end": 93, "ctxt": 0 }, "value": "Bar", "optional": false }, "declare": false, "span": { "start": 84, "end": 119, "ctxt": 0 }, "decorators": [], "body": [], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 105, "end": 106, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 105, "end": 106, "ctxt": 0 }, "value": "I", "optional": false }, "typeArguments": null } ] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 127, "end": 131, "ctxt": 0 }, "value": "Bar2", "optional": false }, "declare": false, "span": { "start": 121, "end": 172, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 160, "end": 170, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 160, "end": 161, "ctxt": 0 }, "value": "y", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 161, "end": 169, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 163, "end": 169, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 143, "end": 144, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 143, "end": 144, "ctxt": 0 }, "value": "I", "optional": false }, "typeArguments": null } ] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 180, "end": 184, "ctxt": 0 }, "value": "Bar3", "optional": false }, "declare": false, "span": { "start": 174, "end": 240, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 213, "end": 223, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 213, "end": 214, "ctxt": 0 }, "value": "x", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 214, "end": 222, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 216, "end": 222, "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": 228, "end": 238, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 228, "end": 229, "ctxt": 0 }, "value": "y", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 229, "end": 237, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 231, "end": 237, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 196, "end": 197, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 196, "end": 197, "ctxt": 0 }, "value": "I", "optional": false }, "typeArguments": null } ] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 248, "end": 252, "ctxt": 0 }, "value": "Bar4", "optional": false }, "declare": false, "span": { "start": 242, "end": 318, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 281, "end": 301, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 291, "end": 292, "ctxt": 0 }, "value": "x", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 292, "end": 300, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 294, "end": 300, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 306, "end": 316, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 306, "end": 307, "ctxt": 0 }, "value": "y", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 307, "end": 315, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 309, "end": 315, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 264, "end": 265, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 264, "end": 265, "ctxt": 0 }, "value": "I", "optional": false }, "typeArguments": null } ] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 326, "end": 330, "ctxt": 0 }, "value": "Bar5", "optional": false }, "declare": false, "span": { "start": 320, "end": 368, "ctxt": 0 }, "decorators": [], "body": [], "superClass": { "type": "Identifier", "span": { "start": 339, "end": 342, "ctxt": 0 }, "value": "Foo", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 354, "end": 355, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 354, "end": 355, "ctxt": 0 }, "value": "I", "optional": false }, "typeArguments": null } ] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 376, "end": 380, "ctxt": 0 }, "value": "Bar6", "optional": false }, "declare": false, "span": { "start": 370, "end": 443, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 421, "end": 441, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 431, "end": 432, "ctxt": 0 }, "value": "y", "optional": false }, "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": "protected", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": { "type": "Identifier", "span": { "start": 389, "end": 392, "ctxt": 0 }, "value": "Foo", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 404, "end": 405, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 404, "end": 405, "ctxt": 0 }, "value": "I", "optional": false }, "typeArguments": null } ] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 451, "end": 455, "ctxt": 0 }, "value": "Bar7", "optional": false }, "declare": false, "span": { "start": 445, "end": 499, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 487, "end": 497, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 487, "end": 488, "ctxt": 0 }, "value": "y", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 488, "end": 496, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 490, "end": 496, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": { "type": "Identifier", "span": { "start": 464, "end": 467, "ctxt": 0 }, "value": "Foo", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 479, "end": 480, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 479, "end": 480, "ctxt": 0 }, "value": "I", "optional": false }, "typeArguments": null } ] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 507, "end": 511, "ctxt": 0 }, "value": "Bar8", "optional": false }, "declare": false, "span": { "start": 501, "end": 570, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 543, "end": 553, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 543, "end": 544, "ctxt": 0 }, "value": "x", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 544, "end": 552, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 546, "end": 552, "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": 558, "end": 568, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 558, "end": 559, "ctxt": 0 }, "value": "y", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 559, "end": 567, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 561, "end": 567, "ctxt": 0 }, "kind": "number" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": { "type": "Identifier", "span": { "start": 520, "end": 523, "ctxt": 0 }, "value": "Foo", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 535, "end": 536, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 535, "end": 536, "ctxt": 0 }, "value": "I", "optional": false }, "typeArguments": null } ] } ], "interpreter": null }