swc/crates/swc_ecma_parser/tests/tsc/subtypingWithObjectMembers3.json

1976 lines
58 KiB
JSON
Raw Normal View History

{
"type": "Script",
"span": {
"start": 0,
"end": 1349,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 0,
"end": 37,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 10,
"end": 14,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 15,
"end": 37,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 22,
"end": 34,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 22,
"end": 25,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 25,
"end": 33,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 27,
"end": 33,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 41,
"end": 94,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 51,
"end": 58,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 67,
"end": 71,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 67,
"end": 71,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 72,
"end": 94,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 79,
"end": 91,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 79,
"end": 82,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 82,
"end": 90,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 84,
"end": 90,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 284,
"end": 810,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 291,
"end": 302,
"ctxt": 0
},
"value": "NotOptional",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 303,
"end": 810,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 310,
"end": 373,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 320,
"end": 321,
"ctxt": 0
},
"value": "A",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 322,
"end": 373,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 333,
"end": 343,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 333,
"end": 336,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 336,
"end": 342,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 338,
"end": 342,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 338,
"end": 342,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 353,
"end": 366,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 353,
"end": 356,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 356,
"end": 365,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 358,
"end": 365,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 358,
"end": 365,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 381,
"end": 469,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 391,
"end": 392,
"ctxt": 0
},
"value": "B",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 401,
"end": 402,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 401,
"end": 402,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 403,
"end": 469,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 414,
"end": 427,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 414,
"end": 417,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 417,
"end": 426,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 419,
"end": 426,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 419,
"end": 426,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 443,
"end": 453,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 443,
"end": 446,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 446,
"end": 452,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 448,
"end": 452,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 448,
"end": 452,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 477,
"end": 539,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 487,
"end": 489,
"ctxt": 0
},
"value": "A2",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 490,
"end": 539,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 501,
"end": 509,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "NumericLiteral",
"span": {
"start": 501,
"end": 502,
"ctxt": 0
},
"value": 1.0
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 502,
"end": 508,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 504,
"end": 508,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 504,
"end": 508,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 519,
"end": 532,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "NumericLiteral",
"span": {
"start": 519,
"end": 522,
"ctxt": 0
},
"value": 2.0
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 522,
"end": 531,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 524,
"end": 531,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 524,
"end": 531,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 547,
"end": 633,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 557,
"end": 559,
"ctxt": 0
},
"value": "B2",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 568,
"end": 570,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 568,
"end": 570,
"ctxt": 0
},
"value": "A2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 571,
"end": 633,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 582,
"end": 593,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "NumericLiteral",
"span": {
"start": 582,
"end": 583,
"ctxt": 0
},
"value": 1.0
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 583,
"end": 592,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 585,
"end": 592,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 585,
"end": 592,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 609,
"end": 617,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "NumericLiteral",
"span": {
"start": 609,
"end": 610,
"ctxt": 0
},
"value": 2.0
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 610,
"end": 616,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 612,
"end": 616,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 612,
"end": 616,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 641,
"end": 707,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 651,
"end": 653,
"ctxt": 0
},
"value": "A3",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 654,
"end": 707,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 665,
"end": 675,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "StringLiteral",
"span": {
"start": 665,
"end": 668,
"ctxt": 0
},
"value": "1",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 668,
"end": 674,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 670,
"end": 674,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 670,
"end": 674,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 685,
"end": 700,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "StringLiteral",
"span": {
"start": 685,
"end": 690,
"ctxt": 0
},
"value": "2.0",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 690,
"end": 699,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 692,
"end": 699,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 692,
"end": 699,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 715,
"end": 807,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 725,
"end": 727,
"ctxt": 0
},
"value": "B3",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 736,
"end": 738,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 736,
"end": 738,
"ctxt": 0
},
"value": "A3",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 739,
"end": 807,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 750,
"end": 763,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "StringLiteral",
"span": {
"start": 750,
"end": 753,
"ctxt": 0
},
"value": "1",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 753,
"end": 762,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 755,
"end": 762,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 755,
"end": 762,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 779,
"end": 791,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "StringLiteral",
"span": {
"start": 779,
"end": 784,
"ctxt": 0
},
"value": "2.0",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 784,
"end": 790,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 786,
"end": 790,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 786,
"end": 790,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 814,
"end": 1349,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 821,
"end": 829,
"ctxt": 0
},
"value": "Optional",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 830,
"end": 1349,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 837,
"end": 902,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 847,
"end": 848,
"ctxt": 0
},
"value": "A",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 849,
"end": 902,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 860,
"end": 871,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 860,
"end": 863,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 864,
"end": 870,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 866,
"end": 870,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 866,
"end": 870,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 881,
"end": 895,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 881,
"end": 884,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 885,
"end": 894,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 887,
"end": 894,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 887,
"end": 894,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 910,
"end": 1000,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 920,
"end": 921,
"ctxt": 0
},
"value": "B",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 930,
"end": 931,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 930,
"end": 931,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 932,
"end": 1000,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 943,
"end": 957,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 943,
"end": 946,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 947,
"end": 956,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 949,
"end": 956,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 949,
"end": 956,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 973,
"end": 984,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 973,
"end": 976,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 977,
"end": 983,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 979,
"end": 983,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 979,
"end": 983,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1008,
"end": 1072,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1018,
"end": 1020,
"ctxt": 0
},
"value": "A2",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1021,
"end": 1072,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1032,
"end": 1041,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "NumericLiteral",
"span": {
"start": 1032,
"end": 1033,
"ctxt": 0
},
"value": 1.0
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1034,
"end": 1040,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1036,
"end": 1040,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1036,
"end": 1040,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1051,
"end": 1065,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "NumericLiteral",
"span": {
"start": 1051,
"end": 1054,
"ctxt": 0
},
"value": 2.0
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1055,
"end": 1064,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1057,
"end": 1064,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1057,
"end": 1064,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1080,
"end": 1168,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1090,
"end": 1092,
"ctxt": 0
},
"value": "B2",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1101,
"end": 1103,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1101,
"end": 1103,
"ctxt": 0
},
"value": "A2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1104,
"end": 1168,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1115,
"end": 1127,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "NumericLiteral",
"span": {
"start": 1115,
"end": 1116,
"ctxt": 0
},
"value": 1.0
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1117,
"end": 1126,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1119,
"end": 1126,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1119,
"end": 1126,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1143,
"end": 1152,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "NumericLiteral",
"span": {
"start": 1143,
"end": 1144,
"ctxt": 0
},
"value": 2.0
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1145,
"end": 1151,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1147,
"end": 1151,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1147,
"end": 1151,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1176,
"end": 1244,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1186,
"end": 1188,
"ctxt": 0
},
"value": "A3",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1189,
"end": 1244,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1200,
"end": 1211,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "StringLiteral",
"span": {
"start": 1200,
"end": 1203,
"ctxt": 0
},
"value": "1",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1204,
"end": 1210,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1206,
"end": 1210,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1206,
"end": 1210,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1221,
"end": 1237,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "StringLiteral",
"span": {
"start": 1221,
"end": 1226,
"ctxt": 0
},
"value": "2.0",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1227,
"end": 1236,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1229,
"end": 1236,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1229,
"end": 1236,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1252,
"end": 1346,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1262,
"end": 1264,
"ctxt": 0
},
"value": "B3",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1273,
"end": 1275,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1273,
"end": 1275,
"ctxt": 0
},
"value": "A3",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1276,
"end": 1346,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1287,
"end": 1301,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "StringLiteral",
"span": {
"start": 1287,
"end": 1290,
"ctxt": 0
},
"value": "1",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1291,
"end": 1300,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1293,
"end": 1300,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1293,
"end": 1300,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1317,
"end": 1330,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "StringLiteral",
"span": {
"start": 1317,
"end": 1322,
"ctxt": 0
},
"value": "2.0",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1323,
"end": 1329,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1325,
"end": 1329,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1325,
"end": 1329,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
}
]
}
}
],
"interpreter": null
}