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

13013 lines
435 KiB
JSON

{
"type": "Script",
"span": {
"start": 102,
"end": 6344,
"ctxt": 0
},
"body": [
{
"type": "TsModuleDeclaration",
"span": {
"start": 102,
"end": 2236,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 109,
"end": 123,
"ctxt": 0
},
"value": "ClassTypeParam",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 124,
"end": 2236,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 130,
"end": 311,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 140,
"end": 144,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 144,
"end": 147,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 145,
"end": 146,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 145,
"end": 146,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 148,
"end": 311,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 158,
"end": 173,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 158,
"end": 159,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 159,
"end": 172,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 161,
"end": 172,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 168,
"end": 172,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 171,
"end": 172,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 171,
"end": 172,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 182,
"end": 203,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 182,
"end": 184,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 184,
"end": 202,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 186,
"end": 202,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 191,
"end": 196,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 193,
"end": 196,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 195,
"end": 196,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 195,
"end": 196,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 198,
"end": 202,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 201,
"end": 202,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 201,
"end": 202,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 212,
"end": 232,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 212,
"end": 214,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 214,
"end": 231,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 216,
"end": 231,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 221,
"end": 225,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 222,
"end": 225,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 224,
"end": 225,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 224,
"end": 225,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 227,
"end": 231,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 230,
"end": 231,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 230,
"end": 231,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 241,
"end": 268,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 241,
"end": 243,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 243,
"end": 267,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 245,
"end": 267,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 250,
"end": 254,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 251,
"end": 254,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 253,
"end": 254,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 253,
"end": 254,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 256,
"end": 261,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 258,
"end": 261,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 260,
"end": 261,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 260,
"end": 261,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 263,
"end": 267,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 266,
"end": 267,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 266,
"end": 267,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 277,
"end": 305,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 277,
"end": 279,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 279,
"end": 304,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 281,
"end": 304,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 286,
"end": 291,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 288,
"end": 291,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 290,
"end": 291,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 290,
"end": 291,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 293,
"end": 298,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 295,
"end": 298,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 297,
"end": 298,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 297,
"end": 298,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 300,
"end": 304,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 303,
"end": 304,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 303,
"end": 304,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 317,
"end": 413,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 327,
"end": 329,
"ctxt": 0
},
"value": "I1",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 329,
"end": 332,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 330,
"end": 331,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 330,
"end": 331,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 341,
"end": 348,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 341,
"end": 345,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 345,
"end": 348,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 346,
"end": 347,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 346,
"end": 347,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 349,
"end": 413,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 359,
"end": 374,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 359,
"end": 360,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 360,
"end": 373,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 362,
"end": 373,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 369,
"end": 373,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 372,
"end": 373,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 372,
"end": 373,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 419,
"end": 520,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 429,
"end": 431,
"ctxt": 0
},
"value": "I2",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 431,
"end": 434,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 432,
"end": 433,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 432,
"end": 433,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 443,
"end": 450,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 443,
"end": 447,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 447,
"end": 450,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 448,
"end": 449,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 448,
"end": 449,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 451,
"end": 520,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 461,
"end": 481,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 461,
"end": 462,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 462,
"end": 480,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 464,
"end": 480,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 469,
"end": 474,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 471,
"end": 474,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 473,
"end": 474,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 473,
"end": 474,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 476,
"end": 480,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 479,
"end": 480,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 479,
"end": 480,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 526,
"end": 628,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 536,
"end": 538,
"ctxt": 0
},
"value": "I3",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 538,
"end": 541,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 539,
"end": 540,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 539,
"end": 540,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 550,
"end": 557,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 550,
"end": 554,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 554,
"end": 557,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 555,
"end": 556,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 555,
"end": 556,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 558,
"end": 628,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 568,
"end": 587,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 568,
"end": 569,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 569,
"end": 586,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 571,
"end": 586,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 576,
"end": 580,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 577,
"end": 580,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 579,
"end": 580,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 579,
"end": 580,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 582,
"end": 586,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 585,
"end": 586,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 585,
"end": 586,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 635,
"end": 732,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 645,
"end": 647,
"ctxt": 0
},
"value": "I4",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 647,
"end": 650,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 648,
"end": 649,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 648,
"end": 649,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 659,
"end": 666,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 659,
"end": 663,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 663,
"end": 666,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 664,
"end": 665,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 664,
"end": 665,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 667,
"end": 732,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 677,
"end": 693,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 677,
"end": 679,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 679,
"end": 692,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 681,
"end": 692,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 688,
"end": 692,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 691,
"end": 692,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 691,
"end": 692,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 738,
"end": 840,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 748,
"end": 750,
"ctxt": 0
},
"value": "I5",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 750,
"end": 753,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 751,
"end": 752,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 751,
"end": 752,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 762,
"end": 769,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 762,
"end": 766,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 766,
"end": 769,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 767,
"end": 768,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 767,
"end": 768,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 770,
"end": 840,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 780,
"end": 801,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 780,
"end": 782,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 782,
"end": 800,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 784,
"end": 800,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 789,
"end": 794,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 791,
"end": 794,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 793,
"end": 794,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 793,
"end": 794,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 796,
"end": 800,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 799,
"end": 800,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 799,
"end": 800,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 846,
"end": 943,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 856,
"end": 858,
"ctxt": 0
},
"value": "I6",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 858,
"end": 861,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 859,
"end": 860,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 859,
"end": 860,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 870,
"end": 877,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 870,
"end": 874,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 874,
"end": 877,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 875,
"end": 876,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 875,
"end": 876,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 878,
"end": 943,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 888,
"end": 908,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 888,
"end": 890,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 890,
"end": 907,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 892,
"end": 907,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 897,
"end": 901,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 898,
"end": 901,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 900,
"end": 901,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 900,
"end": 901,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 903,
"end": 907,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 906,
"end": 907,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 906,
"end": 907,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 950,
"end": 1043,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 960,
"end": 962,
"ctxt": 0
},
"value": "I7",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 962,
"end": 965,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 963,
"end": 964,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 963,
"end": 964,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 974,
"end": 981,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 974,
"end": 978,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 978,
"end": 981,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 979,
"end": 980,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 979,
"end": 980,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 982,
"end": 1043,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 992,
"end": 1008,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 992,
"end": 994,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 994,
"end": 1007,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 996,
"end": 1007,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1003,
"end": 1007,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1006,
"end": 1007,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1006,
"end": 1007,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1049,
"end": 1147,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1059,
"end": 1061,
"ctxt": 0
},
"value": "I8",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1061,
"end": 1064,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1062,
"end": 1063,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1062,
"end": 1063,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1073,
"end": 1080,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1073,
"end": 1077,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1077,
"end": 1080,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1078,
"end": 1079,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1078,
"end": 1079,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1081,
"end": 1147,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1091,
"end": 1112,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1091,
"end": 1093,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1093,
"end": 1111,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1095,
"end": 1111,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1100,
"end": 1105,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1102,
"end": 1105,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1104,
"end": 1105,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1104,
"end": 1105,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1107,
"end": 1111,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1110,
"end": 1111,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1110,
"end": 1111,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1153,
"end": 1254,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1163,
"end": 1165,
"ctxt": 0
},
"value": "I9",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1165,
"end": 1168,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1166,
"end": 1167,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1166,
"end": 1167,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1177,
"end": 1184,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1177,
"end": 1181,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1181,
"end": 1184,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1182,
"end": 1183,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1182,
"end": 1183,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1185,
"end": 1254,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1195,
"end": 1215,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1195,
"end": 1197,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1197,
"end": 1214,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1199,
"end": 1214,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1204,
"end": 1208,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1205,
"end": 1208,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1207,
"end": 1208,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1207,
"end": 1208,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1210,
"end": 1214,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1213,
"end": 1214,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1213,
"end": 1214,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1260,
"end": 1371,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1270,
"end": 1273,
"ctxt": 0
},
"value": "I10",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1273,
"end": 1276,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1274,
"end": 1275,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1274,
"end": 1275,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1285,
"end": 1292,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1285,
"end": 1289,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1289,
"end": 1292,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1290,
"end": 1291,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1290,
"end": 1291,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1293,
"end": 1371,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1303,
"end": 1329,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1303,
"end": 1305,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1305,
"end": 1328,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1307,
"end": 1328,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1312,
"end": 1316,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1313,
"end": 1316,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1315,
"end": 1316,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1315,
"end": 1316,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1318,
"end": 1322,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1319,
"end": 1322,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1321,
"end": 1322,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1321,
"end": 1322,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1324,
"end": 1328,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1327,
"end": 1328,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1327,
"end": 1328,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1378,
"end": 1472,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1388,
"end": 1391,
"ctxt": 0
},
"value": "I11",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1391,
"end": 1394,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1392,
"end": 1393,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1392,
"end": 1393,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1403,
"end": 1410,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1403,
"end": 1407,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1407,
"end": 1410,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1408,
"end": 1409,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1408,
"end": 1409,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1411,
"end": 1472,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1421,
"end": 1437,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1421,
"end": 1423,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1423,
"end": 1436,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1425,
"end": 1436,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1432,
"end": 1436,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1435,
"end": 1436,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1435,
"end": 1436,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1478,
"end": 1584,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1488,
"end": 1491,
"ctxt": 0
},
"value": "I12",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1491,
"end": 1494,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1492,
"end": 1493,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1492,
"end": 1493,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1503,
"end": 1510,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1503,
"end": 1507,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1507,
"end": 1510,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1508,
"end": 1509,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1508,
"end": 1509,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1511,
"end": 1584,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1521,
"end": 1549,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1521,
"end": 1523,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1523,
"end": 1548,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1525,
"end": 1548,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1530,
"end": 1535,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1532,
"end": 1535,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1534,
"end": 1535,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1534,
"end": 1535,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1537,
"end": 1542,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1539,
"end": 1542,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1541,
"end": 1542,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1541,
"end": 1542,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1544,
"end": 1548,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1547,
"end": 1548,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1547,
"end": 1548,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1590,
"end": 1692,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1600,
"end": 1603,
"ctxt": 0
},
"value": "I13",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1603,
"end": 1606,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1604,
"end": 1605,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1604,
"end": 1605,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1615,
"end": 1622,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1615,
"end": 1619,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1619,
"end": 1622,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1620,
"end": 1621,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1620,
"end": 1621,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1623,
"end": 1692,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1633,
"end": 1653,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1633,
"end": 1635,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1635,
"end": 1652,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1637,
"end": 1652,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1642,
"end": 1646,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1643,
"end": 1646,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1645,
"end": 1646,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1645,
"end": 1646,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1648,
"end": 1652,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1651,
"end": 1652,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1651,
"end": 1652,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1698,
"end": 1803,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1708,
"end": 1711,
"ctxt": 0
},
"value": "I14",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1711,
"end": 1714,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1712,
"end": 1713,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1712,
"end": 1713,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1723,
"end": 1730,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1723,
"end": 1727,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1727,
"end": 1730,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1728,
"end": 1729,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1728,
"end": 1729,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1731,
"end": 1803,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1741,
"end": 1767,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1741,
"end": 1743,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1743,
"end": 1766,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1745,
"end": 1766,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1750,
"end": 1754,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1751,
"end": 1754,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1753,
"end": 1754,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1753,
"end": 1754,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1756,
"end": 1760,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1757,
"end": 1760,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1759,
"end": 1760,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1759,
"end": 1760,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1762,
"end": 1766,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1765,
"end": 1766,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1765,
"end": 1766,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1810,
"end": 1904,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1820,
"end": 1823,
"ctxt": 0
},
"value": "I15",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1823,
"end": 1826,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1824,
"end": 1825,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1824,
"end": 1825,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1835,
"end": 1842,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1835,
"end": 1839,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1839,
"end": 1842,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1840,
"end": 1841,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1840,
"end": 1841,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1843,
"end": 1904,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1853,
"end": 1869,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1853,
"end": 1855,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1855,
"end": 1868,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1857,
"end": 1868,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1864,
"end": 1868,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1867,
"end": 1868,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1867,
"end": 1868,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1910,
"end": 2016,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1920,
"end": 1923,
"ctxt": 0
},
"value": "I16",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1923,
"end": 1926,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1924,
"end": 1925,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1924,
"end": 1925,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1935,
"end": 1942,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1935,
"end": 1939,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1939,
"end": 1942,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1940,
"end": 1941,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1940,
"end": 1941,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1943,
"end": 2016,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1953,
"end": 1981,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1953,
"end": 1955,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1955,
"end": 1980,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1957,
"end": 1980,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1962,
"end": 1967,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1964,
"end": 1967,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1966,
"end": 1967,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1966,
"end": 1967,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1969,
"end": 1974,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1971,
"end": 1974,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1973,
"end": 1974,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1973,
"end": 1974,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1976,
"end": 1980,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1979,
"end": 1980,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1979,
"end": 1980,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2022,
"end": 2123,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2032,
"end": 2035,
"ctxt": 0
},
"value": "I17",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2035,
"end": 2038,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2036,
"end": 2037,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2036,
"end": 2037,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2047,
"end": 2054,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2047,
"end": 2051,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2051,
"end": 2054,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 2052,
"end": 2053,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2052,
"end": 2053,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2055,
"end": 2123,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2065,
"end": 2085,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2065,
"end": 2067,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2067,
"end": 2084,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2069,
"end": 2084,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2074,
"end": 2078,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2075,
"end": 2078,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2077,
"end": 2078,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2077,
"end": 2078,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2080,
"end": 2084,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2083,
"end": 2084,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2083,
"end": 2084,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2129,
"end": 2234,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2139,
"end": 2142,
"ctxt": 0
},
"value": "I18",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2142,
"end": 2145,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2143,
"end": 2144,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2143,
"end": 2144,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2154,
"end": 2161,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2154,
"end": 2158,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2158,
"end": 2161,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 2159,
"end": 2160,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2159,
"end": 2160,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2162,
"end": 2234,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2172,
"end": 2198,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2172,
"end": 2174,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2174,
"end": 2197,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2176,
"end": 2197,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2181,
"end": 2185,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2182,
"end": 2185,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2184,
"end": 2185,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2184,
"end": 2185,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 2187,
"end": 2191,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2188,
"end": 2191,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2190,
"end": 2191,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2190,
"end": 2191,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2193,
"end": 2197,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2196,
"end": 2197,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2196,
"end": 2197,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 2238,
"end": 3840,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 2245,
"end": 2269,
"ctxt": 0
},
"value": "GenericSignaturesInvalid",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 2270,
"end": 3840,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2308,
"end": 2502,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2318,
"end": 2323,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2324,
"end": 2502,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2334,
"end": 2352,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2334,
"end": 2335,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2335,
"end": 2351,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2337,
"end": 2351,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2341,
"end": 2344,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2342,
"end": 2343,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2342,
"end": 2343,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2347,
"end": 2351,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2350,
"end": 2351,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2350,
"end": 2351,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2361,
"end": 2385,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2361,
"end": 2363,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2363,
"end": 2384,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2365,
"end": 2384,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2373,
"end": 2378,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2375,
"end": 2378,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2377,
"end": 2378,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2377,
"end": 2378,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2369,
"end": 2372,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2370,
"end": 2371,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2370,
"end": 2371,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2380,
"end": 2384,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2383,
"end": 2384,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2383,
"end": 2384,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2394,
"end": 2417,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2394,
"end": 2396,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2396,
"end": 2416,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2398,
"end": 2416,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2406,
"end": 2410,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2407,
"end": 2410,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2409,
"end": 2410,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2409,
"end": 2410,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2402,
"end": 2405,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2403,
"end": 2404,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2403,
"end": 2404,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2412,
"end": 2416,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2415,
"end": 2416,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2415,
"end": 2416,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2426,
"end": 2456,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2426,
"end": 2428,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2428,
"end": 2455,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2430,
"end": 2455,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2438,
"end": 2442,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2439,
"end": 2442,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2441,
"end": 2442,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2441,
"end": 2442,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 2444,
"end": 2449,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2446,
"end": 2449,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2448,
"end": 2449,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2448,
"end": 2449,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2434,
"end": 2437,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2435,
"end": 2436,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2435,
"end": 2436,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2451,
"end": 2455,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2454,
"end": 2455,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2454,
"end": 2455,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2465,
"end": 2496,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2465,
"end": 2467,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2467,
"end": 2495,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2469,
"end": 2495,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2477,
"end": 2482,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2479,
"end": 2482,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2481,
"end": 2482,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2481,
"end": 2482,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 2484,
"end": 2489,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2486,
"end": 2489,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2488,
"end": 2489,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2488,
"end": 2489,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2473,
"end": 2476,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2474,
"end": 2475,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2474,
"end": 2475,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2491,
"end": 2495,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2494,
"end": 2495,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2494,
"end": 2495,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2508,
"end": 2570,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2518,
"end": 2520,
"ctxt": 0
},
"value": "I1",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2520,
"end": 2523,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2521,
"end": 2522,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2521,
"end": 2522,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2532,
"end": 2537,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2532,
"end": 2537,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2538,
"end": 2570,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2548,
"end": 2563,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2548,
"end": 2549,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2549,
"end": 2562,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2551,
"end": 2562,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2558,
"end": 2562,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2561,
"end": 2562,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2561,
"end": 2562,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2576,
"end": 2642,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2586,
"end": 2588,
"ctxt": 0
},
"value": "I2",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2588,
"end": 2591,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2589,
"end": 2590,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2589,
"end": 2590,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2600,
"end": 2605,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2600,
"end": 2605,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2606,
"end": 2642,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2616,
"end": 2636,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2616,
"end": 2617,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2617,
"end": 2635,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2619,
"end": 2635,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2624,
"end": 2629,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2626,
"end": 2629,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2628,
"end": 2629,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2628,
"end": 2629,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2631,
"end": 2635,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2634,
"end": 2635,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2634,
"end": 2635,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2648,
"end": 2714,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2658,
"end": 2660,
"ctxt": 0
},
"value": "I3",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2660,
"end": 2663,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2661,
"end": 2662,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2661,
"end": 2662,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2672,
"end": 2677,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2672,
"end": 2677,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2678,
"end": 2714,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2688,
"end": 2707,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2688,
"end": 2689,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2689,
"end": 2706,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2691,
"end": 2706,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2696,
"end": 2700,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2697,
"end": 2700,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2699,
"end": 2700,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2699,
"end": 2700,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2702,
"end": 2706,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2705,
"end": 2706,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2705,
"end": 2706,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2721,
"end": 2784,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2731,
"end": 2733,
"ctxt": 0
},
"value": "I4",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2733,
"end": 2736,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2734,
"end": 2735,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2734,
"end": 2735,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2745,
"end": 2750,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2745,
"end": 2750,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2751,
"end": 2784,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2761,
"end": 2777,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2761,
"end": 2763,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2763,
"end": 2776,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2765,
"end": 2776,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2772,
"end": 2776,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2775,
"end": 2776,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2775,
"end": 2776,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2790,
"end": 2856,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2800,
"end": 2802,
"ctxt": 0
},
"value": "I5",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2802,
"end": 2805,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2803,
"end": 2804,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2803,
"end": 2804,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2814,
"end": 2819,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2814,
"end": 2819,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2820,
"end": 2856,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2830,
"end": 2850,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2830,
"end": 2832,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2832,
"end": 2850,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2834,
"end": 2850,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2839,
"end": 2844,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2841,
"end": 2844,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2843,
"end": 2844,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2843,
"end": 2844,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2846,
"end": 2850,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2849,
"end": 2850,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2849,
"end": 2850,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2862,
"end": 2928,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2872,
"end": 2874,
"ctxt": 0
},
"value": "I6",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2874,
"end": 2877,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2875,
"end": 2876,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2875,
"end": 2876,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2886,
"end": 2891,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2886,
"end": 2891,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2892,
"end": 2928,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2902,
"end": 2922,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2902,
"end": 2904,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2904,
"end": 2921,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2906,
"end": 2921,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2911,
"end": 2915,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2912,
"end": 2915,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2914,
"end": 2915,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2914,
"end": 2915,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2917,
"end": 2921,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2920,
"end": 2921,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2920,
"end": 2921,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2935,
"end": 2997,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2945,
"end": 2947,
"ctxt": 0
},
"value": "I7",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2947,
"end": 2950,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2948,
"end": 2949,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2948,
"end": 2949,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2959,
"end": 2964,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2959,
"end": 2964,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2965,
"end": 2997,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2975,
"end": 2991,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2975,
"end": 2977,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2977,
"end": 2990,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2979,
"end": 2990,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2986,
"end": 2990,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2989,
"end": 2990,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2989,
"end": 2990,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3003,
"end": 3071,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3013,
"end": 3015,
"ctxt": 0
},
"value": "I8",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3015,
"end": 3018,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3016,
"end": 3017,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3016,
"end": 3017,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3027,
"end": 3032,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3027,
"end": 3032,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3033,
"end": 3071,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3043,
"end": 3064,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3043,
"end": 3045,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3045,
"end": 3063,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3047,
"end": 3063,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3052,
"end": 3057,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3054,
"end": 3057,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3056,
"end": 3057,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3056,
"end": 3057,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3059,
"end": 3063,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3062,
"end": 3063,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3062,
"end": 3063,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3077,
"end": 3144,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3087,
"end": 3089,
"ctxt": 0
},
"value": "I9",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3089,
"end": 3092,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3090,
"end": 3091,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3090,
"end": 3091,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3101,
"end": 3106,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3101,
"end": 3106,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3107,
"end": 3144,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3117,
"end": 3137,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3117,
"end": 3119,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3119,
"end": 3136,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3121,
"end": 3136,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3126,
"end": 3130,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3127,
"end": 3130,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3129,
"end": 3130,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3129,
"end": 3130,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3132,
"end": 3136,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3135,
"end": 3136,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3135,
"end": 3136,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3150,
"end": 3225,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3160,
"end": 3163,
"ctxt": 0
},
"value": "I10",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3163,
"end": 3166,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3164,
"end": 3165,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3164,
"end": 3165,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3175,
"end": 3180,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3175,
"end": 3180,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3181,
"end": 3225,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3191,
"end": 3217,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3191,
"end": 3193,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3193,
"end": 3216,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3195,
"end": 3216,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3200,
"end": 3204,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3201,
"end": 3204,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3203,
"end": 3204,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3203,
"end": 3204,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3206,
"end": 3210,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3207,
"end": 3210,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3209,
"end": 3210,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3209,
"end": 3210,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3212,
"end": 3216,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3215,
"end": 3216,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3215,
"end": 3216,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3232,
"end": 3296,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3242,
"end": 3245,
"ctxt": 0
},
"value": "I11",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3245,
"end": 3248,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3246,
"end": 3247,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3246,
"end": 3247,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3257,
"end": 3262,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3257,
"end": 3262,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3263,
"end": 3296,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3273,
"end": 3289,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3273,
"end": 3275,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3275,
"end": 3288,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3277,
"end": 3288,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3284,
"end": 3288,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3287,
"end": 3288,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3287,
"end": 3288,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3302,
"end": 3378,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3312,
"end": 3315,
"ctxt": 0
},
"value": "I12",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3315,
"end": 3318,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3316,
"end": 3317,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3316,
"end": 3317,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3327,
"end": 3332,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3327,
"end": 3332,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3333,
"end": 3378,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3343,
"end": 3371,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3343,
"end": 3345,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3345,
"end": 3370,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3347,
"end": 3370,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3352,
"end": 3357,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3354,
"end": 3357,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3356,
"end": 3357,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3356,
"end": 3357,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3359,
"end": 3364,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3361,
"end": 3364,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3363,
"end": 3364,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3363,
"end": 3364,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3366,
"end": 3370,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3369,
"end": 3370,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3369,
"end": 3370,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3384,
"end": 3452,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3394,
"end": 3397,
"ctxt": 0
},
"value": "I13",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3397,
"end": 3400,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3398,
"end": 3399,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3398,
"end": 3399,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3409,
"end": 3414,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3409,
"end": 3414,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3415,
"end": 3452,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3425,
"end": 3445,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3425,
"end": 3427,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3427,
"end": 3444,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3429,
"end": 3444,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3434,
"end": 3438,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3435,
"end": 3438,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3437,
"end": 3438,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3437,
"end": 3438,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3440,
"end": 3444,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3443,
"end": 3444,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3443,
"end": 3444,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3458,
"end": 3532,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3468,
"end": 3471,
"ctxt": 0
},
"value": "I14",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3471,
"end": 3474,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3472,
"end": 3473,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3472,
"end": 3473,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3483,
"end": 3488,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3483,
"end": 3488,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3489,
"end": 3532,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3499,
"end": 3525,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3499,
"end": 3501,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3501,
"end": 3524,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3503,
"end": 3524,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3508,
"end": 3512,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3509,
"end": 3512,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3511,
"end": 3512,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3511,
"end": 3512,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3514,
"end": 3518,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3515,
"end": 3518,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3517,
"end": 3518,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3517,
"end": 3518,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3520,
"end": 3524,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3523,
"end": 3524,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3523,
"end": 3524,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3539,
"end": 3603,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3549,
"end": 3552,
"ctxt": 0
},
"value": "I15",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3552,
"end": 3555,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3553,
"end": 3554,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3553,
"end": 3554,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3564,
"end": 3569,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3564,
"end": 3569,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3570,
"end": 3603,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3580,
"end": 3596,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3580,
"end": 3582,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3582,
"end": 3595,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3584,
"end": 3595,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3591,
"end": 3595,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3594,
"end": 3595,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3594,
"end": 3595,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3609,
"end": 3685,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3619,
"end": 3622,
"ctxt": 0
},
"value": "I16",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3622,
"end": 3625,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3623,
"end": 3624,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3623,
"end": 3624,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3634,
"end": 3639,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3634,
"end": 3639,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3640,
"end": 3685,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3650,
"end": 3678,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3650,
"end": 3652,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3652,
"end": 3677,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3654,
"end": 3677,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3659,
"end": 3664,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3661,
"end": 3664,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3663,
"end": 3664,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3663,
"end": 3664,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3666,
"end": 3671,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3668,
"end": 3671,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3670,
"end": 3671,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3670,
"end": 3671,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3673,
"end": 3677,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3676,
"end": 3677,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3676,
"end": 3677,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3691,
"end": 3758,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3701,
"end": 3704,
"ctxt": 0
},
"value": "I17",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3704,
"end": 3707,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3705,
"end": 3706,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3705,
"end": 3706,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3716,
"end": 3721,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3716,
"end": 3721,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3722,
"end": 3758,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3732,
"end": 3752,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3732,
"end": 3734,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3734,
"end": 3751,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3736,
"end": 3751,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3741,
"end": 3745,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3742,
"end": 3745,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3744,
"end": 3745,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3744,
"end": 3745,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3747,
"end": 3751,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3750,
"end": 3751,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3750,
"end": 3751,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3764,
"end": 3838,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3774,
"end": 3777,
"ctxt": 0
},
"value": "I18",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3777,
"end": 3780,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3778,
"end": 3779,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3778,
"end": 3779,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3789,
"end": 3794,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3789,
"end": 3794,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3795,
"end": 3838,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3805,
"end": 3831,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3805,
"end": 3807,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3807,
"end": 3830,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3809,
"end": 3830,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3814,
"end": 3818,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3815,
"end": 3818,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3817,
"end": 3818,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3817,
"end": 3818,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3820,
"end": 3824,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3821,
"end": 3824,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3823,
"end": 3824,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3823,
"end": 3824,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3826,
"end": 3830,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3829,
"end": 3830,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3829,
"end": 3830,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 3842,
"end": 6344,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 3849,
"end": 3871,
"ctxt": 0
},
"value": "GenericSignaturesValid",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 3872,
"end": 6344,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3879,
"end": 4073,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3889,
"end": 3894,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3895,
"end": 4073,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3905,
"end": 3923,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3905,
"end": 3906,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3906,
"end": 3922,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3908,
"end": 3922,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3912,
"end": 3915,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3913,
"end": 3914,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3913,
"end": 3914,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3918,
"end": 3922,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3921,
"end": 3922,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3921,
"end": 3922,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3932,
"end": 3956,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3932,
"end": 3934,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3934,
"end": 3955,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3936,
"end": 3955,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3944,
"end": 3949,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3946,
"end": 3949,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3948,
"end": 3949,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3948,
"end": 3949,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3940,
"end": 3943,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3941,
"end": 3942,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3941,
"end": 3942,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3951,
"end": 3955,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3954,
"end": 3955,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3954,
"end": 3955,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3965,
"end": 3988,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3965,
"end": 3967,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3967,
"end": 3987,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3969,
"end": 3987,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3977,
"end": 3981,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3978,
"end": 3981,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3980,
"end": 3981,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3980,
"end": 3981,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3973,
"end": 3976,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3974,
"end": 3975,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3974,
"end": 3975,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3983,
"end": 3987,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3986,
"end": 3987,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3986,
"end": 3987,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3997,
"end": 4027,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3997,
"end": 3999,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3999,
"end": 4026,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4001,
"end": 4026,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4009,
"end": 4013,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4010,
"end": 4013,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4012,
"end": 4013,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4012,
"end": 4013,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 4015,
"end": 4020,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4017,
"end": 4020,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4019,
"end": 4020,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4019,
"end": 4020,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4005,
"end": 4008,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4006,
"end": 4007,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4006,
"end": 4007,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4022,
"end": 4026,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4025,
"end": 4026,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4025,
"end": 4026,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 4036,
"end": 4067,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4036,
"end": 4038,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4038,
"end": 4066,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4040,
"end": 4066,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4048,
"end": 4053,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4050,
"end": 4053,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4052,
"end": 4053,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4052,
"end": 4053,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 4055,
"end": 4060,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4057,
"end": 4060,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4059,
"end": 4060,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4059,
"end": 4060,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4044,
"end": 4047,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4045,
"end": 4046,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4045,
"end": 4046,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4062,
"end": 4066,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4065,
"end": 4066,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4065,
"end": 4066,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4097,
"end": 4196,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4107,
"end": 4109,
"ctxt": 0
},
"value": "I1",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4118,
"end": 4123,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4118,
"end": 4123,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4124,
"end": 4196,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4134,
"end": 4152,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4134,
"end": 4135,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4135,
"end": 4151,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4137,
"end": 4151,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4141,
"end": 4144,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4142,
"end": 4143,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4142,
"end": 4143,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4147,
"end": 4151,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4150,
"end": 4151,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4150,
"end": 4151,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4202,
"end": 4363,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4212,
"end": 4214,
"ctxt": 0
},
"value": "I2",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4223,
"end": 4228,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4223,
"end": 4228,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4229,
"end": 4363,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4239,
"end": 4262,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4239,
"end": 4240,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4240,
"end": 4261,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4242,
"end": 4261,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4250,
"end": 4255,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4252,
"end": 4255,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4254,
"end": 4255,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4254,
"end": 4255,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4246,
"end": 4249,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4247,
"end": 4248,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4247,
"end": 4248,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4257,
"end": 4261,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4260,
"end": 4261,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4260,
"end": 4261,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4369,
"end": 4529,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4379,
"end": 4381,
"ctxt": 0
},
"value": "I3",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4390,
"end": 4395,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4390,
"end": 4395,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4396,
"end": 4529,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4406,
"end": 4428,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4406,
"end": 4407,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4407,
"end": 4427,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4409,
"end": 4427,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4417,
"end": 4421,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4418,
"end": 4421,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4420,
"end": 4421,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4420,
"end": 4421,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4413,
"end": 4416,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4414,
"end": 4415,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4414,
"end": 4415,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4423,
"end": 4427,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4426,
"end": 4427,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4426,
"end": 4427,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4536,
"end": 4693,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4546,
"end": 4548,
"ctxt": 0
},
"value": "I4",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4557,
"end": 4562,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4557,
"end": 4562,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4563,
"end": 4693,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4573,
"end": 4592,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4573,
"end": 4575,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4575,
"end": 4591,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4577,
"end": 4591,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4581,
"end": 4584,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4582,
"end": 4583,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4582,
"end": 4583,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4587,
"end": 4591,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4590,
"end": 4591,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4590,
"end": 4591,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4699,
"end": 4783,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4709,
"end": 4711,
"ctxt": 0
},
"value": "I5",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4720,
"end": 4725,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4720,
"end": 4725,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4726,
"end": 4783,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4736,
"end": 4760,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4736,
"end": 4738,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4738,
"end": 4759,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4740,
"end": 4759,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4748,
"end": 4753,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4750,
"end": 4753,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4752,
"end": 4753,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4752,
"end": 4753,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4744,
"end": 4747,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4745,
"end": 4746,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4745,
"end": 4746,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4755,
"end": 4759,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4758,
"end": 4759,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4758,
"end": 4759,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4789,
"end": 4884,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4799,
"end": 4801,
"ctxt": 0
},
"value": "I6",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4810,
"end": 4815,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4810,
"end": 4815,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4816,
"end": 4884,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4826,
"end": 4849,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4826,
"end": 4828,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4828,
"end": 4848,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4830,
"end": 4848,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4838,
"end": 4842,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4839,
"end": 4842,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4841,
"end": 4842,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4841,
"end": 4842,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4834,
"end": 4837,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4835,
"end": 4836,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4835,
"end": 4836,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4844,
"end": 4848,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4847,
"end": 4848,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4847,
"end": 4848,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4891,
"end": 4982,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4901,
"end": 4903,
"ctxt": 0
},
"value": "I7",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4912,
"end": 4917,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4912,
"end": 4917,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4918,
"end": 4982,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4928,
"end": 4947,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4928,
"end": 4930,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4930,
"end": 4946,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4932,
"end": 4946,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4936,
"end": 4939,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4937,
"end": 4938,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4937,
"end": 4938,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4942,
"end": 4946,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4945,
"end": 4946,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4945,
"end": 4946,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4988,
"end": 5127,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4998,
"end": 5000,
"ctxt": 0
},
"value": "I8",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5009,
"end": 5014,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5009,
"end": 5014,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5015,
"end": 5127,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5025,
"end": 5049,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5025,
"end": 5027,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5027,
"end": 5048,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 5029,
"end": 5048,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5037,
"end": 5042,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5039,
"end": 5042,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5041,
"end": 5042,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5041,
"end": 5042,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5033,
"end": 5036,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5034,
"end": 5035,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5034,
"end": 5035,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5044,
"end": 5048,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5047,
"end": 5048,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5047,
"end": 5048,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5133,
"end": 5248,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5143,
"end": 5145,
"ctxt": 0
},
"value": "I9",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5154,
"end": 5159,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5154,
"end": 5159,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5160,
"end": 5248,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5170,
"end": 5193,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5170,
"end": 5172,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5172,
"end": 5192,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 5174,
"end": 5192,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5182,
"end": 5186,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5183,
"end": 5186,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5185,
"end": 5186,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5185,
"end": 5186,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5178,
"end": 5181,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5179,
"end": 5180,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5179,
"end": 5180,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5188,
"end": 5192,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5191,
"end": 5192,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5191,
"end": 5192,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5254,
"end": 5363,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5264,
"end": 5267,
"ctxt": 0
},
"value": "I10",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5276,
"end": 5281,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5276,
"end": 5281,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5282,
"end": 5363,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5292,
"end": 5321,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5292,
"end": 5294,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5294,
"end": 5320,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 5296,
"end": 5320,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5304,
"end": 5308,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5305,
"end": 5308,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5307,
"end": 5308,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5307,
"end": 5308,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 5310,
"end": 5314,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5311,
"end": 5314,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5313,
"end": 5314,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5313,
"end": 5314,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5300,
"end": 5303,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5301,
"end": 5302,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5301,
"end": 5302,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5316,
"end": 5320,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5319,
"end": 5320,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5319,
"end": 5320,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5370,
"end": 5528,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5380,
"end": 5383,
"ctxt": 0
},
"value": "I11",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5392,
"end": 5397,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5392,
"end": 5397,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5398,
"end": 5528,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5408,
"end": 5427,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5408,
"end": 5410,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5410,
"end": 5426,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 5412,
"end": 5426,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5416,
"end": 5419,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5417,
"end": 5418,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5417,
"end": 5418,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5422,
"end": 5426,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5425,
"end": 5426,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5425,
"end": 5426,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5534,
"end": 5638,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5544,
"end": 5547,
"ctxt": 0
},
"value": "I12",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5556,
"end": 5561,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5556,
"end": 5561,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5562,
"end": 5638,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5572,
"end": 5603,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5572,
"end": 5574,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5574,
"end": 5602,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 5576,
"end": 5602,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5584,
"end": 5589,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5586,
"end": 5589,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5588,
"end": 5589,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5588,
"end": 5589,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 5591,
"end": 5596,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5593,
"end": 5596,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5595,
"end": 5596,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5595,
"end": 5596,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5580,
"end": 5583,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5581,
"end": 5582,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5581,
"end": 5582,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5598,
"end": 5602,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5601,
"end": 5602,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5601,
"end": 5602,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5644,
"end": 5744,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5654,
"end": 5657,
"ctxt": 0
},
"value": "I13",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5666,
"end": 5671,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5666,
"end": 5671,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5672,
"end": 5744,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5682,
"end": 5705,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5682,
"end": 5684,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5684,
"end": 5704,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 5686,
"end": 5704,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5694,
"end": 5698,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5695,
"end": 5698,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5697,
"end": 5698,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5697,
"end": 5698,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5690,
"end": 5693,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5691,
"end": 5692,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5691,
"end": 5692,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5700,
"end": 5704,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5703,
"end": 5704,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5703,
"end": 5704,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5750,
"end": 5853,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5760,
"end": 5763,
"ctxt": 0
},
"value": "I14",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5772,
"end": 5777,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5772,
"end": 5777,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5778,
"end": 5853,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5788,
"end": 5817,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5788,
"end": 5790,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5790,
"end": 5816,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 5792,
"end": 5816,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5800,
"end": 5804,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5801,
"end": 5804,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5803,
"end": 5804,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5803,
"end": 5804,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 5806,
"end": 5810,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5807,
"end": 5810,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5809,
"end": 5810,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5809,
"end": 5810,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5796,
"end": 5799,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5797,
"end": 5798,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5797,
"end": 5798,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5812,
"end": 5816,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5815,
"end": 5816,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5815,
"end": 5816,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5860,
"end": 6018,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5870,
"end": 5873,
"ctxt": 0
},
"value": "I15",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5882,
"end": 5887,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5882,
"end": 5887,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5888,
"end": 6018,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5898,
"end": 5917,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5898,
"end": 5900,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5900,
"end": 5916,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 5902,
"end": 5916,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5906,
"end": 5909,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5907,
"end": 5908,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5907,
"end": 5908,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5912,
"end": 5916,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5915,
"end": 5916,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5915,
"end": 5916,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 6024,
"end": 6128,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6034,
"end": 6037,
"ctxt": 0
},
"value": "I16",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 6046,
"end": 6051,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6046,
"end": 6051,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 6052,
"end": 6128,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 6062,
"end": 6093,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6062,
"end": 6064,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6064,
"end": 6092,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 6066,
"end": 6092,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 6074,
"end": 6079,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6076,
"end": 6079,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6078,
"end": 6079,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6078,
"end": 6079,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 6081,
"end": 6086,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6083,
"end": 6086,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6085,
"end": 6086,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6085,
"end": 6086,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 6070,
"end": 6073,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 6071,
"end": 6072,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 6071,
"end": 6072,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6088,
"end": 6092,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6091,
"end": 6092,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6091,
"end": 6092,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 6134,
"end": 6233,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6144,
"end": 6147,
"ctxt": 0
},
"value": "I17",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 6156,
"end": 6161,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6156,
"end": 6161,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 6162,
"end": 6233,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 6172,
"end": 6195,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6172,
"end": 6174,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6174,
"end": 6194,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 6176,
"end": 6194,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 6184,
"end": 6188,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6185,
"end": 6188,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6187,
"end": 6188,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6187,
"end": 6188,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 6180,
"end": 6183,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 6181,
"end": 6182,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 6181,
"end": 6182,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6190,
"end": 6194,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6193,
"end": 6194,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6193,
"end": 6194,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 6239,
"end": 6342,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6249,
"end": 6252,
"ctxt": 0
},
"value": "I18",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 6261,
"end": 6266,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6261,
"end": 6266,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 6267,
"end": 6342,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 6277,
"end": 6306,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6277,
"end": 6279,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6279,
"end": 6305,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 6281,
"end": 6305,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 6289,
"end": 6293,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6290,
"end": 6293,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6292,
"end": 6293,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6292,
"end": 6293,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 6295,
"end": 6299,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6296,
"end": 6299,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6298,
"end": 6299,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6298,
"end": 6299,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 6285,
"end": 6288,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 6286,
"end": 6287,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 6286,
"end": 6287,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6301,
"end": 6305,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6304,
"end": 6305,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6304,
"end": 6305,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
}
]
}
}
],
"interpreter": null
}