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

12814 lines
428 KiB
JSON

{
"type": "Script",
"span": {
"start": 102,
"end": 6074,
"ctxt": 0
},
"body": [
{
"type": "TsModuleDeclaration",
"span": {
"start": 102,
"end": 2144,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 109,
"end": 123,
"ctxt": 0
},
"value": "ClassTypeParam",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 124,
"end": 2144,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 130,
"end": 291,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 140,
"end": 144,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 144,
"end": 147,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 145,
"end": 146,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 145,
"end": 146,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 148,
"end": 291,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 158,
"end": 169,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 158,
"end": 159,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 159,
"end": 168,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 161,
"end": 168,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 164,
"end": 168,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 167,
"end": 168,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 167,
"end": 168,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 178,
"end": 195,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 178,
"end": 180,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 180,
"end": 194,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 182,
"end": 194,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 183,
"end": 188,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 185,
"end": 188,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 187,
"end": 188,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 187,
"end": 188,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 190,
"end": 194,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 193,
"end": 194,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 193,
"end": 194,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 204,
"end": 220,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 204,
"end": 206,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 206,
"end": 219,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 208,
"end": 219,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 209,
"end": 213,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 210,
"end": 213,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 212,
"end": 213,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 212,
"end": 213,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 215,
"end": 219,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 218,
"end": 219,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 218,
"end": 219,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 229,
"end": 252,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 229,
"end": 231,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 231,
"end": 251,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 233,
"end": 251,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 234,
"end": 238,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 235,
"end": 238,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 237,
"end": 238,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 237,
"end": 238,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 240,
"end": 245,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 242,
"end": 245,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 244,
"end": 245,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 244,
"end": 245,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 247,
"end": 251,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 250,
"end": 251,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 250,
"end": 251,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 261,
"end": 285,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 261,
"end": 263,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 263,
"end": 284,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 265,
"end": 284,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 266,
"end": 271,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 268,
"end": 271,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 270,
"end": 271,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 270,
"end": 271,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 273,
"end": 278,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 275,
"end": 278,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 277,
"end": 278,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 277,
"end": 278,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 280,
"end": 284,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 283,
"end": 284,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 283,
"end": 284,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 297,
"end": 389,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 307,
"end": 309,
"ctxt": 0
},
"value": "I1",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 309,
"end": 312,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 310,
"end": 311,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 310,
"end": 311,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 321,
"end": 328,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 321,
"end": 325,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 325,
"end": 328,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 326,
"end": 327,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 326,
"end": 327,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 329,
"end": 389,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 339,
"end": 350,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 339,
"end": 340,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 340,
"end": 349,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 342,
"end": 349,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 345,
"end": 349,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 348,
"end": 349,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 348,
"end": 349,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 395,
"end": 492,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 405,
"end": 407,
"ctxt": 0
},
"value": "I2",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 407,
"end": 410,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 408,
"end": 409,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 408,
"end": 409,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 419,
"end": 426,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 419,
"end": 423,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 423,
"end": 426,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 424,
"end": 425,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 424,
"end": 425,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 427,
"end": 492,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 437,
"end": 453,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 437,
"end": 438,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 438,
"end": 452,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 440,
"end": 452,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 441,
"end": 446,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 443,
"end": 446,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 445,
"end": 446,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 445,
"end": 446,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 448,
"end": 452,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 451,
"end": 452,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 451,
"end": 452,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 498,
"end": 596,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 508,
"end": 510,
"ctxt": 0
},
"value": "I3",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 510,
"end": 513,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 511,
"end": 512,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 511,
"end": 512,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 522,
"end": 529,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 522,
"end": 526,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 526,
"end": 529,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 527,
"end": 528,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 527,
"end": 528,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 530,
"end": 596,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 540,
"end": 555,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 540,
"end": 541,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 541,
"end": 554,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 543,
"end": 554,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 544,
"end": 548,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 545,
"end": 548,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 547,
"end": 548,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 547,
"end": 548,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 550,
"end": 554,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 553,
"end": 554,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 553,
"end": 554,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 603,
"end": 696,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 613,
"end": 615,
"ctxt": 0
},
"value": "I4",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 615,
"end": 618,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 616,
"end": 617,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 616,
"end": 617,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 627,
"end": 634,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 627,
"end": 631,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 631,
"end": 634,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 632,
"end": 633,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 632,
"end": 633,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 635,
"end": 696,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 645,
"end": 657,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 645,
"end": 647,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 647,
"end": 656,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 649,
"end": 656,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 652,
"end": 656,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 655,
"end": 656,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 655,
"end": 656,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 702,
"end": 800,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 712,
"end": 714,
"ctxt": 0
},
"value": "I5",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 714,
"end": 717,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 715,
"end": 716,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 715,
"end": 716,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 726,
"end": 733,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 726,
"end": 730,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 730,
"end": 733,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 731,
"end": 732,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 731,
"end": 732,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 734,
"end": 800,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 744,
"end": 761,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 744,
"end": 746,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 746,
"end": 760,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 748,
"end": 760,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 749,
"end": 754,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 751,
"end": 754,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 753,
"end": 754,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 753,
"end": 754,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 756,
"end": 760,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 759,
"end": 760,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 759,
"end": 760,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 806,
"end": 899,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 816,
"end": 818,
"ctxt": 0
},
"value": "I6",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 818,
"end": 821,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 819,
"end": 820,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 819,
"end": 820,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 830,
"end": 837,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 830,
"end": 834,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 834,
"end": 837,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 835,
"end": 836,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 835,
"end": 836,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 838,
"end": 899,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 848,
"end": 864,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 848,
"end": 850,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 850,
"end": 863,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 852,
"end": 863,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 853,
"end": 857,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 854,
"end": 857,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 856,
"end": 857,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 856,
"end": 857,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 859,
"end": 863,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 862,
"end": 863,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 862,
"end": 863,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 906,
"end": 995,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 916,
"end": 918,
"ctxt": 0
},
"value": "I7",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 918,
"end": 921,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 919,
"end": 920,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 919,
"end": 920,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 930,
"end": 937,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 930,
"end": 934,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 934,
"end": 937,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 935,
"end": 936,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 935,
"end": 936,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 938,
"end": 995,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 948,
"end": 960,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 948,
"end": 950,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 950,
"end": 959,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 952,
"end": 959,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 955,
"end": 959,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 958,
"end": 959,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 958,
"end": 959,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1001,
"end": 1095,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1011,
"end": 1013,
"ctxt": 0
},
"value": "I8",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1013,
"end": 1016,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1014,
"end": 1015,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1014,
"end": 1015,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1025,
"end": 1032,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1025,
"end": 1029,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1029,
"end": 1032,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1030,
"end": 1031,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1030,
"end": 1031,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1033,
"end": 1095,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1043,
"end": 1060,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1043,
"end": 1045,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1045,
"end": 1059,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1047,
"end": 1059,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1048,
"end": 1053,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1050,
"end": 1053,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1052,
"end": 1053,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1052,
"end": 1053,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1055,
"end": 1059,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1058,
"end": 1059,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1058,
"end": 1059,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1101,
"end": 1198,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1111,
"end": 1113,
"ctxt": 0
},
"value": "I9",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1113,
"end": 1116,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1114,
"end": 1115,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1114,
"end": 1115,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1125,
"end": 1132,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1125,
"end": 1129,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1129,
"end": 1132,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1130,
"end": 1131,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1130,
"end": 1131,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1133,
"end": 1198,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1143,
"end": 1159,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1143,
"end": 1145,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1145,
"end": 1158,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1147,
"end": 1158,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1148,
"end": 1152,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1149,
"end": 1152,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1151,
"end": 1152,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1151,
"end": 1152,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1154,
"end": 1158,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1157,
"end": 1158,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1157,
"end": 1158,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1204,
"end": 1311,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1214,
"end": 1217,
"ctxt": 0
},
"value": "I10",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1217,
"end": 1220,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1218,
"end": 1219,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1218,
"end": 1219,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1229,
"end": 1236,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1229,
"end": 1233,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1233,
"end": 1236,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1234,
"end": 1235,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1234,
"end": 1235,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1237,
"end": 1311,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1247,
"end": 1269,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1247,
"end": 1249,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1249,
"end": 1268,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1251,
"end": 1268,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1252,
"end": 1256,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1253,
"end": 1256,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1255,
"end": 1256,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1255,
"end": 1256,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1258,
"end": 1262,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1259,
"end": 1262,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1261,
"end": 1262,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1261,
"end": 1262,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1264,
"end": 1268,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1267,
"end": 1268,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1267,
"end": 1268,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1318,
"end": 1408,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1328,
"end": 1331,
"ctxt": 0
},
"value": "I11",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1331,
"end": 1334,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1332,
"end": 1333,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1332,
"end": 1333,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1343,
"end": 1350,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1343,
"end": 1347,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1347,
"end": 1350,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1348,
"end": 1349,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1348,
"end": 1349,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1351,
"end": 1408,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1361,
"end": 1373,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1361,
"end": 1363,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1363,
"end": 1372,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1365,
"end": 1372,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1368,
"end": 1372,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1371,
"end": 1372,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1371,
"end": 1372,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1414,
"end": 1516,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1424,
"end": 1427,
"ctxt": 0
},
"value": "I12",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1427,
"end": 1430,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1428,
"end": 1429,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1428,
"end": 1429,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1439,
"end": 1446,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1439,
"end": 1443,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1443,
"end": 1446,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1444,
"end": 1445,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1444,
"end": 1445,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1447,
"end": 1516,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1457,
"end": 1481,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1457,
"end": 1459,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1459,
"end": 1480,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1461,
"end": 1480,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1462,
"end": 1467,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1464,
"end": 1467,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1466,
"end": 1467,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1466,
"end": 1467,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1469,
"end": 1474,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1471,
"end": 1474,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1473,
"end": 1474,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1473,
"end": 1474,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1476,
"end": 1480,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1479,
"end": 1480,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1479,
"end": 1480,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1522,
"end": 1620,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1532,
"end": 1535,
"ctxt": 0
},
"value": "I13",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1535,
"end": 1538,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1536,
"end": 1537,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1536,
"end": 1537,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1547,
"end": 1554,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1547,
"end": 1551,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1551,
"end": 1554,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1552,
"end": 1553,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1552,
"end": 1553,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1555,
"end": 1620,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1565,
"end": 1581,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1565,
"end": 1567,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1567,
"end": 1580,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1569,
"end": 1580,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1570,
"end": 1574,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1571,
"end": 1574,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1573,
"end": 1574,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1573,
"end": 1574,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1576,
"end": 1580,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1579,
"end": 1580,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1579,
"end": 1580,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1626,
"end": 1727,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1636,
"end": 1639,
"ctxt": 0
},
"value": "I14",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1639,
"end": 1642,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1640,
"end": 1641,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1640,
"end": 1641,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1651,
"end": 1658,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1651,
"end": 1655,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1655,
"end": 1658,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1656,
"end": 1657,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1656,
"end": 1657,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1659,
"end": 1727,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1669,
"end": 1691,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1669,
"end": 1671,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1671,
"end": 1690,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1673,
"end": 1690,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1674,
"end": 1678,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1675,
"end": 1678,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1677,
"end": 1678,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1677,
"end": 1678,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1680,
"end": 1684,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1681,
"end": 1684,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1683,
"end": 1684,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1683,
"end": 1684,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1686,
"end": 1690,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1689,
"end": 1690,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1689,
"end": 1690,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1734,
"end": 1824,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1744,
"end": 1747,
"ctxt": 0
},
"value": "I15",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1747,
"end": 1750,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1748,
"end": 1749,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1748,
"end": 1749,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1759,
"end": 1766,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1759,
"end": 1763,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1763,
"end": 1766,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1764,
"end": 1765,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1764,
"end": 1765,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1767,
"end": 1824,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1777,
"end": 1789,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1777,
"end": 1779,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1779,
"end": 1788,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1781,
"end": 1788,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1784,
"end": 1788,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1787,
"end": 1788,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1787,
"end": 1788,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1830,
"end": 1932,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1840,
"end": 1843,
"ctxt": 0
},
"value": "I16",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1843,
"end": 1846,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1844,
"end": 1845,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1844,
"end": 1845,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1855,
"end": 1862,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1855,
"end": 1859,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1859,
"end": 1862,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1860,
"end": 1861,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1860,
"end": 1861,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1863,
"end": 1932,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1873,
"end": 1897,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1873,
"end": 1875,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1875,
"end": 1896,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1877,
"end": 1896,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1878,
"end": 1883,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1880,
"end": 1883,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1882,
"end": 1883,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1882,
"end": 1883,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1885,
"end": 1890,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1887,
"end": 1890,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1889,
"end": 1890,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1889,
"end": 1890,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1892,
"end": 1896,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1895,
"end": 1896,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1895,
"end": 1896,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1938,
"end": 2035,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1948,
"end": 1951,
"ctxt": 0
},
"value": "I17",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1951,
"end": 1954,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1952,
"end": 1953,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1952,
"end": 1953,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1963,
"end": 1970,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1963,
"end": 1967,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1967,
"end": 1970,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1968,
"end": 1969,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1968,
"end": 1969,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1971,
"end": 2035,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1981,
"end": 1997,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1981,
"end": 1983,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1983,
"end": 1996,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1985,
"end": 1996,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1986,
"end": 1990,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1987,
"end": 1990,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1989,
"end": 1990,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1989,
"end": 1990,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1992,
"end": 1996,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1995,
"end": 1996,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1995,
"end": 1996,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2041,
"end": 2142,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2051,
"end": 2054,
"ctxt": 0
},
"value": "I18",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2054,
"end": 2057,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2055,
"end": 2056,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2055,
"end": 2056,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2066,
"end": 2073,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2066,
"end": 2070,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeArguments": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2070,
"end": 2073,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 2071,
"end": 2072,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2071,
"end": 2072,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
]
}
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2074,
"end": 2142,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2084,
"end": 2106,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2084,
"end": 2086,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2086,
"end": 2105,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2088,
"end": 2105,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2089,
"end": 2093,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2090,
"end": 2093,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2092,
"end": 2093,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2092,
"end": 2093,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 2095,
"end": 2099,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2096,
"end": 2099,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2098,
"end": 2099,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2098,
"end": 2099,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2101,
"end": 2105,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2104,
"end": 2105,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2104,
"end": 2105,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 2146,
"end": 3656,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 2153,
"end": 2177,
"ctxt": 0
},
"value": "GenericSignaturesInvalid",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 2178,
"end": 3656,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2216,
"end": 2390,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2226,
"end": 2231,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2232,
"end": 2390,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2242,
"end": 2256,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2242,
"end": 2243,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2243,
"end": 2255,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2245,
"end": 2255,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2245,
"end": 2248,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2246,
"end": 2247,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2246,
"end": 2247,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2251,
"end": 2255,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2254,
"end": 2255,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2254,
"end": 2255,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2265,
"end": 2285,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2265,
"end": 2267,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2267,
"end": 2284,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2269,
"end": 2284,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2273,
"end": 2278,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2275,
"end": 2278,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2277,
"end": 2278,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2277,
"end": 2278,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2269,
"end": 2272,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2270,
"end": 2271,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2270,
"end": 2271,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2280,
"end": 2284,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2283,
"end": 2284,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2283,
"end": 2284,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2294,
"end": 2313,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2294,
"end": 2296,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2296,
"end": 2312,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2298,
"end": 2312,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2302,
"end": 2306,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2303,
"end": 2306,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2305,
"end": 2306,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2305,
"end": 2306,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2298,
"end": 2301,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2299,
"end": 2300,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2299,
"end": 2300,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2308,
"end": 2312,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2311,
"end": 2312,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2311,
"end": 2312,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2322,
"end": 2348,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2322,
"end": 2324,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2324,
"end": 2347,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2326,
"end": 2347,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2330,
"end": 2334,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2331,
"end": 2334,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2333,
"end": 2334,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2333,
"end": 2334,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 2336,
"end": 2341,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2338,
"end": 2341,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2340,
"end": 2341,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2340,
"end": 2341,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2326,
"end": 2329,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2327,
"end": 2328,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2327,
"end": 2328,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2343,
"end": 2347,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2346,
"end": 2347,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2346,
"end": 2347,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2357,
"end": 2384,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2357,
"end": 2359,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2359,
"end": 2383,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2361,
"end": 2383,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2365,
"end": 2370,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2367,
"end": 2370,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2369,
"end": 2370,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2369,
"end": 2370,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 2372,
"end": 2377,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2374,
"end": 2377,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2376,
"end": 2377,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2376,
"end": 2377,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2361,
"end": 2364,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2362,
"end": 2363,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2362,
"end": 2363,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2379,
"end": 2383,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2382,
"end": 2383,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2382,
"end": 2383,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2396,
"end": 2454,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2406,
"end": 2408,
"ctxt": 0
},
"value": "I1",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2408,
"end": 2411,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2409,
"end": 2410,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2409,
"end": 2410,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2420,
"end": 2425,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2420,
"end": 2425,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2426,
"end": 2454,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2436,
"end": 2447,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2436,
"end": 2437,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2437,
"end": 2446,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2439,
"end": 2446,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2442,
"end": 2446,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2445,
"end": 2446,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2445,
"end": 2446,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2460,
"end": 2522,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2470,
"end": 2472,
"ctxt": 0
},
"value": "I2",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2472,
"end": 2475,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2473,
"end": 2474,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2473,
"end": 2474,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2484,
"end": 2489,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2484,
"end": 2489,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2490,
"end": 2522,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2500,
"end": 2516,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2500,
"end": 2501,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2501,
"end": 2515,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2503,
"end": 2515,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2504,
"end": 2509,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2506,
"end": 2509,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2508,
"end": 2509,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2508,
"end": 2509,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2511,
"end": 2515,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2514,
"end": 2515,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2514,
"end": 2515,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2528,
"end": 2590,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2538,
"end": 2540,
"ctxt": 0
},
"value": "I3",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2540,
"end": 2543,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2541,
"end": 2542,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2541,
"end": 2542,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2552,
"end": 2557,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2552,
"end": 2557,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2558,
"end": 2590,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2568,
"end": 2583,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2568,
"end": 2569,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2569,
"end": 2582,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2571,
"end": 2582,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2572,
"end": 2576,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2573,
"end": 2576,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2575,
"end": 2576,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2575,
"end": 2576,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2578,
"end": 2582,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2581,
"end": 2582,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2581,
"end": 2582,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2597,
"end": 2656,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2607,
"end": 2609,
"ctxt": 0
},
"value": "I4",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2609,
"end": 2612,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2610,
"end": 2611,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2610,
"end": 2611,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2621,
"end": 2626,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2621,
"end": 2626,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2627,
"end": 2656,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2637,
"end": 2649,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2637,
"end": 2639,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2639,
"end": 2648,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2641,
"end": 2648,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2644,
"end": 2648,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2647,
"end": 2648,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2647,
"end": 2648,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2662,
"end": 2724,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2672,
"end": 2674,
"ctxt": 0
},
"value": "I5",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2674,
"end": 2677,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2675,
"end": 2676,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2675,
"end": 2676,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2686,
"end": 2691,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2686,
"end": 2691,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2692,
"end": 2724,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2702,
"end": 2718,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2702,
"end": 2704,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2704,
"end": 2718,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2706,
"end": 2718,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2707,
"end": 2712,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2709,
"end": 2712,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2711,
"end": 2712,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2711,
"end": 2712,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2714,
"end": 2718,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2717,
"end": 2718,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2717,
"end": 2718,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2730,
"end": 2792,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2740,
"end": 2742,
"ctxt": 0
},
"value": "I6",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2742,
"end": 2745,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2743,
"end": 2744,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2743,
"end": 2744,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2754,
"end": 2759,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2754,
"end": 2759,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2760,
"end": 2792,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2770,
"end": 2786,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2770,
"end": 2772,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2772,
"end": 2785,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2774,
"end": 2785,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2775,
"end": 2779,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2776,
"end": 2779,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2778,
"end": 2779,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2778,
"end": 2779,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2781,
"end": 2785,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2784,
"end": 2785,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2784,
"end": 2785,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2799,
"end": 2857,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2809,
"end": 2811,
"ctxt": 0
},
"value": "I7",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2811,
"end": 2814,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2812,
"end": 2813,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2812,
"end": 2813,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2823,
"end": 2828,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2823,
"end": 2828,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2829,
"end": 2857,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2839,
"end": 2851,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2839,
"end": 2841,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2841,
"end": 2850,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2843,
"end": 2850,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2846,
"end": 2850,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2849,
"end": 2850,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2849,
"end": 2850,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2863,
"end": 2927,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2873,
"end": 2875,
"ctxt": 0
},
"value": "I8",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2875,
"end": 2878,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2876,
"end": 2877,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2876,
"end": 2877,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2887,
"end": 2892,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2887,
"end": 2892,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2893,
"end": 2927,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2903,
"end": 2920,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2903,
"end": 2905,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2905,
"end": 2919,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2907,
"end": 2919,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2908,
"end": 2913,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2910,
"end": 2913,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2912,
"end": 2913,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2912,
"end": 2913,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2915,
"end": 2919,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2918,
"end": 2919,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2918,
"end": 2919,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2933,
"end": 2996,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2943,
"end": 2945,
"ctxt": 0
},
"value": "I9",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2945,
"end": 2948,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2946,
"end": 2947,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2946,
"end": 2947,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2957,
"end": 2962,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2957,
"end": 2962,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2963,
"end": 2996,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2973,
"end": 2989,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2973,
"end": 2975,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2975,
"end": 2988,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2977,
"end": 2988,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2978,
"end": 2982,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2979,
"end": 2982,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2981,
"end": 2982,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2981,
"end": 2982,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2984,
"end": 2988,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2987,
"end": 2988,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2987,
"end": 2988,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3002,
"end": 3073,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3012,
"end": 3015,
"ctxt": 0
},
"value": "I10",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3015,
"end": 3018,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3016,
"end": 3017,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3016,
"end": 3017,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3027,
"end": 3032,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3027,
"end": 3032,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3033,
"end": 3073,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3043,
"end": 3065,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3043,
"end": 3045,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3045,
"end": 3064,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3047,
"end": 3064,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3048,
"end": 3052,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3049,
"end": 3052,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3051,
"end": 3052,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3051,
"end": 3052,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3054,
"end": 3058,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3055,
"end": 3058,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3057,
"end": 3058,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3057,
"end": 3058,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3060,
"end": 3064,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3063,
"end": 3064,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3063,
"end": 3064,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3080,
"end": 3140,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3090,
"end": 3093,
"ctxt": 0
},
"value": "I11",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3093,
"end": 3096,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3094,
"end": 3095,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3094,
"end": 3095,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3105,
"end": 3110,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3105,
"end": 3110,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3111,
"end": 3140,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3121,
"end": 3133,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3121,
"end": 3123,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3123,
"end": 3132,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3125,
"end": 3132,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3128,
"end": 3132,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3131,
"end": 3132,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3131,
"end": 3132,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3146,
"end": 3218,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3156,
"end": 3159,
"ctxt": 0
},
"value": "I12",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3159,
"end": 3162,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3160,
"end": 3161,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3160,
"end": 3161,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3171,
"end": 3176,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3171,
"end": 3176,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3177,
"end": 3218,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3187,
"end": 3211,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3187,
"end": 3189,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3189,
"end": 3210,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3191,
"end": 3210,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3192,
"end": 3197,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3194,
"end": 3197,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3196,
"end": 3197,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3196,
"end": 3197,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3199,
"end": 3204,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3201,
"end": 3204,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3203,
"end": 3204,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3203,
"end": 3204,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3206,
"end": 3210,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3209,
"end": 3210,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3209,
"end": 3210,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3224,
"end": 3288,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3234,
"end": 3237,
"ctxt": 0
},
"value": "I13",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3237,
"end": 3240,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3238,
"end": 3239,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3238,
"end": 3239,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3249,
"end": 3254,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3249,
"end": 3254,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3255,
"end": 3288,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3265,
"end": 3281,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3265,
"end": 3267,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3267,
"end": 3280,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3269,
"end": 3280,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3270,
"end": 3274,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3271,
"end": 3274,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3273,
"end": 3274,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3273,
"end": 3274,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3276,
"end": 3280,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3279,
"end": 3280,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3279,
"end": 3280,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3294,
"end": 3364,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3304,
"end": 3307,
"ctxt": 0
},
"value": "I14",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3307,
"end": 3310,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3308,
"end": 3309,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3308,
"end": 3309,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3319,
"end": 3324,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3319,
"end": 3324,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3325,
"end": 3364,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3335,
"end": 3357,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3335,
"end": 3337,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3337,
"end": 3356,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3339,
"end": 3356,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3340,
"end": 3344,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3341,
"end": 3344,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3343,
"end": 3344,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3343,
"end": 3344,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3346,
"end": 3350,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3347,
"end": 3350,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3349,
"end": 3350,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3349,
"end": 3350,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3352,
"end": 3356,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3355,
"end": 3356,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3355,
"end": 3356,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3371,
"end": 3431,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3381,
"end": 3384,
"ctxt": 0
},
"value": "I15",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3384,
"end": 3387,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3385,
"end": 3386,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3385,
"end": 3386,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3396,
"end": 3401,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3396,
"end": 3401,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3402,
"end": 3431,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3412,
"end": 3424,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3412,
"end": 3414,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3414,
"end": 3423,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3416,
"end": 3423,
"ctxt": 0
},
"params": [],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3419,
"end": 3423,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3422,
"end": 3423,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3422,
"end": 3423,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3437,
"end": 3509,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3447,
"end": 3450,
"ctxt": 0
},
"value": "I16",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3450,
"end": 3453,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3451,
"end": 3452,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3451,
"end": 3452,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3462,
"end": 3467,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3462,
"end": 3467,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3468,
"end": 3509,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3478,
"end": 3502,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3478,
"end": 3480,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3480,
"end": 3501,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3482,
"end": 3501,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3483,
"end": 3488,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3485,
"end": 3488,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3487,
"end": 3488,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3487,
"end": 3488,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3490,
"end": 3495,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3492,
"end": 3495,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3494,
"end": 3495,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3494,
"end": 3495,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3497,
"end": 3501,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3500,
"end": 3501,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3500,
"end": 3501,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3515,
"end": 3578,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3525,
"end": 3528,
"ctxt": 0
},
"value": "I17",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3528,
"end": 3531,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3529,
"end": 3530,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3529,
"end": 3530,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3540,
"end": 3545,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3540,
"end": 3545,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3546,
"end": 3578,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3556,
"end": 3572,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3556,
"end": 3558,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3558,
"end": 3571,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3560,
"end": 3571,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3561,
"end": 3565,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3562,
"end": 3565,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3564,
"end": 3565,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3564,
"end": 3565,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3567,
"end": 3571,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3570,
"end": 3571,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3570,
"end": 3571,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3584,
"end": 3654,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3594,
"end": 3597,
"ctxt": 0
},
"value": "I18",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3597,
"end": 3600,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3598,
"end": 3599,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3598,
"end": 3599,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3609,
"end": 3614,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3609,
"end": 3614,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3615,
"end": 3654,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3625,
"end": 3647,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3625,
"end": 3627,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3627,
"end": 3646,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3629,
"end": 3646,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3630,
"end": 3634,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3631,
"end": 3634,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3633,
"end": 3634,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3633,
"end": 3634,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3636,
"end": 3640,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3637,
"end": 3640,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3639,
"end": 3640,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3639,
"end": 3640,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3642,
"end": 3646,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3645,
"end": 3646,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3645,
"end": 3646,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 3658,
"end": 6074,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 3665,
"end": 3687,
"ctxt": 0
},
"value": "GenericSignaturesValid",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 3688,
"end": 6074,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3695,
"end": 3869,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3705,
"end": 3710,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3711,
"end": 3869,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3721,
"end": 3735,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3721,
"end": 3722,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3722,
"end": 3734,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3724,
"end": 3734,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3724,
"end": 3727,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3725,
"end": 3726,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3725,
"end": 3726,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3730,
"end": 3734,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3733,
"end": 3734,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3733,
"end": 3734,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3744,
"end": 3764,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3744,
"end": 3746,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3746,
"end": 3763,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3748,
"end": 3763,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3752,
"end": 3757,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3754,
"end": 3757,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3756,
"end": 3757,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3756,
"end": 3757,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3748,
"end": 3751,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3749,
"end": 3750,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3749,
"end": 3750,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3759,
"end": 3763,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3762,
"end": 3763,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3762,
"end": 3763,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3773,
"end": 3792,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3773,
"end": 3775,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3775,
"end": 3791,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3777,
"end": 3791,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3781,
"end": 3785,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3782,
"end": 3785,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3784,
"end": 3785,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3784,
"end": 3785,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3777,
"end": 3780,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3778,
"end": 3779,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3778,
"end": 3779,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3787,
"end": 3791,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3790,
"end": 3791,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3790,
"end": 3791,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3801,
"end": 3827,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3801,
"end": 3803,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3803,
"end": 3826,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3805,
"end": 3826,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3809,
"end": 3813,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3810,
"end": 3813,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3812,
"end": 3813,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3812,
"end": 3813,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3815,
"end": 3820,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3817,
"end": 3820,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3819,
"end": 3820,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3819,
"end": 3820,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3805,
"end": 3808,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3806,
"end": 3807,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3806,
"end": 3807,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3822,
"end": 3826,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3825,
"end": 3826,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3825,
"end": 3826,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3836,
"end": 3863,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3836,
"end": 3838,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3838,
"end": 3862,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3840,
"end": 3862,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3844,
"end": 3849,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3846,
"end": 3849,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3848,
"end": 3849,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3848,
"end": 3849,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3851,
"end": 3856,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3853,
"end": 3856,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3855,
"end": 3856,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3855,
"end": 3856,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3840,
"end": 3843,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3841,
"end": 3842,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3841,
"end": 3842,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3858,
"end": 3862,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3861,
"end": 3862,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3861,
"end": 3862,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3893,
"end": 3988,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3903,
"end": 3905,
"ctxt": 0
},
"value": "I1",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3914,
"end": 3919,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3914,
"end": 3919,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3920,
"end": 3988,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3930,
"end": 3944,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3930,
"end": 3931,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3931,
"end": 3943,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 3933,
"end": 3943,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3933,
"end": 3936,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3934,
"end": 3935,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3934,
"end": 3935,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3939,
"end": 3943,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3942,
"end": 3943,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3942,
"end": 3943,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3994,
"end": 4151,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4004,
"end": 4006,
"ctxt": 0
},
"value": "I2",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4015,
"end": 4020,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4015,
"end": 4020,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4021,
"end": 4151,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4031,
"end": 4050,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4031,
"end": 4032,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4032,
"end": 4049,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4034,
"end": 4049,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4038,
"end": 4043,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4040,
"end": 4043,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4042,
"end": 4043,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4042,
"end": 4043,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4034,
"end": 4037,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4035,
"end": 4036,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4035,
"end": 4036,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4045,
"end": 4049,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4048,
"end": 4049,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4048,
"end": 4049,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4157,
"end": 4313,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4167,
"end": 4169,
"ctxt": 0
},
"value": "I3",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4178,
"end": 4183,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4178,
"end": 4183,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4184,
"end": 4313,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4194,
"end": 4212,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4194,
"end": 4195,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4195,
"end": 4211,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4197,
"end": 4211,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4201,
"end": 4205,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4202,
"end": 4205,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4204,
"end": 4205,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4204,
"end": 4205,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4197,
"end": 4200,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4198,
"end": 4199,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4198,
"end": 4199,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4207,
"end": 4211,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4210,
"end": 4211,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4210,
"end": 4211,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4320,
"end": 4473,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4330,
"end": 4332,
"ctxt": 0
},
"value": "I4",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4341,
"end": 4346,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4341,
"end": 4346,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4347,
"end": 4473,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4357,
"end": 4372,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4357,
"end": 4359,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4359,
"end": 4371,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4361,
"end": 4371,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4361,
"end": 4364,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4362,
"end": 4363,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4362,
"end": 4363,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4367,
"end": 4371,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4370,
"end": 4371,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4370,
"end": 4371,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4479,
"end": 4559,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4489,
"end": 4491,
"ctxt": 0
},
"value": "I5",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4500,
"end": 4505,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4500,
"end": 4505,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4506,
"end": 4559,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4516,
"end": 4536,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4516,
"end": 4518,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4518,
"end": 4535,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4520,
"end": 4535,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4524,
"end": 4529,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4526,
"end": 4529,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4528,
"end": 4529,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4528,
"end": 4529,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4520,
"end": 4523,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4521,
"end": 4522,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4521,
"end": 4522,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4531,
"end": 4535,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4534,
"end": 4535,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4534,
"end": 4535,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4565,
"end": 4656,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4575,
"end": 4577,
"ctxt": 0
},
"value": "I6",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4586,
"end": 4591,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4586,
"end": 4591,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4592,
"end": 4656,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4602,
"end": 4621,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4602,
"end": 4604,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4604,
"end": 4620,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4606,
"end": 4620,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4610,
"end": 4614,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4611,
"end": 4614,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4613,
"end": 4614,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4613,
"end": 4614,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4606,
"end": 4609,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4607,
"end": 4608,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4607,
"end": 4608,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4616,
"end": 4620,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4619,
"end": 4620,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4619,
"end": 4620,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4663,
"end": 4793,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4673,
"end": 4675,
"ctxt": 0
},
"value": "I7",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4684,
"end": 4689,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4684,
"end": 4689,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4690,
"end": 4793,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4700,
"end": 4715,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4700,
"end": 4702,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4702,
"end": 4714,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4704,
"end": 4714,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4704,
"end": 4707,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4705,
"end": 4706,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4705,
"end": 4706,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4710,
"end": 4714,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4713,
"end": 4714,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4713,
"end": 4714,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4799,
"end": 4891,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4809,
"end": 4811,
"ctxt": 0
},
"value": "I8",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4820,
"end": 4825,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4820,
"end": 4825,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4826,
"end": 4891,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4836,
"end": 4856,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4836,
"end": 4838,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4838,
"end": 4855,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4840,
"end": 4855,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4844,
"end": 4849,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4846,
"end": 4849,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4848,
"end": 4849,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4848,
"end": 4849,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4840,
"end": 4843,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4841,
"end": 4842,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4841,
"end": 4842,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4851,
"end": 4855,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4854,
"end": 4855,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4854,
"end": 4855,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4897,
"end": 5008,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4907,
"end": 4909,
"ctxt": 0
},
"value": "I9",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4918,
"end": 4923,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4918,
"end": 4923,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4924,
"end": 5008,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4934,
"end": 4953,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4934,
"end": 4936,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4936,
"end": 4952,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4938,
"end": 4952,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4942,
"end": 4946,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4943,
"end": 4946,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4945,
"end": 4946,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4945,
"end": 4946,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4938,
"end": 4941,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4939,
"end": 4940,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4939,
"end": 4940,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4948,
"end": 4952,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4951,
"end": 4952,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4951,
"end": 4952,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5014,
"end": 5119,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5024,
"end": 5027,
"ctxt": 0
},
"value": "I10",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5036,
"end": 5041,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5036,
"end": 5041,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5042,
"end": 5119,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5052,
"end": 5077,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5052,
"end": 5054,
"ctxt": 0
},
"value": "a3",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5054,
"end": 5076,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 5056,
"end": 5076,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5060,
"end": 5064,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5061,
"end": 5064,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5063,
"end": 5064,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5063,
"end": 5064,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 5066,
"end": 5070,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5067,
"end": 5070,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5069,
"end": 5070,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5069,
"end": 5070,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5056,
"end": 5059,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5057,
"end": 5058,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5057,
"end": 5058,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5072,
"end": 5076,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5075,
"end": 5076,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5075,
"end": 5076,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5126,
"end": 5280,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5136,
"end": 5139,
"ctxt": 0
},
"value": "I11",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5148,
"end": 5153,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5148,
"end": 5153,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5154,
"end": 5280,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5164,
"end": 5179,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5164,
"end": 5166,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5166,
"end": 5178,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 5168,
"end": 5178,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5168,
"end": 5171,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5169,
"end": 5170,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5169,
"end": 5170,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5174,
"end": 5178,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5177,
"end": 5178,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5177,
"end": 5178,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5286,
"end": 5386,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5296,
"end": 5299,
"ctxt": 0
},
"value": "I12",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5308,
"end": 5313,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5308,
"end": 5313,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5314,
"end": 5386,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5324,
"end": 5351,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5324,
"end": 5326,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5326,
"end": 5350,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 5328,
"end": 5350,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5332,
"end": 5337,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5334,
"end": 5337,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5336,
"end": 5337,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5336,
"end": 5337,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 5339,
"end": 5344,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5341,
"end": 5344,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5343,
"end": 5344,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5343,
"end": 5344,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5328,
"end": 5331,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5329,
"end": 5330,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5329,
"end": 5330,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5346,
"end": 5350,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5349,
"end": 5350,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5349,
"end": 5350,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5392,
"end": 5488,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5402,
"end": 5405,
"ctxt": 0
},
"value": "I13",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5414,
"end": 5419,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5414,
"end": 5419,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5420,
"end": 5488,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5430,
"end": 5449,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5430,
"end": 5432,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5432,
"end": 5448,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 5434,
"end": 5448,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5438,
"end": 5442,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5439,
"end": 5442,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5441,
"end": 5442,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5441,
"end": 5442,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5434,
"end": 5437,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5435,
"end": 5436,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5435,
"end": 5436,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5444,
"end": 5448,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5447,
"end": 5448,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5447,
"end": 5448,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5494,
"end": 5599,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5504,
"end": 5507,
"ctxt": 0
},
"value": "I14",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5516,
"end": 5521,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5516,
"end": 5521,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5522,
"end": 5599,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5532,
"end": 5557,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5532,
"end": 5534,
"ctxt": 0
},
"value": "a4",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5534,
"end": 5556,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 5536,
"end": 5556,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5540,
"end": 5544,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5541,
"end": 5544,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5543,
"end": 5544,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5543,
"end": 5544,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 5546,
"end": 5550,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5547,
"end": 5550,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5549,
"end": 5550,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5549,
"end": 5550,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5536,
"end": 5539,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5537,
"end": 5538,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5537,
"end": 5538,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5552,
"end": 5556,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5555,
"end": 5556,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5555,
"end": 5556,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5606,
"end": 5760,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5616,
"end": 5619,
"ctxt": 0
},
"value": "I15",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5628,
"end": 5633,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5628,
"end": 5633,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5634,
"end": 5760,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5644,
"end": 5659,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5644,
"end": 5646,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5646,
"end": 5658,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 5648,
"end": 5658,
"ctxt": 0
},
"params": [],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5648,
"end": 5651,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5649,
"end": 5650,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5649,
"end": 5650,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5654,
"end": 5658,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5657,
"end": 5658,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5657,
"end": 5658,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5766,
"end": 5866,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5776,
"end": 5779,
"ctxt": 0
},
"value": "I16",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5788,
"end": 5793,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5788,
"end": 5793,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5794,
"end": 5866,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5804,
"end": 5831,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5804,
"end": 5806,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5806,
"end": 5830,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 5808,
"end": 5830,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5812,
"end": 5817,
"ctxt": 0
},
"value": "x",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5814,
"end": 5817,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5816,
"end": 5817,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5816,
"end": 5817,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 5819,
"end": 5824,
"ctxt": 0
},
"value": "y",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5821,
"end": 5824,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5823,
"end": 5824,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5823,
"end": 5824,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5808,
"end": 5811,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5809,
"end": 5810,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5809,
"end": 5810,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5826,
"end": 5830,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5829,
"end": 5830,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5829,
"end": 5830,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5872,
"end": 5967,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5882,
"end": 5885,
"ctxt": 0
},
"value": "I17",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5894,
"end": 5899,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5894,
"end": 5899,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 5900,
"end": 5967,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 5910,
"end": 5929,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5910,
"end": 5912,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5912,
"end": 5928,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 5914,
"end": 5928,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 5918,
"end": 5922,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5919,
"end": 5922,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5921,
"end": 5922,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5921,
"end": 5922,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 5914,
"end": 5917,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 5915,
"end": 5916,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 5915,
"end": 5916,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5924,
"end": 5928,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5927,
"end": 5928,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5927,
"end": 5928,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 5973,
"end": 6072,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5983,
"end": 5986,
"ctxt": 0
},
"value": "I18",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 5995,
"end": 6000,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5995,
"end": 6000,
"ctxt": 0
},
"value": "Base2",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 6001,
"end": 6072,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 6011,
"end": 6036,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6011,
"end": 6013,
"ctxt": 0
},
"value": "a5",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6013,
"end": 6035,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 6015,
"end": 6035,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 6019,
"end": 6023,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6020,
"end": 6023,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6022,
"end": 6023,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6022,
"end": 6023,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 6025,
"end": 6029,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6026,
"end": 6029,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6028,
"end": 6029,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6028,
"end": 6029,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 6015,
"end": 6018,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 6016,
"end": 6017,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 6016,
"end": 6017,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6031,
"end": 6035,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6034,
"end": 6035,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6034,
"end": 6035,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
"typeParams": null
}
]
}
}
]
}
}
],
"interpreter": null
}