swc/crates/swc_ecma_parser/tests/tsc/constructSignatureAssignabilityInInheritance3.json
2022-02-04 20:17:42 +09:00

6584 lines
285 KiB
JSON

{
"type": "Script",
"span": {
"start": 117,
"end": 4286,
"ctxt": 0
},
"body": [
{
"type": "TsModuleDeclaration",
"span": {
"start": 117,
"end": 4286,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 124,
"end": 130,
"ctxt": 0
},
"value": "Errors",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 131,
"end": 4286,
"ctxt": 0
},
"body": [
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 143,
"end": 147,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"declare": false,
"span": {
"start": 137,
"end": 164,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 150,
"end": 162,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 150,
"end": 153,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 153,
"end": 161,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 155,
"end": 161,
"ctxt": 0
},
"kind": "string"
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 175,
"end": 182,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"declare": false,
"span": {
"start": 169,
"end": 212,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 198,
"end": 210,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 198,
"end": 201,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 201,
"end": 209,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 203,
"end": 209,
"ctxt": 0
},
"kind": "string"
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
}
],
"superClass": {
"type": "Identifier",
"span": {
"start": 191,
"end": 195,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 223,
"end": 231,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"declare": false,
"span": {
"start": 217,
"end": 264,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 250,
"end": 262,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 250,
"end": 253,
"ctxt": 0
},
"value": "baz",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 253,
"end": 261,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 255,
"end": 261,
"ctxt": 0
},
"kind": "string"
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
}
],
"superClass": {
"type": "Identifier",
"span": {
"start": 240,
"end": 247,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 275,
"end": 287,
"ctxt": 0
},
"value": "OtherDerived",
"optional": false
},
"declare": false,
"span": {
"start": 269,
"end": 318,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 303,
"end": 316,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 303,
"end": 307,
"ctxt": 0
},
"value": "bing",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 307,
"end": 315,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 309,
"end": 315,
"ctxt": 0
},
"kind": "string"
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
}
],
"superClass": {
"type": "Identifier",
"span": {
"start": 296,
"end": 300,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 324,
"end": 3459,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 331,
"end": 365,
"ctxt": 0
},
"value": "WithNonGenericSignaturesInBaseType",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 366,
"end": 3459,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 430,
"end": 1500,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 440,
"end": 441,
"ctxt": 0
},
"value": "A",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 442,
"end": 1500,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 456,
"end": 488,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 456,
"end": 458,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 458,
"end": 487,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 460,
"end": 487,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 465,
"end": 474,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 466,
"end": 474,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 468,
"end": 474,
"ctxt": 0
},
"kind": "number"
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 476,
"end": 487,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 479,
"end": 487,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 479,
"end": 485,
"ctxt": 0
},
"kind": "string"
}
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 501,
"end": 562,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 501,
"end": 503,
"ctxt": 0
},
"value": "a7",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 503,
"end": 561,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 505,
"end": 561,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 510,
"end": 535,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 511,
"end": 535,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 513,
"end": 535,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 514,
"end": 523,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 517,
"end": 523,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 519,
"end": 523,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 519,
"end": 523,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 525,
"end": 535,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 528,
"end": 535,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 528,
"end": 535,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 537,
"end": 561,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 540,
"end": 561,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 541,
"end": 548,
"ctxt": 0
},
"value": "r",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 542,
"end": 548,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 544,
"end": 548,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 544,
"end": 548,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 550,
"end": 561,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 553,
"end": 561,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 553,
"end": 561,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"typeParams": null
}
}
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 575,
"end": 663,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 575,
"end": 577,
"ctxt": 0
},
"value": "a8",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 577,
"end": 662,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 579,
"end": 662,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 584,
"end": 609,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 585,
"end": 609,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 587,
"end": 609,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 588,
"end": 597,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 591,
"end": 597,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 593,
"end": 597,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 593,
"end": 597,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 599,
"end": 609,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 602,
"end": 609,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 602,
"end": 609,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 611,
"end": 637,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 612,
"end": 637,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 614,
"end": 637,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 615,
"end": 625,
"ctxt": 0
},
"value": "arg2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 619,
"end": 625,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 621,
"end": 625,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 621,
"end": 625,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 627,
"end": 637,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 630,
"end": 637,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 630,
"end": 637,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 639,
"end": 662,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 642,
"end": 662,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 643,
"end": 650,
"ctxt": 0
},
"value": "r",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 644,
"end": 650,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 646,
"end": 650,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 646,
"end": 650,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 652,
"end": 662,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 655,
"end": 662,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 655,
"end": 662,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 676,
"end": 708,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 676,
"end": 679,
"ctxt": 0
},
"value": "a10",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 679,
"end": 707,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 681,
"end": 707,
"ctxt": 0
},
"params": [
{
"type": "RestElement",
"span": {
"start": 686,
"end": 698,
"ctxt": 0
},
"rest": {
"start": 686,
"end": 689,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 689,
"end": 690,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": null
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 690,
"end": 698,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 692,
"end": 698,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 692,
"end": 696,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 692,
"end": 696,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 700,
"end": 707,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 703,
"end": 707,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 703,
"end": 707,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 721,
"end": 792,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 721,
"end": 724,
"ctxt": 0
},
"value": "a11",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 724,
"end": 791,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 726,
"end": 791,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 731,
"end": 749,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 732,
"end": 749,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 734,
"end": 749,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 736,
"end": 747,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 736,
"end": 739,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 739,
"end": 747,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 741,
"end": 747,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
}
},
{
"type": "Identifier",
"span": {
"start": 751,
"end": 782,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 752,
"end": 782,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 754,
"end": 782,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 756,
"end": 768,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 756,
"end": 759,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 759,
"end": 767,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 761,
"end": 767,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 769,
"end": 780,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 769,
"end": 772,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 772,
"end": 780,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 774,
"end": 780,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 784,
"end": 791,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 787,
"end": 791,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 787,
"end": 791,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 805,
"end": 869,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 805,
"end": 808,
"ctxt": 0
},
"value": "a12",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 808,
"end": 868,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 810,
"end": 868,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 815,
"end": 829,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 816,
"end": 829,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 818,
"end": 829,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 818,
"end": 823,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 823,
"end": 829,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 824,
"end": 828,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 824,
"end": 828,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 831,
"end": 849,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 832,
"end": 849,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 834,
"end": 849,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 834,
"end": 839,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 839,
"end": 849,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 840,
"end": 848,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 840,
"end": 848,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 851,
"end": 868,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 854,
"end": 868,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 854,
"end": 859,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 859,
"end": 868,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 860,
"end": 867,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 860,
"end": 867,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
]
}
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 882,
"end": 989,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 882,
"end": 885,
"ctxt": 0
},
"value": "a14",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 885,
"end": 988,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 887,
"end": 988,
"ctxt": 0
},
"members": [
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 905,
"end": 931,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 910,
"end": 919,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 911,
"end": 919,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 913,
"end": 919,
"ctxt": 0
},
"kind": "number"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 920,
"end": 930,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 922,
"end": 930,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 922,
"end": 928,
"ctxt": 0
},
"kind": "number"
}
}
},
"typeParams": null
},
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 948,
"end": 974,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 953,
"end": 962,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 954,
"end": 962,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 956,
"end": 962,
"ctxt": 0
},
"kind": "string"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 963,
"end": 973,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 965,
"end": 973,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 965,
"end": 971,
"ctxt": 0
},
"kind": "string"
}
}
},
"typeParams": null
}
]
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1002,
"end": 1051,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1002,
"end": 1005,
"ctxt": 0
},
"value": "a15",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1005,
"end": 1050,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1007,
"end": 1050,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1012,
"end": 1039,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1013,
"end": 1039,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1015,
"end": 1039,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1017,
"end": 1027,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1017,
"end": 1018,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1018,
"end": 1026,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1020,
"end": 1026,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1028,
"end": 1037,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1028,
"end": 1029,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1029,
"end": 1037,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1031,
"end": 1037,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1041,
"end": 1050,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1044,
"end": 1050,
"ctxt": 0
},
"kind": "number"
}
},
"isAbstract": false
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1064,
"end": 1490,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1064,
"end": 1067,
"ctxt": 0
},
"value": "a16",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1067,
"end": 1489,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1069,
"end": 1489,
"ctxt": 0
},
"members": [
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 1193,
"end": 1323,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1198,
"end": 1311,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1199,
"end": 1311,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1201,
"end": 1311,
"ctxt": 0
},
"members": [
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 1223,
"end": 1247,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1228,
"end": 1237,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1229,
"end": 1237,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1231,
"end": 1237,
"ctxt": 0
},
"kind": "number"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1238,
"end": 1246,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1240,
"end": 1246,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
},
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 1268,
"end": 1293,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1273,
"end": 1283,
"ctxt": 0
},
"value": "a",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1275,
"end": 1283,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1277,
"end": 1283,
"ctxt": 0
},
"kind": "number"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1284,
"end": 1292,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1286,
"end": 1292,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1312,
"end": 1322,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1314,
"end": 1322,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 1314,
"end": 1320,
"ctxt": 0
},
"kind": "number"
}
}
},
"typeParams": null
},
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 1340,
"end": 1475,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1345,
"end": 1462,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1346,
"end": 1462,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1348,
"end": 1462,
"ctxt": 0
},
"members": [
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 1370,
"end": 1396,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1375,
"end": 1385,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1376,
"end": 1385,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1378,
"end": 1385,
"ctxt": 0
},
"kind": "boolean"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1386,
"end": 1395,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1388,
"end": 1395,
"ctxt": 0
},
"kind": "boolean"
}
},
"typeParams": null
},
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 1417,
"end": 1444,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1422,
"end": 1433,
"ctxt": 0
},
"value": "a",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1424,
"end": 1433,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1426,
"end": 1433,
"ctxt": 0
},
"kind": "boolean"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1434,
"end": 1443,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1436,
"end": 1443,
"ctxt": 0
},
"kind": "boolean"
}
},
"typeParams": null
}
]
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1463,
"end": 1474,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1465,
"end": 1474,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 1465,
"end": 1472,
"ctxt": 0
},
"kind": "boolean"
}
}
},
"typeParams": null
}
]
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1510,
"end": 1695,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1520,
"end": 1521,
"ctxt": 0
},
"value": "I",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1530,
"end": 1531,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1530,
"end": 1531,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1532,
"end": 1695,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1546,
"end": 1574,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1546,
"end": 1548,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1548,
"end": 1573,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1550,
"end": 1573,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1561,
"end": 1565,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1562,
"end": 1565,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1564,
"end": 1565,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1564,
"end": 1565,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1554,
"end": 1560,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1555,
"end": 1556,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1555,
"end": 1556,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 1558,
"end": 1559,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1558,
"end": 1559,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1567,
"end": 1573,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1570,
"end": 1573,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 1570,
"end": 1571,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1570,
"end": 1571,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1705,
"end": 1855,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1715,
"end": 1717,
"ctxt": 0
},
"value": "I2",
"optional": false
},
"declare": false,
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1717,
"end": 1723,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1718,
"end": 1719,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1718,
"end": 1719,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 1721,
"end": 1722,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1721,
"end": 1722,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1732,
"end": 1733,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1732,
"end": 1733,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1734,
"end": 1855,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1748,
"end": 1770,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1748,
"end": 1750,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1750,
"end": 1769,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1752,
"end": 1769,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1757,
"end": 1761,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1758,
"end": 1761,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1760,
"end": 1761,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1760,
"end": 1761,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1763,
"end": 1769,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1766,
"end": 1769,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 1766,
"end": 1767,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1766,
"end": 1767,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 1865,
"end": 2078,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1875,
"end": 1877,
"ctxt": 0
},
"value": "I3",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 1886,
"end": 1887,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 1886,
"end": 1887,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 1888,
"end": 2078,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 1971,
"end": 2068,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1971,
"end": 1973,
"ctxt": 0
},
"value": "a7",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1973,
"end": 2067,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1975,
"end": 2067,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2035,
"end": 2051,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2036,
"end": 2051,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2038,
"end": 2051,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2039,
"end": 2045,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2042,
"end": 2045,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2044,
"end": 2045,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2044,
"end": 2045,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2047,
"end": 2051,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2050,
"end": 2051,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2050,
"end": 2051,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1979,
"end": 2034,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1980,
"end": 1994,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1980,
"end": 1981,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 1990,
"end": 1994,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1990,
"end": 1994,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 1996,
"end": 2013,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1996,
"end": 1997,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2006,
"end": 2013,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2006,
"end": 2013,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2015,
"end": 2033,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2015,
"end": 2016,
"ctxt": 0
},
"value": "V",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2025,
"end": 2033,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2025,
"end": 2033,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2053,
"end": 2067,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2056,
"end": 2067,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2057,
"end": 2061,
"ctxt": 0
},
"value": "r",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2058,
"end": 2061,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2060,
"end": 2061,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2060,
"end": 2061,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2063,
"end": 2067,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2066,
"end": 2067,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2066,
"end": 2067,
"ctxt": 0
},
"value": "V",
"optional": false
},
"typeParams": null
}
}
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2088,
"end": 2270,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2098,
"end": 2100,
"ctxt": 0
},
"value": "I4",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2109,
"end": 2110,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2109,
"end": 2110,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2111,
"end": 2270,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2125,
"end": 2236,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2125,
"end": 2127,
"ctxt": 0
},
"value": "a8",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2127,
"end": 2235,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2129,
"end": 2235,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2169,
"end": 2185,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2170,
"end": 2185,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2172,
"end": 2185,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2173,
"end": 2179,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2176,
"end": 2179,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2178,
"end": 2179,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2178,
"end": 2179,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2181,
"end": 2185,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2184,
"end": 2185,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2184,
"end": 2185,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 2187,
"end": 2219,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2188,
"end": 2219,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2190,
"end": 2219,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2191,
"end": 2213,
"ctxt": 0
},
"value": "arg2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2195,
"end": 2213,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 2197,
"end": 2213,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2199,
"end": 2211,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2199,
"end": 2202,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2202,
"end": 2210,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2204,
"end": 2210,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2215,
"end": 2219,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2218,
"end": 2219,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2218,
"end": 2219,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2133,
"end": 2168,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2134,
"end": 2148,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2134,
"end": 2135,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2144,
"end": 2148,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2144,
"end": 2148,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2150,
"end": 2167,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2150,
"end": 2151,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2160,
"end": 2167,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2160,
"end": 2167,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2221,
"end": 2235,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2224,
"end": 2235,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2225,
"end": 2229,
"ctxt": 0
},
"value": "r",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2226,
"end": 2229,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2228,
"end": 2229,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2228,
"end": 2229,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2231,
"end": 2235,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2234,
"end": 2235,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2234,
"end": 2235,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2280,
"end": 2456,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2290,
"end": 2293,
"ctxt": 0
},
"value": "I4B",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2302,
"end": 2303,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2302,
"end": 2303,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2304,
"end": 2456,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2318,
"end": 2363,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2318,
"end": 2321,
"ctxt": 0
},
"value": "a10",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2321,
"end": 2362,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2323,
"end": 2362,
"ctxt": 0
},
"params": [
{
"type": "RestElement",
"span": {
"start": 2347,
"end": 2356,
"ctxt": 0
},
"rest": {
"start": 2347,
"end": 2350,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 2350,
"end": 2351,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": null
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2351,
"end": 2356,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 2353,
"end": 2356,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 2353,
"end": 2354,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2353,
"end": 2354,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2327,
"end": 2346,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2328,
"end": 2345,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2328,
"end": 2329,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2338,
"end": 2345,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2338,
"end": 2345,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2358,
"end": 2362,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2361,
"end": 2362,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2361,
"end": 2362,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2466,
"end": 2668,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2476,
"end": 2479,
"ctxt": 0
},
"value": "I4C",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2488,
"end": 2489,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2488,
"end": 2489,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2490,
"end": 2668,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2504,
"end": 2550,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2504,
"end": 2507,
"ctxt": 0
},
"value": "a11",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2507,
"end": 2549,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2509,
"end": 2549,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2533,
"end": 2537,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2534,
"end": 2537,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2536,
"end": 2537,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2536,
"end": 2537,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 2539,
"end": 2543,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2540,
"end": 2543,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2542,
"end": 2543,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2542,
"end": 2543,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2513,
"end": 2532,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2514,
"end": 2531,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2514,
"end": 2515,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2524,
"end": 2531,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2524,
"end": 2531,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2545,
"end": 2549,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2548,
"end": 2549,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2548,
"end": 2549,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2678,
"end": 2859,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2688,
"end": 2691,
"ctxt": 0
},
"value": "I4E",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2700,
"end": 2701,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2700,
"end": 2701,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2702,
"end": 2859,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2716,
"end": 2790,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2716,
"end": 2719,
"ctxt": 0
},
"value": "a12",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2719,
"end": 2789,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2721,
"end": 2789,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2753,
"end": 2767,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2754,
"end": 2767,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2756,
"end": 2767,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2756,
"end": 2761,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2761,
"end": 2767,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 2762,
"end": 2766,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2762,
"end": 2766,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 2769,
"end": 2783,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2770,
"end": 2783,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2772,
"end": 2783,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2772,
"end": 2777,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2777,
"end": 2783,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 2778,
"end": 2782,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2778,
"end": 2782,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2725,
"end": 2752,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2726,
"end": 2751,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2726,
"end": 2727,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2736,
"end": 2751,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2736,
"end": 2741,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2741,
"end": 2751,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 2742,
"end": 2750,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2742,
"end": 2750,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"typeParams": null
}
]
}
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2785,
"end": 2789,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2788,
"end": 2789,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2788,
"end": 2789,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 2869,
"end": 3009,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2879,
"end": 2881,
"ctxt": 0
},
"value": "I6",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 2890,
"end": 2891,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2890,
"end": 2891,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 2892,
"end": 3009,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 2906,
"end": 2943,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2906,
"end": 2909,
"ctxt": 0
},
"value": "a15",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2909,
"end": 2942,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2911,
"end": 2942,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2919,
"end": 2936,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2920,
"end": 2936,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 2922,
"end": 2936,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2924,
"end": 2929,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2924,
"end": 2925,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2925,
"end": 2928,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2927,
"end": 2928,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2927,
"end": 2928,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2930,
"end": 2934,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2930,
"end": 2931,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2931,
"end": 2934,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2933,
"end": 2934,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2933,
"end": 2934,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2915,
"end": 2918,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2916,
"end": 2917,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2916,
"end": 2917,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2938,
"end": 2942,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2941,
"end": 2942,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2941,
"end": 2942,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3019,
"end": 3197,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3029,
"end": 3031,
"ctxt": 0
},
"value": "I7",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3040,
"end": 3041,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3040,
"end": 3041,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3042,
"end": 3197,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3056,
"end": 3111,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3056,
"end": 3059,
"ctxt": 0
},
"value": "a15",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3059,
"end": 3110,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3061,
"end": 3110,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3082,
"end": 3099,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3083,
"end": 3099,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 3085,
"end": 3099,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 3087,
"end": 3092,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3087,
"end": 3088,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3088,
"end": 3091,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3090,
"end": 3091,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3090,
"end": 3091,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3093,
"end": 3097,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3093,
"end": 3094,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3094,
"end": 3097,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3096,
"end": 3097,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3096,
"end": 3097,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3065,
"end": 3081,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3066,
"end": 3080,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3066,
"end": 3067,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 3076,
"end": 3080,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3076,
"end": 3080,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3101,
"end": 3110,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 3104,
"end": 3110,
"ctxt": 0
},
"kind": "number"
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3207,
"end": 3453,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3217,
"end": 3219,
"ctxt": 0
},
"value": "I8",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3228,
"end": 3229,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3228,
"end": 3229,
"ctxt": 0
},
"value": "A",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3230,
"end": 3453,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3403,
"end": 3443,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3403,
"end": 3406,
"ctxt": 0
},
"value": "a16",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3406,
"end": 3442,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3408,
"end": 3442,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3416,
"end": 3434,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3417,
"end": 3434,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3419,
"end": 3434,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3424,
"end": 3428,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3425,
"end": 3428,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3427,
"end": 3428,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3427,
"end": 3428,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3430,
"end": 3434,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3433,
"end": 3434,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3433,
"end": 3434,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3412,
"end": 3415,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3413,
"end": 3414,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3413,
"end": 3414,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3436,
"end": 3442,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 3439,
"end": 3442,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 3439,
"end": 3440,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3439,
"end": 3440,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 3465,
"end": 4284,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 3472,
"end": 3503,
"ctxt": 0
},
"value": "WithGenericSignaturesInBaseType",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 3504,
"end": 4284,
"ctxt": 0
},
"body": [
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3562,
"end": 3623,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3572,
"end": 3573,
"ctxt": 0
},
"value": "B",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3574,
"end": 3623,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3588,
"end": 3613,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3588,
"end": 3590,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3590,
"end": 3612,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3592,
"end": 3612,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3600,
"end": 3604,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3601,
"end": 3604,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3603,
"end": 3604,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3603,
"end": 3604,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3596,
"end": 3599,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3597,
"end": 3598,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3597,
"end": 3598,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3606,
"end": 3612,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 3609,
"end": 3612,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 3609,
"end": 3610,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3609,
"end": 3610,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3633,
"end": 3719,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3643,
"end": 3645,
"ctxt": 0
},
"value": "I6",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3654,
"end": 3655,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3654,
"end": 3655,
"ctxt": 0
},
"value": "B",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3656,
"end": 3719,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3670,
"end": 3700,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3670,
"end": 3672,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3672,
"end": 3699,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3674,
"end": 3699,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3682,
"end": 3686,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3683,
"end": 3686,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3685,
"end": 3686,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3685,
"end": 3686,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3678,
"end": 3681,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3679,
"end": 3680,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3679,
"end": 3680,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3688,
"end": 3699,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 3691,
"end": 3699,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 3691,
"end": 3697,
"ctxt": 0
},
"kind": "string"
}
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3777,
"end": 3843,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3787,
"end": 3788,
"ctxt": 0
},
"value": "C",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3789,
"end": 3843,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3803,
"end": 3833,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3803,
"end": 3805,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3805,
"end": 3832,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3807,
"end": 3832,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3815,
"end": 3819,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3816,
"end": 3819,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3818,
"end": 3819,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3818,
"end": 3819,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3811,
"end": 3814,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3812,
"end": 3813,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3812,
"end": 3813,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3821,
"end": 3832,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 3824,
"end": 3832,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 3824,
"end": 3830,
"ctxt": 0
},
"kind": "string"
}
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 3853,
"end": 3934,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3863,
"end": 3865,
"ctxt": 0
},
"value": "I7",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 3874,
"end": 3875,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3874,
"end": 3875,
"ctxt": 0
},
"value": "C",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 3876,
"end": 3934,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 3890,
"end": 3915,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3890,
"end": 3892,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3892,
"end": 3914,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3894,
"end": 3914,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3902,
"end": 3906,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3903,
"end": 3906,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3905,
"end": 3906,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3905,
"end": 3906,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3898,
"end": 3901,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3899,
"end": 3900,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3899,
"end": 3900,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3908,
"end": 3914,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 3911,
"end": 3914,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 3911,
"end": 3912,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3911,
"end": 3912,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4009,
"end": 4177,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4019,
"end": 4020,
"ctxt": 0
},
"value": "D",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4021,
"end": 4177,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4035,
"end": 4167,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4035,
"end": 4038,
"ctxt": 0
},
"value": "a14",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4038,
"end": 4166,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 4040,
"end": 4166,
"ctxt": 0
},
"members": [
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 4058,
"end": 4098,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4082,
"end": 4086,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4083,
"end": 4086,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4085,
"end": 4086,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4085,
"end": 4086,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4087,
"end": 4097,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 4089,
"end": 4097,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 4089,
"end": 4095,
"ctxt": 0
},
"kind": "number"
}
}
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4062,
"end": 4081,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4063,
"end": 4080,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4063,
"end": 4064,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 4073,
"end": 4080,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4073,
"end": 4080,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
}
},
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 4115,
"end": 4152,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4136,
"end": 4140,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4137,
"end": 4140,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4139,
"end": 4140,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4139,
"end": 4140,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4141,
"end": 4151,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 4143,
"end": 4151,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 4143,
"end": 4149,
"ctxt": 0
},
"kind": "number"
}
}
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4119,
"end": 4135,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4120,
"end": 4134,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4120,
"end": 4121,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 4130,
"end": 4134,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4130,
"end": 4134,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
}
]
}
}
]
}
},
"typeParams": null
}
]
}
},
{
"type": "TsInterfaceDeclaration",
"span": {
"start": 4187,
"end": 4278,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4197,
"end": 4199,
"ctxt": 0
},
"value": "I8",
"optional": false
},
"declare": false,
"typeParams": null,
"extends": [
{
"type": "TsExpressionWithTypeArguments",
"span": {
"start": 4208,
"end": 4209,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4208,
"end": 4209,
"ctxt": 0
},
"value": "D",
"optional": false
},
"typeArguments": null
}
],
"body": {
"type": "TsInterfaceBody",
"span": {
"start": 4210,
"end": 4278,
"ctxt": 0
},
"body": [
{
"type": "TsPropertySignature",
"span": {
"start": 4224,
"end": 4268,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4224,
"end": 4227,
"ctxt": 0
},
"value": "a14",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4227,
"end": 4267,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 4229,
"end": 4267,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4250,
"end": 4254,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4251,
"end": 4254,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4253,
"end": 4254,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4253,
"end": 4254,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4233,
"end": 4249,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4234,
"end": 4248,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4234,
"end": 4235,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 4244,
"end": 4248,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4244,
"end": 4248,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4256,
"end": 4267,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 4259,
"end": 4267,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 4259,
"end": 4265,
"ctxt": 0
},
"kind": "number"
}
}
},
"isAbstract": false
}
},
"typeParams": null
}
]
}
}
]
}
}
]
}
}
],
"interpreter": null
}