{ "type": "Script", "span": { "start": 120, "end": 732, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 126, "end": 127, "ctxt": 0 }, "value": "C", "optional": false }, "declare": false, "span": { "start": 120, "end": 146, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 134, "end": 144, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 134, "end": 135, "ctxt": 0 }, "value": "a", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 135, "end": 143, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 137, "end": 143, "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": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 154, "end": 156, "ctxt": 0 }, "value": "C2", "optional": false }, "declare": false, "span": { "start": 148, "end": 175, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 163, "end": 173, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 163, "end": 164, "ctxt": 0 }, "value": "b", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 164, "end": 172, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 166, "end": 172, "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": "TsInterfaceDeclaration", "span": { "start": 177, "end": 217, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 187, "end": 188, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 197, "end": 198, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 197, "end": 198, "ctxt": 0 }, "value": "C", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 199, "end": 217, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 205, "end": 215, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 205, "end": 206, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 206, "end": 214, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 208, "end": 214, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 219, "end": 260, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 229, "end": 230, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 239, "end": 241, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 239, "end": 241, "ctxt": 0 }, "value": "C2", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 242, "end": 260, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 248, "end": 258, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 248, "end": 249, "ctxt": 0 }, "value": "z", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 249, "end": 257, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 251, "end": 257, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 268, "end": 269, "ctxt": 0 }, "value": "D", "optional": false }, "declare": false, "span": { "start": 262, "end": 346, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 289, "end": 299, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 289, "end": 290, "ctxt": 0 }, "value": "a", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 290, "end": 298, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 292, "end": 298, "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": 304, "end": 314, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 304, "end": 305, "ctxt": 0 }, "value": "b", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 305, "end": 313, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 307, "end": 313, "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": 319, "end": 329, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 319, "end": 320, "ctxt": 0 }, "value": "y", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 320, "end": 328, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 322, "end": 328, "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": 334, "end": 344, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 334, "end": 335, "ctxt": 0 }, "value": "z", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 335, "end": 343, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 337, "end": 343, "ctxt": 0 }, "kind": "string" } }, "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": 281, "end": 282, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 281, "end": 282, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": null } ] }, { "type": "VariableDeclaration", "span": { "start": 348, "end": 357, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 352, "end": 356, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 352, "end": 353, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 353, "end": 356, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 355, "end": 356, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 355, "end": 356, "ctxt": 0 }, "value": "A", "optional": false }, "typeParams": null } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 358, "end": 370, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 362, "end": 369, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 362, "end": 363, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 366, "end": 369, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 366, "end": 367, "ctxt": 0 }, "value": "a", "optional": false }, "property": { "type": "Identifier", "span": { "start": 368, "end": 369, "ctxt": 0 }, "value": "a", "optional": false } }, "definite": false } ] }, { "type": "TsModuleDeclaration", "span": { "start": 406, "end": 732, "ctxt": 0 }, "declare": false, "global": false, "id": { "type": "Identifier", "span": { "start": 413, "end": 414, "ctxt": 0 }, "value": "M", "optional": false }, "body": { "type": "TsModuleBlock", "span": { "start": 415, "end": 732, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 427, "end": 428, "ctxt": 0 }, "value": "C", "optional": false }, "declare": false, "span": { "start": 421, "end": 453, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 442, "end": 447, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 442, "end": 443, "ctxt": 0 }, "value": "a", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 443, "end": 446, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 445, "end": 446, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 445, "end": 446, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 428, "end": 431, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 429, "end": 430, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 429, "end": 430, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 465, "end": 467, "ctxt": 0 }, "value": "C2", "optional": false }, "declare": false, "span": { "start": 459, "end": 492, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 481, "end": 486, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 481, "end": 482, "ctxt": 0 }, "value": "b", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 482, "end": 485, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 484, "end": 485, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 484, "end": 485, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 467, "end": 470, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 468, "end": 469, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 468, "end": 469, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "superTypeParams": null, "implements": [] }, { "type": "TsInterfaceDeclaration", "span": { "start": 498, "end": 547, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 508, "end": 509, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 509, "end": 512, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 510, "end": 511, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 510, "end": 511, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 521, "end": 525, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 521, "end": 522, "ctxt": 0 }, "value": "C", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 522, "end": 525, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 523, "end": 524, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 523, "end": 524, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 526, "end": 547, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 536, "end": 541, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 536, "end": 537, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 537, "end": 540, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 539, "end": 540, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 539, "end": 540, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 553, "end": 608, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 563, "end": 564, "ctxt": 0 }, "value": "A", "optional": false }, "declare": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 564, "end": 567, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 565, "end": 566, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 565, "end": 566, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 576, "end": 586, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 576, "end": 578, "ctxt": 0 }, "value": "C2", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 578, "end": 586, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 579, "end": 585, "ctxt": 0 }, "kind": "string" } ] } } ], "body": { "type": "TsInterfaceBody", "span": { "start": 587, "end": 608, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 597, "end": 602, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 597, "end": 598, "ctxt": 0 }, "value": "z", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 598, "end": 601, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 600, "end": 601, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 600, "end": 601, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 620, "end": 621, "ctxt": 0 }, "value": "D", "optional": false }, "declare": false, "span": { "start": 614, "end": 730, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 654, "end": 665, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 654, "end": 655, "ctxt": 0 }, "value": "a", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 655, "end": 664, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 657, "end": 664, "ctxt": 0 }, "kind": "boolean" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 674, "end": 684, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 674, "end": 675, "ctxt": 0 }, "value": "b", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 675, "end": 683, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 677, "end": 683, "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": 693, "end": 704, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 693, "end": 694, "ctxt": 0 }, "value": "y", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 694, "end": 703, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 696, "end": 703, "ctxt": 0 }, "kind": "boolean" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 713, "end": 724, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 713, "end": 714, "ctxt": 0 }, "value": "z", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 714, "end": 723, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 716, "end": 723, "ctxt": 0 }, "kind": "boolean" } }, "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": 633, "end": 643, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 633, "end": 634, "ctxt": 0 }, "value": "A", "optional": false }, "typeArguments": { "type": "TsTypeParameterInstantiation", "span": { "start": 634, "end": 643, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 635, "end": 642, "ctxt": 0 }, "kind": "boolean" } ] } } ] } ] } } ], "interpreter": null }