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

13078 lines
438 KiB
JSON

{
"type": "Script",
"span": {
"start": 103,
"end": 6345,
"ctxt": 0
},
"body": [
{
"type": "TsModuleDeclaration",
"span": {
"start": 103,
"end": 2237,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 110,
"end": 124,
"ctxt": 0
},
"value": "ClassTypeParam",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 125,
"end": 2237,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 131,
"end": 312,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 141,
"end": 145,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 145,
"end": 148,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 146,
"end": 147,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 146,
"end": 147,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 149,
"end": 312,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 159,
"end": 174,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 159,
"end": 160,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 160,
"end": 173,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 162,
"end": 173,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 169,
"end": 173,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 172,
"end": 173,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 172,
"end": 173,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 183,
"end": 204,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 183,
"end": 185,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 185,
"end": 203,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 187,
"end": 203,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 192,
"end": 197,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 194,
"end": 197,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 196,
"end": 197,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 196,
"end": 197,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 199,
"end": 203,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 202,
"end": 203,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 202,
"end": 203,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 213,
"end": 233,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 213,
"end": 215,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 215,
"end": 232,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 217,
"end": 232,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 222,
"end": 226,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 223,
"end": 226,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 225,
"end": 226,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 225,
"end": 226,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 228,
"end": 232,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 231,
"end": 232,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 231,
"end": 232,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 242,
"end": 269,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 242,
"end": 244,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 244,
"end": 268,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 246,
"end": 268,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 251,
"end": 255,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 252,
"end": 255,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 254,
"end": 255,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 254,
"end": 255,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 257,
"end": 262,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 259,
"end": 262,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 261,
"end": 262,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 261,
"end": 262,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 264,
"end": 268,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 267,
"end": 268,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 267,
"end": 268,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 278,
"end": 306,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 278,
"end": 280,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 280,
"end": 305,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 282,
"end": 305,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 287,
"end": 292,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 289,
"end": 292,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 291,
"end": 292,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 291,
"end": 292,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 294,
"end": 299,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 296,
"end": 299,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 298,
"end": 299,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 298,
"end": 299,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 301,
"end": 305,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 304,
"end": 305,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 304,
"end": 305,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 318,
"end": 414,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 328,
"end": 330,
"ctxt": 0
},
"value": "I1",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 330,
"end": 333,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 331,
"end": 332,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 331,
"end": 332,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 342,
"end": 349,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 342,
"end": 346,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 346,
"end": 349,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 347,
"end": 348,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 347,
"end": 348,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 350,
"end": 414,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 360,
"end": 375,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 360,
"end": 361,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 361,
"end": 374,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 363,
"end": 374,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 370,
"end": 374,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 373,
"end": 374,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 373,
"end": 374,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 420,
"end": 521,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 430,
"end": 432,
"ctxt": 0
},
"value": "I2",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 432,
"end": 435,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 433,
"end": 434,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 433,
"end": 434,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 444,
"end": 451,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 444,
"end": 448,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 448,
"end": 451,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 449,
"end": 450,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 449,
"end": 450,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 452,
"end": 521,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 462,
"end": 482,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 462,
"end": 463,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 463,
"end": 481,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 465,
"end": 481,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 470,
"end": 475,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 472,
"end": 475,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 474,
"end": 475,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 474,
"end": 475,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 477,
"end": 481,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 480,
"end": 481,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 480,
"end": 481,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 527,
"end": 629,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 537,
"end": 539,
"ctxt": 0
},
"value": "I3",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 539,
"end": 542,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 540,
"end": 541,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 540,
"end": 541,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 551,
"end": 558,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 551,
"end": 555,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 555,
"end": 558,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 556,
"end": 557,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 556,
"end": 557,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 559,
"end": 629,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 569,
"end": 588,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 569,
"end": 570,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 570,
"end": 587,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 572,
"end": 587,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 577,
"end": 581,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 578,
"end": 581,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 580,
"end": 581,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 580,
"end": 581,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 583,
"end": 587,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 586,
"end": 587,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 586,
"end": 587,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 636,
"end": 733,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 646,
"end": 648,
"ctxt": 0
},
"value": "I4",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 648,
"end": 651,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 649,
"end": 650,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 649,
"end": 650,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 660,
"end": 667,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 660,
"end": 664,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 664,
"end": 667,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 665,
"end": 666,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 665,
"end": 666,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 668,
"end": 733,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 678,
"end": 694,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 678,
"end": 680,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 680,
"end": 693,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 682,
"end": 693,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 689,
"end": 693,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 692,
"end": 693,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 692,
"end": 693,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 739,
"end": 841,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 749,
"end": 751,
"ctxt": 0
},
"value": "I5",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 751,
"end": 754,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 752,
"end": 753,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 752,
"end": 753,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 763,
"end": 770,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 763,
"end": 767,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 767,
"end": 770,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 768,
"end": 769,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 768,
"end": 769,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 771,
"end": 841,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 781,
"end": 802,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 781,
"end": 783,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 783,
"end": 801,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 785,
"end": 801,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 790,
"end": 795,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 792,
"end": 795,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 794,
"end": 795,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 794,
"end": 795,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 797,
"end": 801,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 800,
"end": 801,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 800,
"end": 801,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 847,
"end": 944,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 857,
"end": 859,
"ctxt": 0
},
"value": "I6",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 859,
"end": 862,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 860,
"end": 861,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 860,
"end": 861,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 871,
"end": 878,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 871,
"end": 875,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 875,
"end": 878,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 876,
"end": 877,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 876,
"end": 877,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 879,
"end": 944,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 889,
"end": 909,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 889,
"end": 891,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 891,
"end": 908,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 893,
"end": 908,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 898,
"end": 902,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 899,
"end": 902,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 901,
"end": 902,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 901,
"end": 902,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 904,
"end": 908,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 907,
"end": 908,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 907,
"end": 908,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 951,
"end": 1044,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 961,
"end": 963,
"ctxt": 0
},
"value": "I7",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 963,
"end": 966,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 964,
"end": 965,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 964,
"end": 965,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 975,
"end": 982,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 975,
"end": 979,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 979,
"end": 982,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 980,
"end": 981,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 980,
"end": 981,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 983,
"end": 1044,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 993,
"end": 1009,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 993,
"end": 995,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 995,
"end": 1008,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 997,
"end": 1008,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1004,
"end": 1008,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1007,
"end": 1008,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1007,
"end": 1008,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1050,
"end": 1148,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1060,
"end": 1062,
"ctxt": 0
},
"value": "I8",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1062,
"end": 1065,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1063,
"end": 1064,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1063,
"end": 1064,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1074,
"end": 1081,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1074,
"end": 1078,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1078,
"end": 1081,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1079,
"end": 1080,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1079,
"end": 1080,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1082,
"end": 1148,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1092,
"end": 1113,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1092,
"end": 1094,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1094,
"end": 1112,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1096,
"end": 1112,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1101,
"end": 1106,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1103,
"end": 1106,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1105,
"end": 1106,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1105,
"end": 1106,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1108,
"end": 1112,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1111,
"end": 1112,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1111,
"end": 1112,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1154,
"end": 1255,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1164,
"end": 1166,
"ctxt": 0
},
"value": "I9",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1166,
"end": 1169,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1167,
"end": 1168,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1167,
"end": 1168,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1178,
"end": 1185,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1178,
"end": 1182,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1182,
"end": 1185,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1183,
"end": 1184,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1183,
"end": 1184,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1186,
"end": 1255,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1196,
"end": 1216,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1196,
"end": 1198,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1198,
"end": 1215,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1200,
"end": 1215,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1205,
"end": 1209,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1206,
"end": 1209,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1208,
"end": 1209,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1208,
"end": 1209,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1211,
"end": 1215,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1214,
"end": 1215,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1214,
"end": 1215,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1261,
"end": 1372,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1271,
"end": 1274,
"ctxt": 0
},
"value": "I10",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1274,
"end": 1277,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1275,
"end": 1276,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1275,
"end": 1276,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1286,
"end": 1293,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1286,
"end": 1290,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1290,
"end": 1293,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1291,
"end": 1292,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1291,
"end": 1292,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1294,
"end": 1372,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1304,
"end": 1330,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1304,
"end": 1306,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1306,
"end": 1329,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1308,
"end": 1329,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1313,
"end": 1317,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1314,
"end": 1317,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1316,
"end": 1317,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1316,
"end": 1317,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1319,
"end": 1323,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1320,
"end": 1323,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1322,
"end": 1323,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1322,
"end": 1323,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1325,
"end": 1329,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1328,
"end": 1329,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1328,
"end": 1329,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1379,
"end": 1473,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1389,
"end": 1392,
"ctxt": 0
},
"value": "I11",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1392,
"end": 1395,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1393,
"end": 1394,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1393,
"end": 1394,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1404,
"end": 1411,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1404,
"end": 1408,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1408,
"end": 1411,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1409,
"end": 1410,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1409,
"end": 1410,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1412,
"end": 1473,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1422,
"end": 1438,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1422,
"end": 1424,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1424,
"end": 1437,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1426,
"end": 1437,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1433,
"end": 1437,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1436,
"end": 1437,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1436,
"end": 1437,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1479,
"end": 1585,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1489,
"end": 1492,
"ctxt": 0
},
"value": "I12",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1492,
"end": 1495,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1493,
"end": 1494,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1493,
"end": 1494,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1504,
"end": 1511,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1504,
"end": 1508,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1508,
"end": 1511,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1509,
"end": 1510,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1509,
"end": 1510,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1512,
"end": 1585,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1522,
"end": 1550,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1522,
"end": 1524,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1524,
"end": 1549,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1526,
"end": 1549,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1531,
"end": 1536,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1533,
"end": 1536,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1535,
"end": 1536,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1535,
"end": 1536,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1538,
"end": 1543,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1540,
"end": 1543,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1542,
"end": 1543,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1542,
"end": 1543,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1545,
"end": 1549,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1548,
"end": 1549,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1548,
"end": 1549,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1591,
"end": 1693,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1601,
"end": 1604,
"ctxt": 0
},
"value": "I13",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1604,
"end": 1607,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1605,
"end": 1606,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1605,
"end": 1606,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1616,
"end": 1623,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1616,
"end": 1620,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1620,
"end": 1623,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1621,
"end": 1622,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1621,
"end": 1622,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1624,
"end": 1693,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1634,
"end": 1654,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1634,
"end": 1636,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1636,
"end": 1653,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1638,
"end": 1653,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1643,
"end": 1647,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1644,
"end": 1647,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1646,
"end": 1647,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1646,
"end": 1647,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1649,
"end": 1653,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1652,
"end": 1653,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1652,
"end": 1653,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1699,
"end": 1804,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1709,
"end": 1712,
"ctxt": 0
},
"value": "I14",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1712,
"end": 1715,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1713,
"end": 1714,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1713,
"end": 1714,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1724,
"end": 1731,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1724,
"end": 1728,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1728,
"end": 1731,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1729,
"end": 1730,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1729,
"end": 1730,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1732,
"end": 1804,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1742,
"end": 1768,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1742,
"end": 1744,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1744,
"end": 1767,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1746,
"end": 1767,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1751,
"end": 1755,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1752,
"end": 1755,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1754,
"end": 1755,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1754,
"end": 1755,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1757,
"end": 1761,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1758,
"end": 1761,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1760,
"end": 1761,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1760,
"end": 1761,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1763,
"end": 1767,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1766,
"end": 1767,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1766,
"end": 1767,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1811,
"end": 1905,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1821,
"end": 1824,
"ctxt": 0
},
"value": "I15",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1824,
"end": 1827,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1825,
"end": 1826,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1825,
"end": 1826,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1836,
"end": 1843,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1836,
"end": 1840,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1840,
"end": 1843,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1841,
"end": 1842,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1841,
"end": 1842,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1844,
"end": 1905,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1854,
"end": 1870,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1854,
"end": 1856,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1856,
"end": 1869,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1858,
"end": 1869,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1865,
"end": 1869,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1868,
"end": 1869,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1868,
"end": 1869,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1911,
"end": 2017,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1921,
"end": 1924,
"ctxt": 0
},
"value": "I16",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1924,
"end": 1927,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1925,
"end": 1926,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1925,
"end": 1926,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1936,
"end": 1943,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1936,
"end": 1940,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1940,
"end": 1943,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1941,
"end": 1942,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1941,
"end": 1942,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1944,
"end": 2017,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1954,
"end": 1982,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1954,
"end": 1956,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1956,
"end": 1981,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1958,
"end": 1981,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1963,
"end": 1968,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1965,
"end": 1968,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1967,
"end": 1968,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1967,
"end": 1968,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1970,
"end": 1975,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1972,
"end": 1975,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1974,
"end": 1975,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1974,
"end": 1975,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1977,
"end": 1981,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1980,
"end": 1981,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1980,
"end": 1981,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2023,
"end": 2124,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2033,
"end": 2036,
"ctxt": 0
},
"value": "I17",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2036,
"end": 2039,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2037,
"end": 2038,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2037,
"end": 2038,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2048,
"end": 2055,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2048,
"end": 2052,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2052,
"end": 2055,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 2053,
"end": 2054,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2053,
"end": 2054,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2056,
"end": 2124,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2066,
"end": 2086,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2066,
"end": 2068,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2068,
"end": 2085,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2070,
"end": 2085,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2075,
"end": 2079,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2076,
"end": 2079,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2078,
"end": 2079,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2078,
"end": 2079,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2081,
"end": 2085,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2084,
"end": 2085,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2084,
"end": 2085,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2130,
"end": 2235,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2140,
"end": 2143,
"ctxt": 0
},
"value": "I18",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2143,
"end": 2146,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2144,
"end": 2145,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2144,
"end": 2145,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2155,
"end": 2162,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2155,
"end": 2159,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2159,
"end": 2162,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 2160,
"end": 2161,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2160,
"end": 2161,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2163,
"end": 2235,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2173,
"end": 2199,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2173,
"end": 2175,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2175,
"end": 2198,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2177,
"end": 2198,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2182,
"end": 2186,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2183,
"end": 2186,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2185,
"end": 2186,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2185,
"end": 2186,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 2188,
"end": 2192,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2189,
"end": 2192,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2191,
"end": 2192,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2191,
"end": 2192,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2194,
"end": 2198,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2197,
"end": 2198,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2197,
"end": 2198,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 2239,
"end": 3841,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 2246,
"end": 2270,
"ctxt": 0
},
"value": "GenericSignaturesInvalid",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 2271,
"end": 3841,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2309,
"end": 2503,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2319,
"end": 2324,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2325,
"end": 2503,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2335,
"end": 2353,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2335,
"end": 2336,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2336,
"end": 2352,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2338,
"end": 2352,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2342,
"end": 2345,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2343,
"end": 2344,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2343,
"end": 2344,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2348,
"end": 2352,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2351,
"end": 2352,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2351,
"end": 2352,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2362,
"end": 2386,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2362,
"end": 2364,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2364,
"end": 2385,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2366,
"end": 2385,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2374,
"end": 2379,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2376,
"end": 2379,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2378,
"end": 2379,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2378,
"end": 2379,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2370,
"end": 2373,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2371,
"end": 2372,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2371,
"end": 2372,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2381,
"end": 2385,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2384,
"end": 2385,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2384,
"end": 2385,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2395,
"end": 2418,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2395,
"end": 2397,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2397,
"end": 2417,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2399,
"end": 2417,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2407,
"end": 2411,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2408,
"end": 2411,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2410,
"end": 2411,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2410,
"end": 2411,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2403,
"end": 2406,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2404,
"end": 2405,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2404,
"end": 2405,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2413,
"end": 2417,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2416,
"end": 2417,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2416,
"end": 2417,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2427,
"end": 2457,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2427,
"end": 2429,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2429,
"end": 2456,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2431,
"end": 2456,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2439,
"end": 2443,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2440,
"end": 2443,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2442,
"end": 2443,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2442,
"end": 2443,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 2445,
"end": 2450,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2447,
"end": 2450,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2449,
"end": 2450,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2449,
"end": 2450,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2435,
"end": 2438,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2436,
"end": 2437,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2436,
"end": 2437,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2452,
"end": 2456,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2455,
"end": 2456,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2455,
"end": 2456,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2466,
"end": 2497,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2466,
"end": 2468,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2468,
"end": 2496,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2470,
"end": 2496,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2478,
"end": 2483,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2480,
"end": 2483,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2482,
"end": 2483,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2482,
"end": 2483,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 2485,
"end": 2490,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2487,
"end": 2490,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2489,
"end": 2490,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2489,
"end": 2490,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2474,
"end": 2477,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2475,
"end": 2476,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2475,
"end": 2476,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2492,
"end": 2496,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2495,
"end": 2496,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2495,
"end": 2496,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2509,
"end": 2571,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2519,
"end": 2521,
"ctxt": 0
},
"value": "I1",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2521,
"end": 2524,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2522,
"end": 2523,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2522,
"end": 2523,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2533,
"end": 2538,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2533,
"end": 2538,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2539,
"end": 2571,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2549,
"end": 2564,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2549,
"end": 2550,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2550,
"end": 2563,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2552,
"end": 2563,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2559,
"end": 2563,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2562,
"end": 2563,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2562,
"end": 2563,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2577,
"end": 2643,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2587,
"end": 2589,
"ctxt": 0
},
"value": "I2",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2589,
"end": 2592,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2590,
"end": 2591,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2590,
"end": 2591,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2601,
"end": 2606,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2601,
"end": 2606,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2607,
"end": 2643,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2617,
"end": 2637,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2617,
"end": 2618,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2618,
"end": 2636,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2620,
"end": 2636,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2625,
"end": 2630,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2627,
"end": 2630,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2629,
"end": 2630,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2629,
"end": 2630,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2632,
"end": 2636,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2635,
"end": 2636,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2635,
"end": 2636,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2649,
"end": 2715,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2659,
"end": 2661,
"ctxt": 0
},
"value": "I3",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2661,
"end": 2664,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2662,
"end": 2663,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2662,
"end": 2663,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2673,
"end": 2678,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2673,
"end": 2678,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2679,
"end": 2715,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2689,
"end": 2708,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2689,
"end": 2690,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2690,
"end": 2707,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2692,
"end": 2707,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2697,
"end": 2701,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2698,
"end": 2701,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2700,
"end": 2701,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2700,
"end": 2701,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2703,
"end": 2707,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2706,
"end": 2707,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2706,
"end": 2707,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2722,
"end": 2785,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2732,
"end": 2734,
"ctxt": 0
},
"value": "I4",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2734,
"end": 2737,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2735,
"end": 2736,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2735,
"end": 2736,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2746,
"end": 2751,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2746,
"end": 2751,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2752,
"end": 2785,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2762,
"end": 2778,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2762,
"end": 2764,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2764,
"end": 2777,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2766,
"end": 2777,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2773,
"end": 2777,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2776,
"end": 2777,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2776,
"end": 2777,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2791,
"end": 2857,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2801,
"end": 2803,
"ctxt": 0
},
"value": "I5",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2803,
"end": 2806,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2804,
"end": 2805,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2804,
"end": 2805,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2815,
"end": 2820,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2815,
"end": 2820,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2821,
"end": 2857,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2831,
"end": 2851,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2831,
"end": 2833,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2833,
"end": 2851,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2835,
"end": 2851,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2840,
"end": 2845,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2842,
"end": 2845,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2844,
"end": 2845,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2844,
"end": 2845,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2847,
"end": 2851,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2850,
"end": 2851,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2850,
"end": 2851,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2863,
"end": 2929,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2873,
"end": 2875,
"ctxt": 0
},
"value": "I6",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2875,
"end": 2878,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2876,
"end": 2877,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2876,
"end": 2877,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2887,
"end": 2892,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2887,
"end": 2892,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2893,
"end": 2929,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2903,
"end": 2923,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2903,
"end": 2905,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2905,
"end": 2922,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2907,
"end": 2922,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2912,
"end": 2916,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2913,
"end": 2916,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2915,
"end": 2916,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2915,
"end": 2916,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2918,
"end": 2922,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2921,
"end": 2922,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2921,
"end": 2922,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2936,
"end": 2998,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2946,
"end": 2948,
"ctxt": 0
},
"value": "I7",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2948,
"end": 2951,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2949,
"end": 2950,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2949,
"end": 2950,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2960,
"end": 2965,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2960,
"end": 2965,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2966,
"end": 2998,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2976,
"end": 2992,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2976,
"end": 2978,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2978,
"end": 2991,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2980,
"end": 2991,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2987,
"end": 2991,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2990,
"end": 2991,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2990,
"end": 2991,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3004,
"end": 3072,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3014,
"end": 3016,
"ctxt": 0
},
"value": "I8",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3016,
"end": 3019,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3017,
"end": 3018,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3017,
"end": 3018,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3028,
"end": 3033,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3028,
"end": 3033,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3034,
"end": 3072,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3044,
"end": 3065,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3044,
"end": 3046,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3046,
"end": 3064,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3048,
"end": 3064,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3053,
"end": 3058,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3055,
"end": 3058,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3057,
"end": 3058,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3057,
"end": 3058,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3060,
"end": 3064,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3063,
"end": 3064,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3063,
"end": 3064,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3078,
"end": 3145,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3088,
"end": 3090,
"ctxt": 0
},
"value": "I9",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3090,
"end": 3093,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3091,
"end": 3092,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3091,
"end": 3092,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3102,
"end": 3107,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3102,
"end": 3107,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3108,
"end": 3145,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3118,
"end": 3138,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3118,
"end": 3120,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3120,
"end": 3137,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3122,
"end": 3137,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3127,
"end": 3131,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3128,
"end": 3131,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3130,
"end": 3131,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3130,
"end": 3131,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3133,
"end": 3137,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3136,
"end": 3137,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3136,
"end": 3137,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3151,
"end": 3226,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3161,
"end": 3164,
"ctxt": 0
},
"value": "I10",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3164,
"end": 3167,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3165,
"end": 3166,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3165,
"end": 3166,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3176,
"end": 3181,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3176,
"end": 3181,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3182,
"end": 3226,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3192,
"end": 3218,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3192,
"end": 3194,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3194,
"end": 3217,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3196,
"end": 3217,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3201,
"end": 3205,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3202,
"end": 3205,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3204,
"end": 3205,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3204,
"end": 3205,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3207,
"end": 3211,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3208,
"end": 3211,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3210,
"end": 3211,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3210,
"end": 3211,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3213,
"end": 3217,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3216,
"end": 3217,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3216,
"end": 3217,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3233,
"end": 3297,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3243,
"end": 3246,
"ctxt": 0
},
"value": "I11",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3246,
"end": 3249,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3247,
"end": 3248,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3247,
"end": 3248,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3258,
"end": 3263,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3258,
"end": 3263,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3264,
"end": 3297,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3274,
"end": 3290,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3274,
"end": 3276,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3276,
"end": 3289,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3278,
"end": 3289,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3285,
"end": 3289,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3288,
"end": 3289,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3288,
"end": 3289,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3303,
"end": 3379,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3313,
"end": 3316,
"ctxt": 0
},
"value": "I12",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3316,
"end": 3319,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3317,
"end": 3318,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3317,
"end": 3318,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3328,
"end": 3333,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3328,
"end": 3333,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3334,
"end": 3379,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3344,
"end": 3372,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3344,
"end": 3346,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3346,
"end": 3371,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3348,
"end": 3371,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3353,
"end": 3358,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3355,
"end": 3358,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3357,
"end": 3358,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3357,
"end": 3358,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3360,
"end": 3365,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3362,
"end": 3365,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3364,
"end": 3365,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3364,
"end": 3365,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3367,
"end": 3371,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3370,
"end": 3371,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3370,
"end": 3371,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3385,
"end": 3453,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3395,
"end": 3398,
"ctxt": 0
},
"value": "I13",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3398,
"end": 3401,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3399,
"end": 3400,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3399,
"end": 3400,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3410,
"end": 3415,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3410,
"end": 3415,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3416,
"end": 3453,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3426,
"end": 3446,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3426,
"end": 3428,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3428,
"end": 3445,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3430,
"end": 3445,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3435,
"end": 3439,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3436,
"end": 3439,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3438,
"end": 3439,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3438,
"end": 3439,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3441,
"end": 3445,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3444,
"end": 3445,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3444,
"end": 3445,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3459,
"end": 3533,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3469,
"end": 3472,
"ctxt": 0
},
"value": "I14",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3472,
"end": 3475,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3473,
"end": 3474,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3473,
"end": 3474,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3484,
"end": 3489,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3484,
"end": 3489,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3490,
"end": 3533,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3500,
"end": 3526,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3500,
"end": 3502,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3502,
"end": 3525,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3504,
"end": 3525,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3509,
"end": 3513,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3510,
"end": 3513,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3512,
"end": 3513,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3512,
"end": 3513,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3515,
"end": 3519,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3516,
"end": 3519,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3518,
"end": 3519,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3518,
"end": 3519,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3521,
"end": 3525,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3524,
"end": 3525,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3524,
"end": 3525,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3540,
"end": 3604,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3550,
"end": 3553,
"ctxt": 0
},
"value": "I15",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3553,
"end": 3556,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3554,
"end": 3555,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3554,
"end": 3555,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3565,
"end": 3570,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3565,
"end": 3570,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3571,
"end": 3604,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3581,
"end": 3597,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3581,
"end": 3583,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3583,
"end": 3596,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3585,
"end": 3596,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3592,
"end": 3596,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3595,
"end": 3596,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3595,
"end": 3596,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3610,
"end": 3686,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3620,
"end": 3623,
"ctxt": 0
},
"value": "I16",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3623,
"end": 3626,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3624,
"end": 3625,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3624,
"end": 3625,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3635,
"end": 3640,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3635,
"end": 3640,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3641,
"end": 3686,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3651,
"end": 3679,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3651,
"end": 3653,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3653,
"end": 3678,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3655,
"end": 3678,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3660,
"end": 3665,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3662,
"end": 3665,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3664,
"end": 3665,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3664,
"end": 3665,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3667,
"end": 3672,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3669,
"end": 3672,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3671,
"end": 3672,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3671,
"end": 3672,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3674,
"end": 3678,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3677,
"end": 3678,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3677,
"end": 3678,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3692,
"end": 3759,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3702,
"end": 3705,
"ctxt": 0
},
"value": "I17",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3705,
"end": 3708,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3706,
"end": 3707,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3706,
"end": 3707,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3717,
"end": 3722,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3717,
"end": 3722,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3723,
"end": 3759,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3733,
"end": 3753,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3733,
"end": 3735,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3735,
"end": 3752,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3737,
"end": 3752,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3742,
"end": 3746,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3743,
"end": 3746,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3745,
"end": 3746,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3745,
"end": 3746,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3748,
"end": 3752,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3751,
"end": 3752,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3751,
"end": 3752,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3765,
"end": 3839,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3775,
"end": 3778,
"ctxt": 0
},
"value": "I18",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3778,
"end": 3781,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3779,
"end": 3780,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3779,
"end": 3780,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3790,
"end": 3795,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3790,
"end": 3795,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3796,
"end": 3839,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3806,
"end": 3832,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3806,
"end": 3808,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3808,
"end": 3831,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3810,
"end": 3831,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3815,
"end": 3819,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3816,
"end": 3819,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3818,
"end": 3819,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3818,
"end": 3819,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3821,
"end": 3825,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3822,
"end": 3825,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3824,
"end": 3825,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3824,
"end": 3825,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3827,
"end": 3831,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3830,
"end": 3831,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3830,
"end": 3831,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 3843,
"end": 6345,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 3850,
"end": 3872,
"ctxt": 0
},
"value": "GenericSignaturesValid",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 3873,
"end": 6345,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3880,
"end": 4074,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3890,
"end": 3895,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3896,
"end": 4074,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3906,
"end": 3924,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3906,
"end": 3907,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3907,
"end": 3923,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3909,
"end": 3923,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3913,
"end": 3916,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3914,
"end": 3915,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3914,
"end": 3915,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3919,
"end": 3923,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3922,
"end": 3923,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3922,
"end": 3923,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3933,
"end": 3957,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3933,
"end": 3935,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3935,
"end": 3956,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3937,
"end": 3956,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3945,
"end": 3950,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3947,
"end": 3950,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3949,
"end": 3950,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3949,
"end": 3950,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3941,
"end": 3944,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3942,
"end": 3943,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3942,
"end": 3943,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3952,
"end": 3956,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3955,
"end": 3956,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3955,
"end": 3956,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3966,
"end": 3989,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3966,
"end": 3968,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3968,
"end": 3988,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3970,
"end": 3988,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3978,
"end": 3982,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3979,
"end": 3982,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3981,
"end": 3982,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3981,
"end": 3982,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3974,
"end": 3977,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3975,
"end": 3976,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3975,
"end": 3976,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3984,
"end": 3988,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3987,
"end": 3988,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3987,
"end": 3988,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3998,
"end": 4028,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3998,
"end": 4000,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4000,
"end": 4027,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4002,
"end": 4027,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4010,
"end": 4014,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4011,
"end": 4014,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4013,
"end": 4014,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4013,
"end": 4014,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 4016,
"end": 4021,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4018,
"end": 4021,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4020,
"end": 4021,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4020,
"end": 4021,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4006,
"end": 4009,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4007,
"end": 4008,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4007,
"end": 4008,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4023,
"end": 4027,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4026,
"end": 4027,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4026,
"end": 4027,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 4037,
"end": 4068,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4037,
"end": 4039,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4039,
"end": 4067,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4041,
"end": 4067,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4049,
"end": 4054,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4051,
"end": 4054,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4053,
"end": 4054,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4053,
"end": 4054,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 4056,
"end": 4061,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4058,
"end": 4061,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4060,
"end": 4061,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4060,
"end": 4061,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4045,
"end": 4048,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4046,
"end": 4047,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4046,
"end": 4047,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4063,
"end": 4067,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4066,
"end": 4067,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4066,
"end": 4067,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4098,
"end": 4197,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4108,
"end": 4110,
"ctxt": 0
},
"value": "I1",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4119,
"end": 4124,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4119,
"end": 4124,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4125,
"end": 4197,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4135,
"end": 4153,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4135,
"end": 4136,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4136,
"end": 4152,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4138,
"end": 4152,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4142,
"end": 4145,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4143,
"end": 4144,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4143,
"end": 4144,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4148,
"end": 4152,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4151,
"end": 4152,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4151,
"end": 4152,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4203,
"end": 4364,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4213,
"end": 4215,
"ctxt": 0
},
"value": "I2",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4224,
"end": 4229,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4224,
"end": 4229,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4230,
"end": 4364,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4240,
"end": 4263,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4240,
"end": 4241,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4241,
"end": 4262,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4243,
"end": 4262,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4251,
"end": 4256,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4253,
"end": 4256,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4255,
"end": 4256,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4255,
"end": 4256,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4247,
"end": 4250,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4248,
"end": 4249,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4248,
"end": 4249,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4258,
"end": 4262,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4261,
"end": 4262,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4261,
"end": 4262,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4370,
"end": 4530,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4380,
"end": 4382,
"ctxt": 0
},
"value": "I3",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4391,
"end": 4396,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4391,
"end": 4396,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4397,
"end": 4530,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4407,
"end": 4429,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4407,
"end": 4408,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4408,
"end": 4428,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4410,
"end": 4428,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4418,
"end": 4422,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4419,
"end": 4422,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4421,
"end": 4422,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4421,
"end": 4422,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4414,
"end": 4417,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4415,
"end": 4416,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4415,
"end": 4416,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4424,
"end": 4428,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4427,
"end": 4428,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4427,
"end": 4428,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4537,
"end": 4694,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4547,
"end": 4549,
"ctxt": 0
},
"value": "I4",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4558,
"end": 4563,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4558,
"end": 4563,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4564,
"end": 4694,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4574,
"end": 4593,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4574,
"end": 4576,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4576,
"end": 4592,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4578,
"end": 4592,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4582,
"end": 4585,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4583,
"end": 4584,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4583,
"end": 4584,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4588,
"end": 4592,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4591,
"end": 4592,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4591,
"end": 4592,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4700,
"end": 4784,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4710,
"end": 4712,
"ctxt": 0
},
"value": "I5",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4721,
"end": 4726,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4721,
"end": 4726,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4727,
"end": 4784,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4737,
"end": 4761,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4737,
"end": 4739,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4739,
"end": 4760,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4741,
"end": 4760,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4749,
"end": 4754,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4751,
"end": 4754,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4753,
"end": 4754,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4753,
"end": 4754,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4745,
"end": 4748,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4746,
"end": 4747,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4746,
"end": 4747,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4756,
"end": 4760,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4759,
"end": 4760,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4759,
"end": 4760,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4790,
"end": 4885,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4800,
"end": 4802,
"ctxt": 0
},
"value": "I6",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4811,
"end": 4816,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4811,
"end": 4816,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4817,
"end": 4885,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4827,
"end": 4850,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4827,
"end": 4829,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4829,
"end": 4849,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4831,
"end": 4849,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4839,
"end": 4843,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4840,
"end": 4843,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4842,
"end": 4843,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4842,
"end": 4843,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4835,
"end": 4838,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4836,
"end": 4837,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4836,
"end": 4837,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4845,
"end": 4849,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4848,
"end": 4849,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4848,
"end": 4849,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4892,
"end": 4983,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4902,
"end": 4904,
"ctxt": 0
},
"value": "I7",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4913,
"end": 4918,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4913,
"end": 4918,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4919,
"end": 4983,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4929,
"end": 4948,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4929,
"end": 4931,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4931,
"end": 4947,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4933,
"end": 4947,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4937,
"end": 4940,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4938,
"end": 4939,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4938,
"end": 4939,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4943,
"end": 4947,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4946,
"end": 4947,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4946,
"end": 4947,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4989,
"end": 5128,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4999,
"end": 5001,
"ctxt": 0
},
"value": "I8",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5010,
"end": 5015,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5010,
"end": 5015,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5016,
"end": 5128,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5026,
"end": 5050,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5026,
"end": 5028,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5028,
"end": 5049,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 5030,
"end": 5049,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5038,
"end": 5043,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5040,
"end": 5043,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5042,
"end": 5043,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5042,
"end": 5043,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5034,
"end": 5037,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5035,
"end": 5036,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5035,
"end": 5036,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5045,
"end": 5049,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5048,
"end": 5049,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5048,
"end": 5049,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5134,
"end": 5249,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5144,
"end": 5146,
"ctxt": 0
},
"value": "I9",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5155,
"end": 5160,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5155,
"end": 5160,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5161,
"end": 5249,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5171,
"end": 5194,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5171,
"end": 5173,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5173,
"end": 5193,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 5175,
"end": 5193,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5183,
"end": 5187,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5184,
"end": 5187,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5186,
"end": 5187,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5186,
"end": 5187,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5179,
"end": 5182,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5180,
"end": 5181,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5180,
"end": 5181,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5189,
"end": 5193,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5192,
"end": 5193,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5192,
"end": 5193,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5255,
"end": 5364,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5265,
"end": 5268,
"ctxt": 0
},
"value": "I10",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5277,
"end": 5282,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5277,
"end": 5282,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5283,
"end": 5364,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5293,
"end": 5322,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5293,
"end": 5295,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5295,
"end": 5321,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 5297,
"end": 5321,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5305,
"end": 5309,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5306,
"end": 5309,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5308,
"end": 5309,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5308,
"end": 5309,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 5311,
"end": 5315,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5312,
"end": 5315,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5314,
"end": 5315,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5314,
"end": 5315,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5301,
"end": 5304,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5302,
"end": 5303,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5302,
"end": 5303,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5317,
"end": 5321,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5320,
"end": 5321,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5320,
"end": 5321,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5371,
"end": 5529,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5381,
"end": 5384,
"ctxt": 0
},
"value": "I11",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5393,
"end": 5398,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5393,
"end": 5398,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5399,
"end": 5529,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5409,
"end": 5428,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5409,
"end": 5411,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5411,
"end": 5427,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 5413,
"end": 5427,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5417,
"end": 5420,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5418,
"end": 5419,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5418,
"end": 5419,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5423,
"end": 5427,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5426,
"end": 5427,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5426,
"end": 5427,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5535,
"end": 5639,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5545,
"end": 5548,
"ctxt": 0
},
"value": "I12",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5557,
"end": 5562,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5557,
"end": 5562,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5563,
"end": 5639,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5573,
"end": 5604,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5573,
"end": 5575,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5575,
"end": 5603,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 5577,
"end": 5603,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5585,
"end": 5590,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5587,
"end": 5590,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5589,
"end": 5590,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5589,
"end": 5590,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 5592,
"end": 5597,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5594,
"end": 5597,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5596,
"end": 5597,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5596,
"end": 5597,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5581,
"end": 5584,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5582,
"end": 5583,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5582,
"end": 5583,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5599,
"end": 5603,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5602,
"end": 5603,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5602,
"end": 5603,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5645,
"end": 5745,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5655,
"end": 5658,
"ctxt": 0
},
"value": "I13",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5667,
"end": 5672,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5667,
"end": 5672,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5673,
"end": 5745,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5683,
"end": 5706,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5683,
"end": 5685,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5685,
"end": 5705,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 5687,
"end": 5705,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5695,
"end": 5699,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5696,
"end": 5699,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5698,
"end": 5699,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5698,
"end": 5699,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5691,
"end": 5694,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5692,
"end": 5693,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5692,
"end": 5693,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5701,
"end": 5705,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5704,
"end": 5705,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5704,
"end": 5705,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5751,
"end": 5854,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5761,
"end": 5764,
"ctxt": 0
},
"value": "I14",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5773,
"end": 5778,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5773,
"end": 5778,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5779,
"end": 5854,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5789,
"end": 5818,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5789,
"end": 5791,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5791,
"end": 5817,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 5793,
"end": 5817,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5801,
"end": 5805,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5802,
"end": 5805,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5804,
"end": 5805,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5804,
"end": 5805,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 5807,
"end": 5811,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5808,
"end": 5811,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5810,
"end": 5811,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5810,
"end": 5811,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5797,
"end": 5800,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5798,
"end": 5799,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5798,
"end": 5799,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5813,
"end": 5817,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5816,
"end": 5817,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5816,
"end": 5817,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5861,
"end": 6019,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5871,
"end": 5874,
"ctxt": 0
},
"value": "I15",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5883,
"end": 5888,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5883,
"end": 5888,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5889,
"end": 6019,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5899,
"end": 5918,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5899,
"end": 5901,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5901,
"end": 5917,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 5903,
"end": 5917,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5907,
"end": 5910,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5908,
"end": 5909,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5908,
"end": 5909,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5913,
"end": 5917,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5916,
"end": 5917,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5916,
"end": 5917,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 6025,
"end": 6129,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6035,
"end": 6038,
"ctxt": 0
},
"value": "I16",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 6047,
"end": 6052,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6047,
"end": 6052,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 6053,
"end": 6129,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 6063,
"end": 6094,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6063,
"end": 6065,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6065,
"end": 6093,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 6067,
"end": 6093,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 6075,
"end": 6080,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6077,
"end": 6080,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6079,
"end": 6080,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6079,
"end": 6080,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 6082,
"end": 6087,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6084,
"end": 6087,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6086,
"end": 6087,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6086,
"end": 6087,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 6071,
"end": 6074,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 6072,
"end": 6073,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 6072,
"end": 6073,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6089,
"end": 6093,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6092,
"end": 6093,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6092,
"end": 6093,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 6135,
"end": 6234,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6145,
"end": 6148,
"ctxt": 0
},
"value": "I17",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 6157,
"end": 6162,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6157,
"end": 6162,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 6163,
"end": 6234,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 6173,
"end": 6196,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6173,
"end": 6175,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6175,
"end": 6195,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 6177,
"end": 6195,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 6185,
"end": 6189,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6186,
"end": 6189,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6188,
"end": 6189,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6188,
"end": 6189,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 6181,
"end": 6184,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 6182,
"end": 6183,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 6182,
"end": 6183,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6191,
"end": 6195,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6194,
"end": 6195,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6194,
"end": 6195,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 6240,
"end": 6343,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6250,
"end": 6253,
"ctxt": 0
},
"value": "I18",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 6262,
"end": 6267,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6262,
"end": 6267,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 6268,
"end": 6343,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 6278,
"end": 6307,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6278,
"end": 6280,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6280,
"end": 6306,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 6282,
"end": 6306,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 6290,
"end": 6294,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6291,
"end": 6294,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6293,
"end": 6294,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6293,
"end": 6294,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 6296,
"end": 6300,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6297,
"end": 6300,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6299,
"end": 6300,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6299,
"end": 6300,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 6286,
"end": 6289,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 6287,
"end": 6288,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 6287,
"end": 6288,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"const": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6302,
"end": 6306,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6305,
"end": 6306,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6305,
"end": 6306,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
}
]
}
}
],
"interpreter": null
}