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

6583 lines
214 KiB
JSON

{
"type": "Script",
"span": {
"start": 62,
"end": 1866,
"ctxt": 0
},
"body": [
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 68,
"end": 72,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"declare": false,
"span": {
"start": 62,
"end": 89,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 75,
"end": 87,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 75,
"end": 78,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 78,
"end": 86,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 80,
"end": 86,
"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": 96,
"end": 103,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"declare": false,
"span": {
"start": 90,
"end": 133,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 119,
"end": 131,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 119,
"end": 122,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 122,
"end": 130,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 124,
"end": 130,
"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": 112,
"end": 116,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 140,
"end": 148,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"declare": false,
"span": {
"start": 134,
"end": 181,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 167,
"end": 179,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 167,
"end": 170,
"ctxt": 0
},
"value": "baz",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 170,
"end": 178,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 172,
"end": 178,
"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": 157,
"end": 164,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 188,
"end": 200,
"ctxt": 0
},
"value": "OtherDerived",
"optional": false
},
"declare": false,
"span": {
"start": 182,
"end": 231,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 216,
"end": 229,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 216,
"end": 220,
"ctxt": 0
},
"value": "bing",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 220,
"end": 228,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 222,
"end": 228,
"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": 209,
"end": 213,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "VariableDeclaration",
"span": {
"start": 233,
"end": 261,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 237,
"end": 260,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 237,
"end": 238,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 238,
"end": 260,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 240,
"end": 260,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 248,
"end": 252,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 249,
"end": 252,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 251,
"end": 252,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 251,
"end": 252,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 244,
"end": 247,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 245,
"end": 246,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 245,
"end": 246,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 254,
"end": 260,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 257,
"end": 260,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 257,
"end": 258,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 257,
"end": 258,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 262,
"end": 296,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 266,
"end": 295,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 266,
"end": 268,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 268,
"end": 295,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 270,
"end": 295,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 278,
"end": 282,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 279,
"end": 282,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 281,
"end": 282,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 281,
"end": 282,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 274,
"end": 277,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 275,
"end": 276,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 275,
"end": 276,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 284,
"end": 295,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 287,
"end": 295,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 287,
"end": 293,
"ctxt": 0
},
"kind": "string"
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 297,
"end": 327,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 301,
"end": 326,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 301,
"end": 303,
"ctxt": 0
},
"value": "a3",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 303,
"end": 326,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 305,
"end": 326,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 313,
"end": 317,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 314,
"end": 317,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 316,
"end": 317,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 316,
"end": 317,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"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
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 319,
"end": 326,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 322,
"end": 326,
"ctxt": 0
},
"kind": "void"
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 328,
"end": 369,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 332,
"end": 368,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 332,
"end": 334,
"ctxt": 0
},
"value": "a4",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 334,
"end": 368,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 336,
"end": 368,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 347,
"end": 351,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 348,
"end": 351,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 350,
"end": 351,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 350,
"end": 351,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 353,
"end": 357,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 354,
"end": 357,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 356,
"end": 357,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 356,
"end": 357,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 340,
"end": 346,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 341,
"end": 342,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 341,
"end": 342,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 344,
"end": 345,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 344,
"end": 345,
"ctxt": 0
},
"value": "U",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 359,
"end": 368,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 362,
"end": 368,
"ctxt": 0
},
"kind": "string"
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 370,
"end": 416,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 374,
"end": 415,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 374,
"end": 376,
"ctxt": 0
},
"value": "a5",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 376,
"end": 415,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 378,
"end": 415,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 389,
"end": 409,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 390,
"end": 409,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 392,
"end": 409,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 397,
"end": 403,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 400,
"end": 403,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 402,
"end": 403,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 402,
"end": 403,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 405,
"end": 409,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 408,
"end": 409,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 408,
"end": 409,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 382,
"end": 388,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 383,
"end": 384,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 383,
"end": 384,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 386,
"end": 387,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 386,
"end": 387,
"ctxt": 0
},
"value": "U",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 411,
"end": 415,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 414,
"end": 415,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 414,
"end": 415,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 417,
"end": 479,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 421,
"end": 478,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 421,
"end": 423,
"ctxt": 0
},
"value": "a6",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 423,
"end": 478,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 425,
"end": 478,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 446,
"end": 472,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 447,
"end": 472,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 449,
"end": 472,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 454,
"end": 460,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 457,
"end": 460,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 459,
"end": 460,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 459,
"end": 460,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 462,
"end": 472,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 465,
"end": 472,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 465,
"end": 472,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 429,
"end": 445,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 430,
"end": 444,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 430,
"end": 431,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 440,
"end": 444,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 440,
"end": 444,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 474,
"end": 478,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 477,
"end": 478,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 477,
"end": 478,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 480,
"end": 543,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 484,
"end": 542,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 484,
"end": 487,
"ctxt": 0
},
"value": "a11",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 487,
"end": 542,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 489,
"end": 542,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 497,
"end": 510,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 498,
"end": 510,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 500,
"end": 510,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 502,
"end": 508,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 502,
"end": 505,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 505,
"end": 508,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 507,
"end": 508,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 507,
"end": 508,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
}
},
{
"type": "Identifier",
"span": {
"start": 512,
"end": 533,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 513,
"end": 533,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 515,
"end": 533,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 517,
"end": 524,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 517,
"end": 520,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 520,
"end": 523,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 522,
"end": 523,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 522,
"end": 523,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 525,
"end": 531,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 525,
"end": 528,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 528,
"end": 531,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 530,
"end": 531,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 530,
"end": 531,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 493,
"end": 496,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 494,
"end": 495,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 494,
"end": 495,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 535,
"end": 542,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 538,
"end": 542,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 538,
"end": 542,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 544,
"end": 587,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 548,
"end": 586,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 548,
"end": 551,
"ctxt": 0
},
"value": "a15",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 551,
"end": 586,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 553,
"end": 586,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 561,
"end": 578,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 562,
"end": 578,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 564,
"end": 578,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 566,
"end": 571,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 566,
"end": 567,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 567,
"end": 570,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 569,
"end": 570,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 569,
"end": 570,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 572,
"end": 576,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 572,
"end": 573,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 573,
"end": 576,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 575,
"end": 576,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 575,
"end": 576,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 557,
"end": 560,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 558,
"end": 559,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 558,
"end": 559,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 580,
"end": 586,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 583,
"end": 586,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 583,
"end": 584,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 583,
"end": 584,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 588,
"end": 644,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 592,
"end": 643,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 592,
"end": 595,
"ctxt": 0
},
"value": "a16",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 595,
"end": 643,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 597,
"end": 643,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 618,
"end": 635,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 619,
"end": 635,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 621,
"end": 635,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 623,
"end": 628,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 623,
"end": 624,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 624,
"end": 627,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 626,
"end": 627,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 626,
"end": 627,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 629,
"end": 633,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 629,
"end": 630,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 630,
"end": 633,
"ctxt": 0
},
"typeAnnotation": {
"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
}
},
"typeParams": null
}
]
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 601,
"end": 617,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 602,
"end": 616,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 602,
"end": 603,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 612,
"end": 616,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 612,
"end": 616,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 637,
"end": 643,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 640,
"end": 643,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 640,
"end": 641,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 640,
"end": 641,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 645,
"end": 771,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 649,
"end": 770,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 649,
"end": 652,
"ctxt": 0
},
"value": "a17",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 652,
"end": 770,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 654,
"end": 770,
"ctxt": 0
},
"members": [
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 660,
"end": 709,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 684,
"end": 702,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 685,
"end": 702,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 687,
"end": 702,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 692,
"end": 696,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 693,
"end": 696,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 695,
"end": 696,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 695,
"end": 696,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 698,
"end": 702,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 701,
"end": 702,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 701,
"end": 702,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 703,
"end": 708,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 705,
"end": 708,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 705,
"end": 706,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 705,
"end": 706,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 664,
"end": 683,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 665,
"end": 682,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 665,
"end": 666,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 675,
"end": 682,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 675,
"end": 682,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
}
},
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 714,
"end": 760,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 735,
"end": 753,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 736,
"end": 753,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 738,
"end": 753,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 743,
"end": 747,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 744,
"end": 747,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 746,
"end": 747,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 746,
"end": 747,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 749,
"end": 753,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 752,
"end": 753,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 752,
"end": 753,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 754,
"end": 759,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 756,
"end": 759,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 756,
"end": 757,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 756,
"end": 757,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 718,
"end": 734,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 719,
"end": 733,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 719,
"end": 720,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 729,
"end": 733,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 729,
"end": 733,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
}
]
}
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 772,
"end": 1006,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 776,
"end": 1005,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 776,
"end": 779,
"ctxt": 0
},
"value": "a18",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 779,
"end": 1005,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 781,
"end": 1005,
"ctxt": 0
},
"members": [
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 787,
"end": 892,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 792,
"end": 883,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 793,
"end": 883,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 795,
"end": 883,
"ctxt": 0
},
"members": [
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 805,
"end": 838,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 829,
"end": 833,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 830,
"end": 833,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 832,
"end": 833,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 832,
"end": 833,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 834,
"end": 837,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 836,
"end": 837,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 836,
"end": 837,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 809,
"end": 828,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 810,
"end": 827,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 810,
"end": 811,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 820,
"end": 827,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 820,
"end": 827,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
}
},
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 847,
"end": 877,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 868,
"end": 872,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 869,
"end": 872,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 871,
"end": 872,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 871,
"end": 872,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 873,
"end": 876,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 875,
"end": 876,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 875,
"end": 876,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 851,
"end": 867,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 852,
"end": 866,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 852,
"end": 853,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 862,
"end": 866,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 862,
"end": 866,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
}
]
}
}
]
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 884,
"end": 891,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 886,
"end": 891,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 886,
"end": 889,
"ctxt": 0
},
"kind": "any"
}
}
},
"typeParams": null
},
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 897,
"end": 1003,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 902,
"end": 994,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 903,
"end": 994,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 905,
"end": 994,
"ctxt": 0
},
"members": [
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 915,
"end": 949,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 940,
"end": 944,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 941,
"end": 944,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 943,
"end": 944,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 943,
"end": 944,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 945,
"end": 948,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 947,
"end": 948,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 947,
"end": 948,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 919,
"end": 939,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 920,
"end": 938,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 920,
"end": 921,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 930,
"end": 938,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 930,
"end": 938,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"typeParams": null
},
"default": null
}
]
}
},
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 958,
"end": 988,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 979,
"end": 983,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 980,
"end": 983,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 982,
"end": 983,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 982,
"end": 983,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 984,
"end": 987,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 986,
"end": 987,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 986,
"end": 987,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 962,
"end": 978,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 963,
"end": 977,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 963,
"end": 964,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 973,
"end": 977,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 973,
"end": 977,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
}
]
}
}
]
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 995,
"end": 1002,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 997,
"end": 1002,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 997,
"end": 1000,
"ctxt": 0
},
"kind": "any"
}
}
},
"typeParams": null
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1008,
"end": 1036,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1012,
"end": 1035,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1012,
"end": 1013,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1013,
"end": 1035,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1015,
"end": 1035,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1023,
"end": 1027,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1024,
"end": 1027,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1026,
"end": 1027,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1026,
"end": 1027,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1019,
"end": 1022,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1020,
"end": 1021,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1020,
"end": 1021,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1029,
"end": 1035,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1032,
"end": 1035,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 1032,
"end": 1033,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1032,
"end": 1033,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1038,
"end": 1044,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1038,
"end": 1043,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1038,
"end": 1039,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1042,
"end": 1043,
"ctxt": 0
},
"value": "b",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1051,
"end": 1057,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1051,
"end": 1056,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1051,
"end": 1052,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1055,
"end": 1056,
"ctxt": 0
},
"value": "a",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1064,
"end": 1098,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1068,
"end": 1097,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1068,
"end": 1070,
"ctxt": 0
},
"value": "b2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1070,
"end": 1097,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1072,
"end": 1097,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1080,
"end": 1084,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1081,
"end": 1084,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1083,
"end": 1084,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1083,
"end": 1084,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1076,
"end": 1079,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1077,
"end": 1078,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1077,
"end": 1078,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1086,
"end": 1097,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1089,
"end": 1097,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 1089,
"end": 1095,
"ctxt": 0
},
"kind": "string"
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1100,
"end": 1108,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1100,
"end": 1107,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1100,
"end": 1102,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1105,
"end": 1107,
"ctxt": 0
},
"value": "b2",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1115,
"end": 1123,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1115,
"end": 1122,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1115,
"end": 1117,
"ctxt": 0
},
"value": "b2",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1120,
"end": 1122,
"ctxt": 0
},
"value": "a2",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1130,
"end": 1157,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1134,
"end": 1156,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1134,
"end": 1136,
"ctxt": 0
},
"value": "b3",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1136,
"end": 1156,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1138,
"end": 1156,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1146,
"end": 1150,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1147,
"end": 1150,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1149,
"end": 1150,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1149,
"end": 1150,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1142,
"end": 1145,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1143,
"end": 1144,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1143,
"end": 1144,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1152,
"end": 1156,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1155,
"end": 1156,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1155,
"end": 1156,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1159,
"end": 1167,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1159,
"end": 1166,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1159,
"end": 1161,
"ctxt": 0
},
"value": "a3",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1164,
"end": 1166,
"ctxt": 0
},
"value": "b3",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1174,
"end": 1182,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1174,
"end": 1181,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1174,
"end": 1176,
"ctxt": 0
},
"value": "b3",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1179,
"end": 1181,
"ctxt": 0
},
"value": "a3",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1189,
"end": 1230,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1193,
"end": 1229,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1193,
"end": 1195,
"ctxt": 0
},
"value": "b4",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1195,
"end": 1229,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1197,
"end": 1229,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1208,
"end": 1212,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1209,
"end": 1212,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1211,
"end": 1212,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1211,
"end": 1212,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1214,
"end": 1218,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1215,
"end": 1218,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1217,
"end": 1218,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1217,
"end": 1218,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1201,
"end": 1207,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1202,
"end": 1203,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1202,
"end": 1203,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 1205,
"end": 1206,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1205,
"end": 1206,
"ctxt": 0
},
"value": "U",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1220,
"end": 1229,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1223,
"end": 1229,
"ctxt": 0
},
"kind": "string"
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1232,
"end": 1240,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1232,
"end": 1239,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1232,
"end": 1234,
"ctxt": 0
},
"value": "a4",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1237,
"end": 1239,
"ctxt": 0
},
"value": "b4",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1247,
"end": 1255,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1247,
"end": 1254,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1247,
"end": 1249,
"ctxt": 0
},
"value": "b4",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1252,
"end": 1254,
"ctxt": 0
},
"value": "a4",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1262,
"end": 1308,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1266,
"end": 1307,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1266,
"end": 1268,
"ctxt": 0
},
"value": "b5",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1268,
"end": 1307,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1270,
"end": 1307,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1281,
"end": 1301,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1282,
"end": 1301,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1284,
"end": 1301,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1289,
"end": 1295,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1292,
"end": 1295,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1294,
"end": 1295,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1294,
"end": 1295,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1297,
"end": 1301,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1300,
"end": 1301,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1300,
"end": 1301,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1274,
"end": 1280,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1275,
"end": 1276,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1275,
"end": 1276,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 1278,
"end": 1279,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1278,
"end": 1279,
"ctxt": 0
},
"value": "U",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1303,
"end": 1307,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1306,
"end": 1307,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1306,
"end": 1307,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1310,
"end": 1318,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1310,
"end": 1317,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1310,
"end": 1312,
"ctxt": 0
},
"value": "a5",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1315,
"end": 1317,
"ctxt": 0
},
"value": "b5",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1325,
"end": 1333,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1325,
"end": 1332,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1325,
"end": 1327,
"ctxt": 0
},
"value": "b5",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1330,
"end": 1332,
"ctxt": 0
},
"value": "a5",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1340,
"end": 1415,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1344,
"end": 1414,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1344,
"end": 1346,
"ctxt": 0
},
"value": "b6",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1346,
"end": 1414,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1348,
"end": 1414,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1388,
"end": 1408,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1389,
"end": 1408,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1391,
"end": 1408,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1396,
"end": 1402,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1399,
"end": 1402,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1401,
"end": 1402,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1401,
"end": 1402,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1404,
"end": 1408,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1407,
"end": 1408,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1407,
"end": 1408,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1352,
"end": 1387,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1353,
"end": 1367,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1353,
"end": 1354,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 1363,
"end": 1367,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1363,
"end": 1367,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 1369,
"end": 1386,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1369,
"end": 1370,
"ctxt": 0
},
"value": "U",
"optional": false
},
"in": false,
"out": false,
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 1379,
"end": 1386,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1379,
"end": 1386,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1410,
"end": 1414,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1413,
"end": 1414,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1413,
"end": 1414,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1417,
"end": 1425,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1417,
"end": 1424,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1417,
"end": 1419,
"ctxt": 0
},
"value": "a6",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1422,
"end": 1424,
"ctxt": 0
},
"value": "b6",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1432,
"end": 1440,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1432,
"end": 1439,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1432,
"end": 1434,
"ctxt": 0
},
"value": "b6",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1437,
"end": 1439,
"ctxt": 0
},
"value": "a6",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1447,
"end": 1513,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1451,
"end": 1512,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1451,
"end": 1454,
"ctxt": 0
},
"value": "b11",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1454,
"end": 1512,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1456,
"end": 1512,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1467,
"end": 1480,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1468,
"end": 1480,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1470,
"end": 1480,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1472,
"end": 1478,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1472,
"end": 1475,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1475,
"end": 1478,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1477,
"end": 1478,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1477,
"end": 1478,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
}
},
{
"type": "Identifier",
"span": {
"start": 1482,
"end": 1503,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1483,
"end": 1503,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1485,
"end": 1503,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1487,
"end": 1494,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1487,
"end": 1490,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1490,
"end": 1493,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1492,
"end": 1493,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1492,
"end": 1493,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1495,
"end": 1501,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1495,
"end": 1498,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1498,
"end": 1501,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1500,
"end": 1501,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1500,
"end": 1501,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1460,
"end": 1466,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1461,
"end": 1462,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1461,
"end": 1462,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 1464,
"end": 1465,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1464,
"end": 1465,
"ctxt": 0
},
"value": "U",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1505,
"end": 1512,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1508,
"end": 1512,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1508,
"end": 1512,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1515,
"end": 1525,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1515,
"end": 1524,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1515,
"end": 1518,
"ctxt": 0
},
"value": "a11",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1521,
"end": 1524,
"ctxt": 0
},
"value": "b11",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1532,
"end": 1542,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1532,
"end": 1541,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1532,
"end": 1535,
"ctxt": 0
},
"value": "b11",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1538,
"end": 1541,
"ctxt": 0
},
"value": "a11",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1549,
"end": 1596,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1553,
"end": 1595,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1553,
"end": 1556,
"ctxt": 0
},
"value": "b15",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1556,
"end": 1595,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1558,
"end": 1595,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1569,
"end": 1587,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1570,
"end": 1587,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1572,
"end": 1587,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1574,
"end": 1579,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1574,
"end": 1575,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1575,
"end": 1578,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1577,
"end": 1578,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1577,
"end": 1578,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1580,
"end": 1585,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1580,
"end": 1581,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1581,
"end": 1584,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1583,
"end": 1584,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1583,
"end": 1584,
"ctxt": 0
},
"value": "V",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1562,
"end": 1568,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1563,
"end": 1564,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1563,
"end": 1564,
"ctxt": 0
},
"value": "U",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 1566,
"end": 1567,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1566,
"end": 1567,
"ctxt": 0
},
"value": "V",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1589,
"end": 1595,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1592,
"end": 1595,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 1592,
"end": 1593,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1592,
"end": 1593,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1598,
"end": 1608,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1598,
"end": 1607,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1598,
"end": 1601,
"ctxt": 0
},
"value": "a15",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1604,
"end": 1607,
"ctxt": 0
},
"value": "b15",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1615,
"end": 1625,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1615,
"end": 1624,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1615,
"end": 1618,
"ctxt": 0
},
"value": "b15",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1621,
"end": 1624,
"ctxt": 0
},
"value": "a15",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1632,
"end": 1675,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1636,
"end": 1674,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1636,
"end": 1639,
"ctxt": 0
},
"value": "b16",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1639,
"end": 1674,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1641,
"end": 1674,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1649,
"end": 1666,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1650,
"end": 1666,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1652,
"end": 1666,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1654,
"end": 1659,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1654,
"end": 1655,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1655,
"end": 1658,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1657,
"end": 1658,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1657,
"end": 1658,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1660,
"end": 1664,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1660,
"end": 1661,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1661,
"end": 1664,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1663,
"end": 1664,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1663,
"end": 1664,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1645,
"end": 1648,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1646,
"end": 1647,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1646,
"end": 1647,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1668,
"end": 1674,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1671,
"end": 1674,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 1671,
"end": 1672,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1671,
"end": 1672,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1677,
"end": 1687,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1677,
"end": 1686,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1677,
"end": 1680,
"ctxt": 0
},
"value": "a15",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1683,
"end": 1686,
"ctxt": 0
},
"value": "b16",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1694,
"end": 1704,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1694,
"end": 1703,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1694,
"end": 1697,
"ctxt": 0
},
"value": "b15",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1700,
"end": 1703,
"ctxt": 0
},
"value": "a16",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1711,
"end": 1755,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1715,
"end": 1754,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1715,
"end": 1718,
"ctxt": 0
},
"value": "b17",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1718,
"end": 1754,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1720,
"end": 1754,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1728,
"end": 1746,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1729,
"end": 1746,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1731,
"end": 1746,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1736,
"end": 1740,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1737,
"end": 1740,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1739,
"end": 1740,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1739,
"end": 1740,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1742,
"end": 1746,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1745,
"end": 1746,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1745,
"end": 1746,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1724,
"end": 1727,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1725,
"end": 1726,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1725,
"end": 1726,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1748,
"end": 1754,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1751,
"end": 1754,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 1751,
"end": 1752,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1751,
"end": 1752,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1757,
"end": 1767,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1757,
"end": 1766,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1757,
"end": 1760,
"ctxt": 0
},
"value": "a17",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1763,
"end": 1766,
"ctxt": 0
},
"value": "b17",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1774,
"end": 1784,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1774,
"end": 1783,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1774,
"end": 1777,
"ctxt": 0
},
"value": "b17",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1780,
"end": 1783,
"ctxt": 0
},
"value": "a17",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1791,
"end": 1837,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1795,
"end": 1836,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1795,
"end": 1798,
"ctxt": 0
},
"value": "b18",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1798,
"end": 1836,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1800,
"end": 1836,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1805,
"end": 1826,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1806,
"end": 1826,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1808,
"end": 1826,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1816,
"end": 1820,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1817,
"end": 1820,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1819,
"end": 1820,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1819,
"end": 1820,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1812,
"end": 1815,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1813,
"end": 1814,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1813,
"end": 1814,
"ctxt": 0
},
"value": "T",
"optional": false
},
"in": false,
"out": false,
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1822,
"end": 1826,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1825,
"end": 1826,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1825,
"end": 1826,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1828,
"end": 1836,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1831,
"end": 1836,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 1831,
"end": 1834,
"ctxt": 0
},
"kind": "any"
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1839,
"end": 1849,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1839,
"end": 1848,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1839,
"end": 1842,
"ctxt": 0
},
"value": "a18",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1845,
"end": 1848,
"ctxt": 0
},
"value": "b18",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1856,
"end": 1866,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1856,
"end": 1865,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1856,
"end": 1859,
"ctxt": 0
},
"value": "b18",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1862,
"end": 1865,
"ctxt": 0
},
"value": "a18",
"optional": false
}
}
}
],
"interpreter": null
}