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

12944 lines
432 KiB
JSON

{
"type": "Script",
"span": {
"start": 103,
"end": 6075,
"ctxt": 0
},
"body": [
{
"type": "TsModuleDeclaration",
"span": {
"start": 103,
"end": 2145,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 110,
"end": 124,
"ctxt": 0
},
"value": "ClassTypeParam",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 125,
"end": 2145,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 131,
"end": 292,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 141,
"end": 145,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 145,
"end": 148,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 146,
"end": 147,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 146,
"end": 147,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 149,
"end": 292,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 159,
"end": 170,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 159,
"end": 160,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 160,
"end": 169,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 162,
"end": 169,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 165,
"end": 169,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 168,
"end": 169,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 168,
"end": 169,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 179,
"end": 196,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 179,
"end": 181,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 181,
"end": 195,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 183,
"end": 195,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 184,
"end": 189,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 186,
"end": 189,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 188,
"end": 189,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 188,
"end": 189,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 191,
"end": 195,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 194,
"end": 195,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 194,
"end": 195,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 205,
"end": 221,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 205,
"end": 207,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 207,
"end": 220,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 209,
"end": 220,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 210,
"end": 214,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 211,
"end": 214,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 213,
"end": 214,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 213,
"end": 214,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 216,
"end": 220,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 219,
"end": 220,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 219,
"end": 220,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 230,
"end": 253,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 230,
"end": 232,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 232,
"end": 252,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 234,
"end": 252,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 235,
"end": 239,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 236,
"end": 239,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 238,
"end": 239,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 238,
"end": 239,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 241,
"end": 246,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 243,
"end": 246,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 245,
"end": 246,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 245,
"end": 246,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 248,
"end": 252,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 251,
"end": 252,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 251,
"end": 252,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 262,
"end": 286,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 262,
"end": 264,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 264,
"end": 285,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 266,
"end": 285,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 267,
"end": 272,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 269,
"end": 272,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 271,
"end": 272,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 271,
"end": 272,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 274,
"end": 279,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 276,
"end": 279,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 278,
"end": 279,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 278,
"end": 279,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 281,
"end": 285,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 284,
"end": 285,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 284,
"end": 285,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 298,
"end": 390,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 308,
"end": 310,
"ctxt": 0
},
"value": "I1",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 310,
"end": 313,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 311,
"end": 312,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 311,
"end": 312,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 322,
"end": 329,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 322,
"end": 326,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 326,
"end": 329,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 327,
"end": 328,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 327,
"end": 328,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 330,
"end": 390,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 340,
"end": 351,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 340,
"end": 341,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 341,
"end": 350,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 343,
"end": 350,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 346,
"end": 350,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 349,
"end": 350,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 349,
"end": 350,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 396,
"end": 493,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 406,
"end": 408,
"ctxt": 0
},
"value": "I2",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 408,
"end": 411,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 409,
"end": 410,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 409,
"end": 410,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 420,
"end": 427,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 420,
"end": 424,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 424,
"end": 427,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 425,
"end": 426,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 425,
"end": 426,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 428,
"end": 493,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 438,
"end": 454,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 438,
"end": 439,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 439,
"end": 453,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 441,
"end": 453,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 442,
"end": 447,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 444,
"end": 447,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 446,
"end": 447,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 446,
"end": 447,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 449,
"end": 453,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 452,
"end": 453,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 452,
"end": 453,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 499,
"end": 597,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 509,
"end": 511,
"ctxt": 0
},
"value": "I3",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 511,
"end": 514,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 512,
"end": 513,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 512,
"end": 513,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 523,
"end": 530,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 523,
"end": 527,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 527,
"end": 530,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 528,
"end": 529,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 528,
"end": 529,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 531,
"end": 597,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 541,
"end": 556,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 541,
"end": 542,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 542,
"end": 555,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 544,
"end": 555,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 545,
"end": 549,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 546,
"end": 549,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 548,
"end": 549,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 548,
"end": 549,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 551,
"end": 555,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 554,
"end": 555,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 554,
"end": 555,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 604,
"end": 697,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 614,
"end": 616,
"ctxt": 0
},
"value": "I4",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 616,
"end": 619,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 617,
"end": 618,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 617,
"end": 618,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 628,
"end": 635,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 628,
"end": 632,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 632,
"end": 635,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 633,
"end": 634,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 633,
"end": 634,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 636,
"end": 697,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 646,
"end": 658,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 646,
"end": 648,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 648,
"end": 657,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 650,
"end": 657,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 653,
"end": 657,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 656,
"end": 657,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 656,
"end": 657,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 703,
"end": 801,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 713,
"end": 715,
"ctxt": 0
},
"value": "I5",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 715,
"end": 718,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 716,
"end": 717,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 716,
"end": 717,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 727,
"end": 734,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 727,
"end": 731,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 731,
"end": 734,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 732,
"end": 733,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 732,
"end": 733,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 735,
"end": 801,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 745,
"end": 762,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 745,
"end": 747,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 747,
"end": 761,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 749,
"end": 761,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 750,
"end": 755,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 752,
"end": 755,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 754,
"end": 755,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 754,
"end": 755,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 757,
"end": 761,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 760,
"end": 761,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 760,
"end": 761,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 807,
"end": 900,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 817,
"end": 819,
"ctxt": 0
},
"value": "I6",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 819,
"end": 822,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 820,
"end": 821,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 820,
"end": 821,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 831,
"end": 838,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 831,
"end": 835,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 835,
"end": 838,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 836,
"end": 837,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 836,
"end": 837,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 839,
"end": 900,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 849,
"end": 865,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 849,
"end": 851,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 851,
"end": 864,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 853,
"end": 864,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 854,
"end": 858,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 855,
"end": 858,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 857,
"end": 858,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 857,
"end": 858,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 860,
"end": 864,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 863,
"end": 864,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 863,
"end": 864,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 907,
"end": 996,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 917,
"end": 919,
"ctxt": 0
},
"value": "I7",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 919,
"end": 922,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 920,
"end": 921,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 920,
"end": 921,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 931,
"end": 938,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 931,
"end": 935,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 935,
"end": 938,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 936,
"end": 937,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 936,
"end": 937,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 939,
"end": 996,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 949,
"end": 961,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 949,
"end": 951,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 951,
"end": 960,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 953,
"end": 960,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 956,
"end": 960,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 959,
"end": 960,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 959,
"end": 960,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1002,
"end": 1096,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1012,
"end": 1014,
"ctxt": 0
},
"value": "I8",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1014,
"end": 1017,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1015,
"end": 1016,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1015,
"end": 1016,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1026,
"end": 1033,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1026,
"end": 1030,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1030,
"end": 1033,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1031,
"end": 1032,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1031,
"end": 1032,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1034,
"end": 1096,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1044,
"end": 1061,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1044,
"end": 1046,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1046,
"end": 1060,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1048,
"end": 1060,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1049,
"end": 1054,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1051,
"end": 1054,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1053,
"end": 1054,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1053,
"end": 1054,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1056,
"end": 1060,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1059,
"end": 1060,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1059,
"end": 1060,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1102,
"end": 1199,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1112,
"end": 1114,
"ctxt": 0
},
"value": "I9",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1114,
"end": 1117,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1115,
"end": 1116,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1115,
"end": 1116,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1126,
"end": 1133,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1126,
"end": 1130,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1130,
"end": 1133,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1131,
"end": 1132,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1131,
"end": 1132,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1134,
"end": 1199,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1144,
"end": 1160,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1144,
"end": 1146,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1146,
"end": 1159,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1148,
"end": 1159,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1149,
"end": 1153,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1150,
"end": 1153,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1152,
"end": 1153,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1152,
"end": 1153,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1155,
"end": 1159,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1158,
"end": 1159,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1158,
"end": 1159,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1205,
"end": 1312,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1215,
"end": 1218,
"ctxt": 0
},
"value": "I10",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1218,
"end": 1221,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1219,
"end": 1220,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1219,
"end": 1220,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1230,
"end": 1237,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1230,
"end": 1234,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1234,
"end": 1237,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1235,
"end": 1236,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1235,
"end": 1236,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1238,
"end": 1312,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1248,
"end": 1270,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1248,
"end": 1250,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1250,
"end": 1269,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1252,
"end": 1269,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1253,
"end": 1257,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1254,
"end": 1257,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1256,
"end": 1257,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1256,
"end": 1257,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1259,
"end": 1263,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1260,
"end": 1263,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1262,
"end": 1263,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1262,
"end": 1263,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1265,
"end": 1269,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1268,
"end": 1269,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1268,
"end": 1269,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1319,
"end": 1409,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1329,
"end": 1332,
"ctxt": 0
},
"value": "I11",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1332,
"end": 1335,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1333,
"end": 1334,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1333,
"end": 1334,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1344,
"end": 1351,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1344,
"end": 1348,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1348,
"end": 1351,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1349,
"end": 1350,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1349,
"end": 1350,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1352,
"end": 1409,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1362,
"end": 1374,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1362,
"end": 1364,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1364,
"end": 1373,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1366,
"end": 1373,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1369,
"end": 1373,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1372,
"end": 1373,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1372,
"end": 1373,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1415,
"end": 1517,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1425,
"end": 1428,
"ctxt": 0
},
"value": "I12",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1428,
"end": 1431,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1429,
"end": 1430,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1429,
"end": 1430,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1440,
"end": 1447,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1440,
"end": 1444,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1444,
"end": 1447,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1445,
"end": 1446,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1445,
"end": 1446,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1448,
"end": 1517,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1458,
"end": 1482,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1458,
"end": 1460,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1460,
"end": 1481,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1462,
"end": 1481,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1463,
"end": 1468,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1465,
"end": 1468,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1467,
"end": 1468,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1467,
"end": 1468,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1470,
"end": 1475,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1472,
"end": 1475,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1474,
"end": 1475,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1474,
"end": 1475,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1477,
"end": 1481,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1480,
"end": 1481,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1480,
"end": 1481,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1523,
"end": 1621,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1533,
"end": 1536,
"ctxt": 0
},
"value": "I13",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1536,
"end": 1539,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1537,
"end": 1538,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1537,
"end": 1538,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1548,
"end": 1555,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1548,
"end": 1552,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1552,
"end": 1555,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1553,
"end": 1554,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1553,
"end": 1554,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1556,
"end": 1621,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1566,
"end": 1582,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1566,
"end": 1568,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1568,
"end": 1581,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1570,
"end": 1581,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1571,
"end": 1575,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1572,
"end": 1575,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1574,
"end": 1575,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1574,
"end": 1575,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1577,
"end": 1581,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1580,
"end": 1581,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1580,
"end": 1581,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1627,
"end": 1728,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1637,
"end": 1640,
"ctxt": 0
},
"value": "I14",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1640,
"end": 1643,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1641,
"end": 1642,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1641,
"end": 1642,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1652,
"end": 1659,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1652,
"end": 1656,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1656,
"end": 1659,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1657,
"end": 1658,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1657,
"end": 1658,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1660,
"end": 1728,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1670,
"end": 1692,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1670,
"end": 1672,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1672,
"end": 1691,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1674,
"end": 1691,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1675,
"end": 1679,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1676,
"end": 1679,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1678,
"end": 1679,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1678,
"end": 1679,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1681,
"end": 1685,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1682,
"end": 1685,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1684,
"end": 1685,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1684,
"end": 1685,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1687,
"end": 1691,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1690,
"end": 1691,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1690,
"end": 1691,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1735,
"end": 1825,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1745,
"end": 1748,
"ctxt": 0
},
"value": "I15",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1748,
"end": 1751,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1749,
"end": 1750,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1749,
"end": 1750,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1760,
"end": 1767,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1760,
"end": 1764,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1764,
"end": 1767,
"ctxt": 0
},
"params": [
{
"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
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1768,
"end": 1825,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1778,
"end": 1790,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1778,
"end": 1780,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1780,
"end": 1789,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1782,
"end": 1789,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1785,
"end": 1789,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1788,
"end": 1789,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1788,
"end": 1789,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1831,
"end": 1933,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1841,
"end": 1844,
"ctxt": 0
},
"value": "I16",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1844,
"end": 1847,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1845,
"end": 1846,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1845,
"end": 1846,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1856,
"end": 1863,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1856,
"end": 1860,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1860,
"end": 1863,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1861,
"end": 1862,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1861,
"end": 1862,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1864,
"end": 1933,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1874,
"end": 1898,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1874,
"end": 1876,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1876,
"end": 1897,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1878,
"end": 1897,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1879,
"end": 1884,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1881,
"end": 1884,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1883,
"end": 1884,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1883,
"end": 1884,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1886,
"end": 1891,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1888,
"end": 1891,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1890,
"end": 1891,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1890,
"end": 1891,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1893,
"end": 1897,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1896,
"end": 1897,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1896,
"end": 1897,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1939,
"end": 2036,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1949,
"end": 1952,
"ctxt": 0
},
"value": "I17",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1952,
"end": 1955,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1953,
"end": 1954,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1953,
"end": 1954,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1964,
"end": 1971,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1964,
"end": 1968,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1968,
"end": 1971,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1969,
"end": 1970,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1969,
"end": 1970,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1972,
"end": 2036,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1982,
"end": 1998,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1982,
"end": 1984,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1984,
"end": 1997,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1986,
"end": 1997,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1987,
"end": 1991,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1988,
"end": 1991,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1990,
"end": 1991,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1990,
"end": 1991,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1993,
"end": 1997,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1996,
"end": 1997,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1996,
"end": 1997,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2042,
"end": 2143,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2052,
"end": 2055,
"ctxt": 0
},
"value": "I18",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2055,
"end": 2058,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2056,
"end": 2057,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2056,
"end": 2057,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2067,
"end": 2074,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2067,
"end": 2071,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2071,
"end": 2074,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 2072,
"end": 2073,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2072,
"end": 2073,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2075,
"end": 2143,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2085,
"end": 2107,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2085,
"end": 2087,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2087,
"end": 2106,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2089,
"end": 2106,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2090,
"end": 2094,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2091,
"end": 2094,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2093,
"end": 2094,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2093,
"end": 2094,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 2096,
"end": 2100,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2097,
"end": 2100,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2099,
"end": 2100,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2099,
"end": 2100,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2102,
"end": 2106,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2105,
"end": 2106,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2105,
"end": 2106,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 2147,
"end": 3657,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 2154,
"end": 2178,
"ctxt": 0
},
"value": "GenericSignaturesInvalid",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 2179,
"end": 3657,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2217,
"end": 2391,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2227,
"end": 2232,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2233,
"end": 2391,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2243,
"end": 2257,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2243,
"end": 2244,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2244,
"end": 2256,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2246,
"end": 2256,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2246,
"end": 2249,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2247,
"end": 2248,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2247,
"end": 2248,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2252,
"end": 2256,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2255,
"end": 2256,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2255,
"end": 2256,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2266,
"end": 2286,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2266,
"end": 2268,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2268,
"end": 2285,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2270,
"end": 2285,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2274,
"end": 2279,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2276,
"end": 2279,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2278,
"end": 2279,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2278,
"end": 2279,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2270,
"end": 2273,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2271,
"end": 2272,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2271,
"end": 2272,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2281,
"end": 2285,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2284,
"end": 2285,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2284,
"end": 2285,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2295,
"end": 2314,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2295,
"end": 2297,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2297,
"end": 2313,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2299,
"end": 2313,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2303,
"end": 2307,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2304,
"end": 2307,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2306,
"end": 2307,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2306,
"end": 2307,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2299,
"end": 2302,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2300,
"end": 2301,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2300,
"end": 2301,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2309,
"end": 2313,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2312,
"end": 2313,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2312,
"end": 2313,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2323,
"end": 2349,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2323,
"end": 2325,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2325,
"end": 2348,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2327,
"end": 2348,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2331,
"end": 2335,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2332,
"end": 2335,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2334,
"end": 2335,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2334,
"end": 2335,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 2337,
"end": 2342,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2339,
"end": 2342,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2341,
"end": 2342,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2341,
"end": 2342,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2327,
"end": 2330,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2328,
"end": 2329,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2328,
"end": 2329,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2344,
"end": 2348,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2347,
"end": 2348,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2347,
"end": 2348,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2358,
"end": 2385,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2358,
"end": 2360,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2360,
"end": 2384,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2362,
"end": 2384,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2366,
"end": 2371,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2368,
"end": 2371,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2370,
"end": 2371,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2370,
"end": 2371,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 2373,
"end": 2378,
"ctxt": 0
},
"value": "y",
"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": 2362,
"end": 2365,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2363,
"end": 2364,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2363,
"end": 2364,
"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
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2397,
"end": 2455,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2407,
"end": 2409,
"ctxt": 0
},
"value": "I1",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2409,
"end": 2412,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2410,
"end": 2411,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2410,
"end": 2411,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2421,
"end": 2426,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2421,
"end": 2426,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2427,
"end": 2455,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2437,
"end": 2448,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2437,
"end": 2438,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2438,
"end": 2447,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2440,
"end": 2447,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2443,
"end": 2447,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2446,
"end": 2447,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2446,
"end": 2447,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2461,
"end": 2523,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2471,
"end": 2473,
"ctxt": 0
},
"value": "I2",
"optional": false
},
"declare": false,
"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
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2485,
"end": 2490,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2485,
"end": 2490,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2491,
"end": 2523,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2501,
"end": 2517,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2501,
"end": 2502,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2502,
"end": 2516,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2504,
"end": 2516,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2505,
"end": 2510,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2507,
"end": 2510,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2509,
"end": 2510,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2509,
"end": 2510,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2512,
"end": 2516,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2515,
"end": 2516,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2515,
"end": 2516,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2529,
"end": 2591,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2539,
"end": 2541,
"ctxt": 0
},
"value": "I3",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2541,
"end": 2544,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2542,
"end": 2543,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2542,
"end": 2543,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2553,
"end": 2558,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2553,
"end": 2558,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2559,
"end": 2591,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2569,
"end": 2584,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2569,
"end": 2570,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2570,
"end": 2583,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2572,
"end": 2583,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2573,
"end": 2577,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2574,
"end": 2577,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2576,
"end": 2577,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2576,
"end": 2577,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2579,
"end": 2583,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2582,
"end": 2583,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2582,
"end": 2583,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2598,
"end": 2657,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2608,
"end": 2610,
"ctxt": 0
},
"value": "I4",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2610,
"end": 2613,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2611,
"end": 2612,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2611,
"end": 2612,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2622,
"end": 2627,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2622,
"end": 2627,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2628,
"end": 2657,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2638,
"end": 2650,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2638,
"end": 2640,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2640,
"end": 2649,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2642,
"end": 2649,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2645,
"end": 2649,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2648,
"end": 2649,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2648,
"end": 2649,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2663,
"end": 2725,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2673,
"end": 2675,
"ctxt": 0
},
"value": "I5",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2675,
"end": 2678,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2676,
"end": 2677,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2676,
"end": 2677,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2687,
"end": 2692,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2687,
"end": 2692,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2693,
"end": 2725,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2703,
"end": 2719,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2703,
"end": 2705,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2705,
"end": 2719,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2707,
"end": 2719,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2708,
"end": 2713,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2710,
"end": 2713,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2712,
"end": 2713,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2712,
"end": 2713,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2715,
"end": 2719,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2718,
"end": 2719,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2718,
"end": 2719,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2731,
"end": 2793,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2741,
"end": 2743,
"ctxt": 0
},
"value": "I6",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2743,
"end": 2746,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2744,
"end": 2745,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2744,
"end": 2745,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2755,
"end": 2760,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2755,
"end": 2760,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2761,
"end": 2793,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2771,
"end": 2787,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2771,
"end": 2773,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2773,
"end": 2786,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2775,
"end": 2786,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2776,
"end": 2780,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2777,
"end": 2780,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2779,
"end": 2780,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2779,
"end": 2780,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2782,
"end": 2786,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2785,
"end": 2786,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2785,
"end": 2786,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2800,
"end": 2858,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2810,
"end": 2812,
"ctxt": 0
},
"value": "I7",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2812,
"end": 2815,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2813,
"end": 2814,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2813,
"end": 2814,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2824,
"end": 2829,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2824,
"end": 2829,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2830,
"end": 2858,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2840,
"end": 2852,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2840,
"end": 2842,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2842,
"end": 2851,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2844,
"end": 2851,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2847,
"end": 2851,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2850,
"end": 2851,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2850,
"end": 2851,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2864,
"end": 2928,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2874,
"end": 2876,
"ctxt": 0
},
"value": "I8",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2876,
"end": 2879,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2877,
"end": 2878,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2877,
"end": 2878,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2888,
"end": 2893,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2888,
"end": 2893,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2894,
"end": 2928,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2904,
"end": 2921,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2904,
"end": 2906,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2906,
"end": 2920,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2908,
"end": 2920,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2909,
"end": 2914,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2911,
"end": 2914,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2913,
"end": 2914,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2913,
"end": 2914,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2916,
"end": 2920,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2919,
"end": 2920,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2919,
"end": 2920,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2934,
"end": 2997,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2944,
"end": 2946,
"ctxt": 0
},
"value": "I9",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2946,
"end": 2949,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2947,
"end": 2948,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2947,
"end": 2948,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2958,
"end": 2963,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2958,
"end": 2963,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2964,
"end": 2997,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2974,
"end": 2990,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2974,
"end": 2976,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2976,
"end": 2989,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2978,
"end": 2989,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2979,
"end": 2983,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2980,
"end": 2983,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2982,
"end": 2983,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2982,
"end": 2983,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2985,
"end": 2989,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2988,
"end": 2989,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2988,
"end": 2989,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3003,
"end": 3074,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3013,
"end": 3016,
"ctxt": 0
},
"value": "I10",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3016,
"end": 3019,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3017,
"end": 3018,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3017,
"end": 3018,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3028,
"end": 3033,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3028,
"end": 3033,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3034,
"end": 3074,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3044,
"end": 3066,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3044,
"end": 3046,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3046,
"end": 3065,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3048,
"end": 3065,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3049,
"end": 3053,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3050,
"end": 3053,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3052,
"end": 3053,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3052,
"end": 3053,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3055,
"end": 3059,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3056,
"end": 3059,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3058,
"end": 3059,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3058,
"end": 3059,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3061,
"end": 3065,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3064,
"end": 3065,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3064,
"end": 3065,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3081,
"end": 3141,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3091,
"end": 3094,
"ctxt": 0
},
"value": "I11",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3094,
"end": 3097,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3095,
"end": 3096,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3095,
"end": 3096,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3106,
"end": 3111,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3106,
"end": 3111,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3112,
"end": 3141,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3122,
"end": 3134,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3122,
"end": 3124,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3124,
"end": 3133,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3126,
"end": 3133,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3129,
"end": 3133,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3132,
"end": 3133,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3132,
"end": 3133,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3147,
"end": 3219,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3157,
"end": 3160,
"ctxt": 0
},
"value": "I12",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3160,
"end": 3163,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3161,
"end": 3162,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3161,
"end": 3162,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3172,
"end": 3177,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3172,
"end": 3177,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3178,
"end": 3219,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3188,
"end": 3212,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3188,
"end": 3190,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3190,
"end": 3211,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3192,
"end": 3211,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3193,
"end": 3198,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3195,
"end": 3198,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3197,
"end": 3198,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3197,
"end": 3198,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3200,
"end": 3205,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3202,
"end": 3205,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3204,
"end": 3205,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3204,
"end": 3205,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3207,
"end": 3211,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3210,
"end": 3211,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3210,
"end": 3211,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3225,
"end": 3289,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3235,
"end": 3238,
"ctxt": 0
},
"value": "I13",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3238,
"end": 3241,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3239,
"end": 3240,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3239,
"end": 3240,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3250,
"end": 3255,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3250,
"end": 3255,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3256,
"end": 3289,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3266,
"end": 3282,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3266,
"end": 3268,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3268,
"end": 3281,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3270,
"end": 3281,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3271,
"end": 3275,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3272,
"end": 3275,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3274,
"end": 3275,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3274,
"end": 3275,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3277,
"end": 3281,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3280,
"end": 3281,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3280,
"end": 3281,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3295,
"end": 3365,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3305,
"end": 3308,
"ctxt": 0
},
"value": "I14",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3308,
"end": 3311,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3309,
"end": 3310,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3309,
"end": 3310,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3320,
"end": 3325,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3320,
"end": 3325,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3326,
"end": 3365,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3336,
"end": 3358,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3336,
"end": 3338,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3338,
"end": 3357,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3340,
"end": 3357,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3341,
"end": 3345,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3342,
"end": 3345,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3344,
"end": 3345,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3344,
"end": 3345,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3347,
"end": 3351,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3348,
"end": 3351,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3350,
"end": 3351,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3350,
"end": 3351,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3353,
"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
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3372,
"end": 3432,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3382,
"end": 3385,
"ctxt": 0
},
"value": "I15",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3385,
"end": 3388,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3386,
"end": 3387,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3386,
"end": 3387,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3397,
"end": 3402,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3397,
"end": 3402,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3403,
"end": 3432,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3413,
"end": 3425,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3413,
"end": 3415,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3415,
"end": 3424,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3417,
"end": 3424,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3420,
"end": 3424,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3423,
"end": 3424,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3423,
"end": 3424,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3438,
"end": 3510,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3448,
"end": 3451,
"ctxt": 0
},
"value": "I16",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3451,
"end": 3454,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3452,
"end": 3453,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3452,
"end": 3453,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3463,
"end": 3468,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3463,
"end": 3468,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3469,
"end": 3510,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3479,
"end": 3503,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3479,
"end": 3481,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3481,
"end": 3502,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3483,
"end": 3502,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3484,
"end": 3489,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3486,
"end": 3489,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3488,
"end": 3489,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3488,
"end": 3489,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3491,
"end": 3496,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3493,
"end": 3496,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3495,
"end": 3496,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3495,
"end": 3496,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3498,
"end": 3502,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3501,
"end": 3502,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3501,
"end": 3502,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3516,
"end": 3579,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3526,
"end": 3529,
"ctxt": 0
},
"value": "I17",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3529,
"end": 3532,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3530,
"end": 3531,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3530,
"end": 3531,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3541,
"end": 3546,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3541,
"end": 3546,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3547,
"end": 3579,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3557,
"end": 3573,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3557,
"end": 3559,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3559,
"end": 3572,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3561,
"end": 3572,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3562,
"end": 3566,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3563,
"end": 3566,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3565,
"end": 3566,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3565,
"end": 3566,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3568,
"end": 3572,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3571,
"end": 3572,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3571,
"end": 3572,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3585,
"end": 3655,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3595,
"end": 3598,
"ctxt": 0
},
"value": "I18",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3598,
"end": 3601,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3599,
"end": 3600,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3599,
"end": 3600,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3610,
"end": 3615,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3610,
"end": 3615,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3616,
"end": 3655,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3626,
"end": 3648,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3626,
"end": 3628,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3628,
"end": 3647,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3630,
"end": 3647,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3631,
"end": 3635,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3632,
"end": 3635,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3634,
"end": 3635,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3634,
"end": 3635,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3637,
"end": 3641,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3638,
"end": 3641,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3640,
"end": 3641,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3640,
"end": 3641,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3643,
"end": 3647,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3646,
"end": 3647,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3646,
"end": 3647,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 3659,
"end": 6075,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 3666,
"end": 3688,
"ctxt": 0
},
"value": "GenericSignaturesValid",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 3689,
"end": 6075,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3696,
"end": 3870,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3706,
"end": 3711,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3712,
"end": 3870,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3722,
"end": 3736,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3722,
"end": 3723,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3723,
"end": 3735,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3725,
"end": 3735,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3725,
"end": 3728,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3726,
"end": 3727,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3726,
"end": 3727,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3731,
"end": 3735,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3734,
"end": 3735,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3734,
"end": 3735,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3745,
"end": 3765,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3745,
"end": 3747,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3747,
"end": 3764,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3749,
"end": 3764,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3753,
"end": 3758,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3755,
"end": 3758,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3757,
"end": 3758,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3757,
"end": 3758,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3749,
"end": 3752,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3750,
"end": 3751,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3750,
"end": 3751,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3760,
"end": 3764,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3763,
"end": 3764,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3763,
"end": 3764,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3774,
"end": 3793,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3774,
"end": 3776,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3776,
"end": 3792,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3778,
"end": 3792,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3782,
"end": 3786,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3783,
"end": 3786,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3785,
"end": 3786,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3785,
"end": 3786,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3778,
"end": 3781,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3779,
"end": 3780,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3779,
"end": 3780,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3788,
"end": 3792,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3791,
"end": 3792,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3791,
"end": 3792,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3802,
"end": 3828,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3802,
"end": 3804,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3804,
"end": 3827,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3806,
"end": 3827,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3810,
"end": 3814,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3811,
"end": 3814,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3813,
"end": 3814,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3813,
"end": 3814,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3816,
"end": 3821,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3818,
"end": 3821,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3820,
"end": 3821,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3820,
"end": 3821,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3806,
"end": 3809,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3807,
"end": 3808,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3807,
"end": 3808,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3823,
"end": 3827,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3826,
"end": 3827,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3826,
"end": 3827,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3837,
"end": 3864,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3837,
"end": 3839,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3839,
"end": 3863,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3841,
"end": 3863,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3845,
"end": 3850,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3847,
"end": 3850,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3849,
"end": 3850,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3849,
"end": 3850,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3852,
"end": 3857,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3854,
"end": 3857,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3856,
"end": 3857,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3856,
"end": 3857,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3841,
"end": 3844,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3842,
"end": 3843,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3842,
"end": 3843,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3859,
"end": 3863,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3862,
"end": 3863,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3862,
"end": 3863,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3894,
"end": 3989,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3904,
"end": 3906,
"ctxt": 0
},
"value": "I1",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3915,
"end": 3920,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3915,
"end": 3920,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3921,
"end": 3989,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3931,
"end": 3945,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3931,
"end": 3932,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3932,
"end": 3944,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3934,
"end": 3944,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3934,
"end": 3937,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3935,
"end": 3936,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3935,
"end": 3936,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3940,
"end": 3944,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3943,
"end": 3944,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3943,
"end": 3944,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3995,
"end": 4152,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4005,
"end": 4007,
"ctxt": 0
},
"value": "I2",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4016,
"end": 4021,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4016,
"end": 4021,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4022,
"end": 4152,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4032,
"end": 4051,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4032,
"end": 4033,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4033,
"end": 4050,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4035,
"end": 4050,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4039,
"end": 4044,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4041,
"end": 4044,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4043,
"end": 4044,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4043,
"end": 4044,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4035,
"end": 4038,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4036,
"end": 4037,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4036,
"end": 4037,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4046,
"end": 4050,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4049,
"end": 4050,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4049,
"end": 4050,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4158,
"end": 4314,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4168,
"end": 4170,
"ctxt": 0
},
"value": "I3",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4179,
"end": 4184,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4179,
"end": 4184,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4185,
"end": 4314,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4195,
"end": 4213,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4195,
"end": 4196,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4196,
"end": 4212,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4198,
"end": 4212,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4202,
"end": 4206,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4203,
"end": 4206,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4205,
"end": 4206,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4205,
"end": 4206,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4198,
"end": 4201,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4199,
"end": 4200,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4199,
"end": 4200,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4208,
"end": 4212,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4211,
"end": 4212,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4211,
"end": 4212,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4321,
"end": 4474,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4331,
"end": 4333,
"ctxt": 0
},
"value": "I4",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4342,
"end": 4347,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4342,
"end": 4347,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4348,
"end": 4474,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4358,
"end": 4373,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4358,
"end": 4360,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4360,
"end": 4372,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4362,
"end": 4372,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4362,
"end": 4365,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4363,
"end": 4364,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4363,
"end": 4364,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4368,
"end": 4372,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4371,
"end": 4372,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4371,
"end": 4372,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4480,
"end": 4560,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4490,
"end": 4492,
"ctxt": 0
},
"value": "I5",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4501,
"end": 4506,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4501,
"end": 4506,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4507,
"end": 4560,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4517,
"end": 4537,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4517,
"end": 4519,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4519,
"end": 4536,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4521,
"end": 4536,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4525,
"end": 4530,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4527,
"end": 4530,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4529,
"end": 4530,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4529,
"end": 4530,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4521,
"end": 4524,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4522,
"end": 4523,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4522,
"end": 4523,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4532,
"end": 4536,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4535,
"end": 4536,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4535,
"end": 4536,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4566,
"end": 4657,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4576,
"end": 4578,
"ctxt": 0
},
"value": "I6",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4587,
"end": 4592,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4587,
"end": 4592,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4593,
"end": 4657,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4603,
"end": 4622,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4603,
"end": 4605,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4605,
"end": 4621,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4607,
"end": 4621,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4611,
"end": 4615,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4612,
"end": 4615,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4614,
"end": 4615,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4614,
"end": 4615,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4607,
"end": 4610,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4608,
"end": 4609,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4608,
"end": 4609,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4617,
"end": 4621,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4620,
"end": 4621,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4620,
"end": 4621,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4664,
"end": 4794,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4674,
"end": 4676,
"ctxt": 0
},
"value": "I7",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4685,
"end": 4690,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4685,
"end": 4690,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4691,
"end": 4794,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4701,
"end": 4716,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4701,
"end": 4703,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4703,
"end": 4715,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4705,
"end": 4715,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4705,
"end": 4708,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4706,
"end": 4707,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4706,
"end": 4707,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4711,
"end": 4715,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4714,
"end": 4715,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4714,
"end": 4715,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4800,
"end": 4892,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4810,
"end": 4812,
"ctxt": 0
},
"value": "I8",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4821,
"end": 4826,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4821,
"end": 4826,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4827,
"end": 4892,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4837,
"end": 4857,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4837,
"end": 4839,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4839,
"end": 4856,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4841,
"end": 4856,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4845,
"end": 4850,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4847,
"end": 4850,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4849,
"end": 4850,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4849,
"end": 4850,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4841,
"end": 4844,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4842,
"end": 4843,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4842,
"end": 4843,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4852,
"end": 4856,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4855,
"end": 4856,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4855,
"end": 4856,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4898,
"end": 5009,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4908,
"end": 4910,
"ctxt": 0
},
"value": "I9",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4919,
"end": 4924,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4919,
"end": 4924,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4925,
"end": 5009,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4935,
"end": 4954,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4935,
"end": 4937,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4937,
"end": 4953,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4939,
"end": 4953,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4943,
"end": 4947,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4944,
"end": 4947,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4946,
"end": 4947,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4946,
"end": 4947,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4939,
"end": 4942,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4940,
"end": 4941,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4940,
"end": 4941,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4949,
"end": 4953,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4952,
"end": 4953,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4952,
"end": 4953,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5015,
"end": 5120,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5025,
"end": 5028,
"ctxt": 0
},
"value": "I10",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5037,
"end": 5042,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5037,
"end": 5042,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5043,
"end": 5120,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5053,
"end": 5078,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5053,
"end": 5055,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5055,
"end": 5077,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 5057,
"end": 5077,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5061,
"end": 5065,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5062,
"end": 5065,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5064,
"end": 5065,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5064,
"end": 5065,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 5067,
"end": 5071,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5068,
"end": 5071,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5070,
"end": 5071,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5070,
"end": 5071,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5057,
"end": 5060,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5058,
"end": 5059,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5058,
"end": 5059,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5073,
"end": 5077,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5076,
"end": 5077,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5076,
"end": 5077,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5127,
"end": 5281,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5137,
"end": 5140,
"ctxt": 0
},
"value": "I11",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5149,
"end": 5154,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5149,
"end": 5154,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5155,
"end": 5281,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5165,
"end": 5180,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5165,
"end": 5167,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5167,
"end": 5179,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 5169,
"end": 5179,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5169,
"end": 5172,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5170,
"end": 5171,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5170,
"end": 5171,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5175,
"end": 5179,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5178,
"end": 5179,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5178,
"end": 5179,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5287,
"end": 5387,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5297,
"end": 5300,
"ctxt": 0
},
"value": "I12",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5309,
"end": 5314,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5309,
"end": 5314,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5315,
"end": 5387,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5325,
"end": 5352,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5325,
"end": 5327,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5327,
"end": 5351,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 5329,
"end": 5351,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5333,
"end": 5338,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5335,
"end": 5338,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5337,
"end": 5338,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5337,
"end": 5338,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 5340,
"end": 5345,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5342,
"end": 5345,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5344,
"end": 5345,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5344,
"end": 5345,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5329,
"end": 5332,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5330,
"end": 5331,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5330,
"end": 5331,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5347,
"end": 5351,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5350,
"end": 5351,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5350,
"end": 5351,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5393,
"end": 5489,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5403,
"end": 5406,
"ctxt": 0
},
"value": "I13",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5415,
"end": 5420,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5415,
"end": 5420,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5421,
"end": 5489,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5431,
"end": 5450,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5431,
"end": 5433,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5433,
"end": 5449,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 5435,
"end": 5449,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5439,
"end": 5443,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5440,
"end": 5443,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5442,
"end": 5443,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5442,
"end": 5443,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5435,
"end": 5438,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5436,
"end": 5437,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5436,
"end": 5437,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5445,
"end": 5449,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5448,
"end": 5449,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5448,
"end": 5449,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5495,
"end": 5600,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5505,
"end": 5508,
"ctxt": 0
},
"value": "I14",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5517,
"end": 5522,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5517,
"end": 5522,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5523,
"end": 5600,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5533,
"end": 5558,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5533,
"end": 5535,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5535,
"end": 5557,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 5537,
"end": 5557,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5541,
"end": 5545,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5542,
"end": 5545,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5544,
"end": 5545,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5544,
"end": 5545,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 5547,
"end": 5551,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5548,
"end": 5551,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5550,
"end": 5551,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5550,
"end": 5551,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5537,
"end": 5540,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5538,
"end": 5539,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5538,
"end": 5539,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5553,
"end": 5557,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5556,
"end": 5557,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5556,
"end": 5557,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5607,
"end": 5761,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5617,
"end": 5620,
"ctxt": 0
},
"value": "I15",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5629,
"end": 5634,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5629,
"end": 5634,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5635,
"end": 5761,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5645,
"end": 5660,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5645,
"end": 5647,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5647,
"end": 5659,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 5649,
"end": 5659,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5649,
"end": 5652,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5650,
"end": 5651,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5650,
"end": 5651,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5655,
"end": 5659,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5658,
"end": 5659,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5658,
"end": 5659,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5767,
"end": 5867,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5777,
"end": 5780,
"ctxt": 0
},
"value": "I16",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5789,
"end": 5794,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5789,
"end": 5794,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5795,
"end": 5867,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5805,
"end": 5832,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5805,
"end": 5807,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5807,
"end": 5831,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 5809,
"end": 5831,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5813,
"end": 5818,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5815,
"end": 5818,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5817,
"end": 5818,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5817,
"end": 5818,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 5820,
"end": 5825,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5822,
"end": 5825,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5824,
"end": 5825,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5824,
"end": 5825,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5809,
"end": 5812,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5810,
"end": 5811,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5810,
"end": 5811,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5827,
"end": 5831,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5830,
"end": 5831,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5830,
"end": 5831,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5873,
"end": 5968,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5883,
"end": 5886,
"ctxt": 0
},
"value": "I17",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5895,
"end": 5900,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5895,
"end": 5900,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5901,
"end": 5968,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5911,
"end": 5930,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5911,
"end": 5913,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5913,
"end": 5929,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 5915,
"end": 5929,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5919,
"end": 5923,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5920,
"end": 5923,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5922,
"end": 5923,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5922,
"end": 5923,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5915,
"end": 5918,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5916,
"end": 5917,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5916,
"end": 5917,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5925,
"end": 5929,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5928,
"end": 5929,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5928,
"end": 5929,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5974,
"end": 6073,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5984,
"end": 5987,
"ctxt": 0
},
"value": "I18",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5996,
"end": 6001,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5996,
"end": 6001,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 6002,
"end": 6073,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 6012,
"end": 6037,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6012,
"end": 6014,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6014,
"end": 6036,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 6016,
"end": 6036,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 6020,
"end": 6024,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6021,
"end": 6024,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6023,
"end": 6024,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6023,
"end": 6024,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 6026,
"end": 6030,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6027,
"end": 6030,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6029,
"end": 6030,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6029,
"end": 6030,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 6016,
"end": 6019,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 6017,
"end": 6018,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 6017,
"end": 6018,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6032,
"end": 6036,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6035,
"end": 6036,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6035,
"end": 6036,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
}
]
}
}
],
"interpreter": null
}