{
"type": "Program",
"statements": [
{
"type": "VariableDeclaration",
"declarations": [
{
"type": "VariableDeclarator",
"id": {
"type": "Identifier",
"name": "a",
"loc": {
"start": {
"line": 17,
"column": 5,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 17,
"column": 6,
"program": "test-ts-as-expression.ts"
}
}
},
"init": {
"type": "TSAsExpression",
"expression": {
"type": "StringLiteral",
"value": "x",
"loc": {
"start": {
"line": 17,
"column": 9,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 17,
"column": 12,
"program": "test-ts-as-expression.ts"
}
}
},
"typeAnnotation": {
"type": "TSUnionType",
"types": [
{
"type": "TSLiteralType",
"literal": {
"type": "StringLiteral",
"value": "x",
"loc": {
"start": {
"line": 17,
"column": 16,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 17,
"column": 19,
"program": "test-ts-as-expression.ts"
}
}
},
"loc": {
"start": {
"line": 17,
"column": 16,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 17,
"column": 19,
"program": "test-ts-as-expression.ts"
}
}
},
{
"type": "TSLiteralType",
"literal": {
"type": "StringLiteral",
"value": "y",
"loc": {
"start": {
"line": 17,
"column": 22,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 17,
"column": 25,
"program": "test-ts-as-expression.ts"
}
}
},
"loc": {
"start": {
"line": 17,
"column": 22,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 17,
"column": 25,
"program": "test-ts-as-expression.ts"
}
}
}
],
"loc": {
"start": {
"line": 17,
"column": 16,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 17,
"column": 25,
"program": "test-ts-as-expression.ts"
}
}
},
"loc": {
"start": {
"line": 17,
"column": 9,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 17,
"column": 26,
"program": "test-ts-as-expression.ts"
}
}
},
"loc": {
"start": {
"line": 17,
"column": 5,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 17,
"column": 26,
"program": "test-ts-as-expression.ts"
}
}
}
],
"kind": "var",
"loc": {
"start": {
"line": 17,
"column": 1,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 17,
"column": 26,
"program": "test-ts-as-expression.ts"
}
}
},
{
"type": "VariableDeclaration",
"declarations": [
{
"type": "VariableDeclarator",
"id": {
"type": "Identifier",
"name": "b",
"loc": {
"start": {
"line": 18,
"column": 5,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 18,
"column": 6,
"program": "test-ts-as-expression.ts"
}
}
},
"init": {
"type": "TSAsExpression",
"expression": {
"type": "TSAsExpression",
"expression": {
"type": "TSAsExpression",
"expression": {
"type": "NullLiteral",
"value": null,
"loc": {
"start": {
"line": 18,
"column": 9,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 18,
"column": 13,
"program": "test-ts-as-expression.ts"
}
}
},
"typeAnnotation": {
"type": "TSAnyKeyword",
"loc": {
"start": {
"line": 18,
"column": 17,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 18,
"column": 20,
"program": "test-ts-as-expression.ts"
}
}
},
"loc": {
"start": {
"line": 18,
"column": 9,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 18,
"column": 23,
"program": "test-ts-as-expression.ts"
}
}
},
"typeAnnotation": {
"type": "TSUnionType",
"types": [
{
"type": "TSStringKeyword",
"loc": {
"start": {
"line": 18,
"column": 24,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 18,
"column": 30,
"program": "test-ts-as-expression.ts"
}
}
},
{
"type": "TSUndefinedKeyword",
"loc": {
"start": {
"line": 18,
"column": 33,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 18,
"column": 42,
"program": "test-ts-as-expression.ts"
}
}
}
],
"loc": {
"start": {
"line": 18,
"column": 24,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 18,
"column": 42,
"program": "test-ts-as-expression.ts"
}
}
},
"loc": {
"start": {
"line": 18,
"column": 9,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 18,
"column": 45,
"program": "test-ts-as-expression.ts"
}
}
},
"typeAnnotation": {
"type": "TSNeverKeyword",
"loc": {
"start": {
"line": 18,
"column": 46,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 18,
"column": 51,
"program": "test-ts-as-expression.ts"
}
}
},
"loc": {
"start": {
"line": 18,
"column": 9,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 18,
"column": 52,
"program": "test-ts-as-expression.ts"
}
}
},
"loc": {
"start": {
"line": 18,
"column": 5,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 18,
"column": 52,
"program": "test-ts-as-expression.ts"
}
}
}
],
"kind": "var",
"loc": {
"start": {
"line": 18,
"column": 1,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 18,
"column": 52,
"program": "test-ts-as-expression.ts"
}
}
},
{
"type": "VariableDeclaration",
"declarations": [
{
"type": "VariableDeclarator",
"id": {
"type": "Identifier",
"name": "c",
"loc": {
"start": {
"line": 19,
"column": 5,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 19,
"column": 6,
"program": "test-ts-as-expression.ts"
}
}
},
"init": {
"type": "TSAsExpression",
"expression": {
"type": "NumberLiteral",
"value": 1,
"loc": {
"start": {
"line": 19,
"column": 9,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 19,
"column": 10,
"program": "test-ts-as-expression.ts"
}
}
},
"typeAnnotation": {
"type": "TSTypeReference",
"typeName": {
"type": "Identifier",
"name": "const",
"loc": {
"start": {
"line": 19,
"column": 14,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 19,
"column": 19,
"program": "test-ts-as-expression.ts"
}
}
},
"loc": {
"start": {
"line": 19,
"column": 14,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 19,
"column": 19,
"program": "test-ts-as-expression.ts"
}
}
},
"loc": {
"start": {
"line": 19,
"column": 9,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 19,
"column": 20,
"program": "test-ts-as-expression.ts"
}
}
},
"loc": {
"start": {
"line": 19,
"column": 5,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 19,
"column": 20,
"program": "test-ts-as-expression.ts"
}
}
}
],
"kind": "var",
"loc": {
"start": {
"line": 19,
"column": 1,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 19,
"column": 20,
"program": "test-ts-as-expression.ts"
}
}
}
],
"loc": {
"start": {
"line": 1,
"column": 1,
"program": "test-ts-as-expression.ts"
},
"end": {
"line": 20,
"column": 1,
"program": "test-ts-as-expression.ts"
}
}
}