{ "type": "Script", "span": { "start": 18, "end": 1621, "ctxt": 0 }, "body": [ { "type": "VariableDeclaration", "span": { "start": 18, "end": 41, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 22, "end": 41, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 22, "end": 23, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 23, "end": 41, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 25, "end": 41, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 27, "end": 39, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 27, "end": 30, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 30, "end": 38, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 32, "end": 38, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 42, "end": 78, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 46, "end": 78, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 46, "end": 47, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 47, "end": 78, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 49, "end": 78, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 51, "end": 63, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 51, "end": 54, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 54, "end": 62, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 56, "end": 62, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 64, "end": 76, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 64, "end": 67, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 67, "end": 75, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 69, "end": 75, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 86, "end": 90, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 80, "end": 409, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 97, "end": 109, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 97, "end": 98, "ctxt": 0 }, "value": "a", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 98, "end": 108, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 100, "end": 108, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 107, "end": 108, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassMethod", "span": { "start": 114, "end": 132, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 114, "end": 115, "ctxt": 0 }, "value": "b", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 116, "end": 127, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 116, "end": 127, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 117, "end": 127, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 119, "end": 127, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 126, "end": 127, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "decorators": [], "span": { "start": 114, "end": 132, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 129, "end": 132, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassMethod", "span": { "start": 137, "end": 158, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 141, "end": 142, "ctxt": 0 }, "value": "c", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 137, "end": 158, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 145, "end": 158, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 147, "end": 156, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 154, "end": 155, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "getter", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassMethod", "span": { "start": 163, "end": 185, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 167, "end": 168, "ctxt": 0 }, "value": "c", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 169, "end": 180, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 169, "end": 180, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 170, "end": 180, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 172, "end": 180, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 179, "end": 180, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "decorators": [], "span": { "start": 163, "end": 185, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 182, "end": 185, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "setter", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassProperty", "span": { "start": 190, "end": 215, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 190, "end": 191, "ctxt": 0 }, "value": "d", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 191, "end": 214, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 193, "end": 214, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 194, "end": 205, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 195, "end": 205, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 197, "end": 205, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 204, "end": 205, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 207, "end": 214, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 210, "end": 214, "ctxt": 0 }, "kind": "void" } } } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 221, "end": 240, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 228, "end": 229, "ctxt": 0 }, "value": "r", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 229, "end": 239, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 231, "end": 239, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 238, "end": 239, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } }, "isStatic": true, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassMethod", "span": { "start": 245, "end": 270, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 252, "end": 253, "ctxt": 0 }, "value": "s", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 254, "end": 265, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 254, "end": 265, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 255, "end": 265, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 257, "end": 265, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 264, "end": 265, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "decorators": [], "span": { "start": 245, "end": 270, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 267, "end": 270, "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": 275, "end": 303, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 286, "end": 287, "ctxt": 0 }, "value": "t", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 275, "end": 303, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 290, "end": 303, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 292, "end": 301, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 299, "end": 300, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "getter", "isStatic": true, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassMethod", "span": { "start": 308, "end": 337, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 319, "end": 320, "ctxt": 0 }, "value": "t", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 321, "end": 332, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 321, "end": 332, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 322, "end": 332, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 324, "end": 332, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 331, "end": 332, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "decorators": [], "span": { "start": 308, "end": 337, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 334, "end": 337, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "setter", "isStatic": true, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassProperty", "span": { "start": 342, "end": 374, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 349, "end": 350, "ctxt": 0 }, "value": "u", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 350, "end": 373, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 352, "end": 373, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 353, "end": 364, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 354, "end": 364, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 356, "end": 364, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 363, "end": 364, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 366, "end": 373, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 369, "end": 373, "ctxt": 0 }, "kind": "void" } } } }, "isStatic": true, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "Constructor", "span": { "start": 380, "end": 407, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 380, "end": 391, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 392, "end": 403, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 392, "end": 403, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 393, "end": 403, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 395, "end": 403, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 402, "end": 403, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 405, "end": 407, "ctxt": 0 }, "stmts": [] }, "accessibility": null, "isOptional": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 485, "end": 493, "ctxt": 0 }, "value": "Derived1", "optional": false }, "declare": false, "span": { "start": 479, "end": 580, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 513, "end": 535, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 523, "end": 524, "ctxt": 0 }, "value": "a", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 524, "end": 534, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 526, "end": 534, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 533, "end": 534, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } }, "isStatic": false, "decorators": [], "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "Constructor", "span": { "start": 540, "end": 578, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 540, "end": 551, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 552, "end": 563, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 552, "end": 563, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 553, "end": 563, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 555, "end": 563, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 562, "end": 563, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 565, "end": 578, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 567, "end": 576, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 567, "end": 575, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 567, "end": 572, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 573, "end": 574, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 502, "end": 506, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 588, "end": 596, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "span": { "start": 582, "end": 689, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 616, "end": 644, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 626, "end": 627, "ctxt": 0 }, "value": "b", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 628, "end": 639, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 628, "end": 639, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 629, "end": 639, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 631, "end": 639, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 638, "end": 639, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "decorators": [], "span": { "start": 616, "end": 644, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 641, "end": 644, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "Constructor", "span": { "start": 649, "end": 687, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 649, "end": 660, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 661, "end": 672, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 661, "end": 672, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 662, "end": 672, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 664, "end": 672, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 671, "end": 672, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 674, "end": 687, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 676, "end": 685, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 676, "end": 684, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 676, "end": 681, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 682, "end": 683, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 605, "end": 609, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 697, "end": 705, "ctxt": 0 }, "value": "Derived3", "optional": false }, "declare": false, "span": { "start": 691, "end": 801, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 725, "end": 756, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 739, "end": 740, "ctxt": 0 }, "value": "c", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 725, "end": 756, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 743, "end": 756, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 745, "end": 754, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 752, "end": 753, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "getter", "isStatic": false, "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "Constructor", "span": { "start": 761, "end": 799, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 761, "end": 772, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 773, "end": 784, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 773, "end": 784, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 774, "end": 784, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 776, "end": 784, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 783, "end": 784, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 786, "end": 799, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 788, "end": 797, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 788, "end": 796, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 788, "end": 793, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 794, "end": 795, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 714, "end": 718, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 809, "end": 817, "ctxt": 0 }, "value": "Derived4", "optional": false }, "declare": false, "span": { "start": 803, "end": 914, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 837, "end": 869, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 851, "end": 852, "ctxt": 0 }, "value": "c", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 853, "end": 864, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 853, "end": 864, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 854, "end": 864, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 856, "end": 864, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 863, "end": 864, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "decorators": [], "span": { "start": 837, "end": 869, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 866, "end": 869, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "setter", "isStatic": false, "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "Constructor", "span": { "start": 874, "end": 912, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 874, "end": 885, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 886, "end": 897, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 886, "end": 897, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 887, "end": 897, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 889, "end": 897, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 896, "end": 897, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 899, "end": 912, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 901, "end": 910, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 901, "end": 909, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 901, "end": 906, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 907, "end": 908, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 826, "end": 830, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 922, "end": 930, "ctxt": 0 }, "value": "Derived5", "optional": false }, "declare": false, "span": { "start": 916, "end": 1031, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 950, "end": 986, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 960, "end": 961, "ctxt": 0 }, "value": "d", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 961, "end": 984, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 963, "end": 984, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 964, "end": 975, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 965, "end": 975, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 967, "end": 975, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 974, "end": 975, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 977, "end": 984, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 980, "end": 984, "ctxt": 0 }, "kind": "void" } } } }, "isStatic": false, "decorators": [], "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "Constructor", "span": { "start": 991, "end": 1029, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 991, "end": 1002, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 1003, "end": 1014, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1003, "end": 1014, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1004, "end": 1014, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1006, "end": 1014, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1013, "end": 1014, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 1016, "end": 1029, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1018, "end": 1027, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1018, "end": 1026, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 1018, "end": 1023, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1024, "end": 1025, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 939, "end": 943, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1039, "end": 1047, "ctxt": 0 }, "value": "Derived6", "optional": false }, "declare": false, "span": { "start": 1033, "end": 1141, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 1067, "end": 1096, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1084, "end": 1085, "ctxt": 0 }, "value": "r", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1085, "end": 1095, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1087, "end": 1095, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1094, "end": 1095, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } }, "isStatic": true, "decorators": [], "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "Constructor", "span": { "start": 1101, "end": 1139, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1101, "end": 1112, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 1113, "end": 1124, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1113, "end": 1124, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1114, "end": 1124, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1116, "end": 1124, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1123, "end": 1124, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 1126, "end": 1139, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1128, "end": 1137, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1128, "end": 1136, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 1128, "end": 1133, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1134, "end": 1135, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 1056, "end": 1060, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1149, "end": 1157, "ctxt": 0 }, "value": "Derived7", "optional": false }, "declare": false, "span": { "start": 1143, "end": 1257, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 1177, "end": 1212, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1194, "end": 1195, "ctxt": 0 }, "value": "s", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 1196, "end": 1207, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1196, "end": 1207, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1197, "end": 1207, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1199, "end": 1207, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1206, "end": 1207, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "decorators": [], "span": { "start": 1177, "end": 1212, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1209, "end": 1212, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": true, "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "Constructor", "span": { "start": 1217, "end": 1255, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1217, "end": 1228, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 1229, "end": 1240, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1229, "end": 1240, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1230, "end": 1240, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1232, "end": 1240, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1239, "end": 1240, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 1242, "end": 1255, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1244, "end": 1253, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1244, "end": 1252, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 1244, "end": 1249, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1250, "end": 1251, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 1166, "end": 1170, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1265, "end": 1273, "ctxt": 0 }, "value": "Derived8", "optional": false }, "declare": false, "span": { "start": 1259, "end": 1376, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 1293, "end": 1331, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1314, "end": 1315, "ctxt": 0 }, "value": "t", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 1293, "end": 1331, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1318, "end": 1331, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 1320, "end": 1329, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 1327, "end": 1328, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "getter", "isStatic": true, "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "Constructor", "span": { "start": 1336, "end": 1374, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1336, "end": 1347, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 1348, "end": 1359, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1348, "end": 1359, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1349, "end": 1359, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1351, "end": 1359, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1358, "end": 1359, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 1361, "end": 1374, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1363, "end": 1372, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1363, "end": 1371, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 1363, "end": 1368, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1369, "end": 1370, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 1282, "end": 1286, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1384, "end": 1392, "ctxt": 0 }, "value": "Derived9", "optional": false }, "declare": false, "span": { "start": 1378, "end": 1496, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 1412, "end": 1451, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1433, "end": 1434, "ctxt": 0 }, "value": "t", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 1435, "end": 1446, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1435, "end": 1446, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1436, "end": 1446, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1438, "end": 1446, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1445, "end": 1446, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "decorators": [], "span": { "start": 1412, "end": 1451, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1448, "end": 1451, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "setter", "isStatic": true, "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "Constructor", "span": { "start": 1456, "end": 1494, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1456, "end": 1467, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 1468, "end": 1479, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1468, "end": 1479, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1469, "end": 1479, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1471, "end": 1479, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1478, "end": 1479, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 1481, "end": 1494, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1483, "end": 1492, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1483, "end": 1491, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 1483, "end": 1488, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1489, "end": 1490, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 1401, "end": 1405, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1504, "end": 1513, "ctxt": 0 }, "value": "Derived10", "optional": false }, "declare": false, "span": { "start": 1498, "end": 1621, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 1533, "end": 1576, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1550, "end": 1551, "ctxt": 0 }, "value": "u", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1551, "end": 1574, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1553, "end": 1574, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1554, "end": 1565, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1555, "end": 1565, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1557, "end": 1565, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1564, "end": 1565, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1567, "end": 1574, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1570, "end": 1574, "ctxt": 0 }, "kind": "void" } } } }, "isStatic": true, "decorators": [], "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "Constructor", "span": { "start": 1581, "end": 1619, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1581, "end": 1592, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 1593, "end": 1604, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1593, "end": 1604, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1594, "end": 1604, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1596, "end": 1604, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1603, "end": 1604, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 1606, "end": 1619, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1608, "end": 1617, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1608, "end": 1616, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 1608, "end": 1613, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1614, "end": 1615, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 1522, "end": 1526, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] } ], "interpreter": null }