JsModule {
bom_token: missing (optional),
interpreter_token: missing (optional),
directives: JsDirectiveList [],
items: JsModuleItemList [
JsVariableStatement {
declaration: JsVariableDeclaration {
await_token: missing (optional),
kind: LET_KW@0..4 "let" [] [Whitespace(" ")],
declarators: JsVariableDeclaratorList [
JsVariableDeclarator {
id: JsIdentifierBinding {
name_token: IDENT@4..5 "a" [] [],
},
variable_annotation: TsTypeAnnotation {
colon_token: COLON@5..7 ":" [] [Whitespace(" ")],
ty: TsAnyType {
any_token: ANY_KW@7..10 "any" [] [],
},
},
initializer: missing (optional),
},
],
},
semicolon_token: SEMICOLON@10..11 ";" [] [],
},
TsTypeAliasDeclaration {
type_token: TYPE_KW@11..17 "type" [Newline("\n")] [Whitespace(" ")],
binding_identifier: TsIdentifierBinding {
name_token: IDENT@17..18 "B" [] [],
},
type_parameters: TsTypeParameters {
l_angle_token: L_ANGLE@18..19 "<" [] [],
items: TsTypeParameterList [
TsTypeParameter {
modifiers: TsTypeParameterModifierList [],
name: TsTypeParameterName {
ident_token: IDENT@19..20 "A" [] [],
},
constraint: missing (optional),
default: missing (optional),
},
],
r_angle_token: R_ANGLE@20..22 ">" [] [Whitespace(" ")],
},
eq_token: EQ@22..24 "=" [] [Whitespace(" ")],
ty: TsObjectType {
l_curly_token: L_CURLY@24..26 "{" [] [Whitespace(" ")],
members: TsTypeMemberList [
TsPropertySignatureTypeMember {
readonly_token: missing (optional),
name: JsLiteralMemberName {
value: IDENT@26..27 "a" [] [],
},
optional_token: missing (optional),
type_annotation: TsTypeAnnotation {
colon_token: COLON@27..29 ":" [] [Whitespace(" ")],
ty: TsReferenceType {
name: JsReferenceIdentifier {
value_token: IDENT@29..31 "A" [] [Whitespace(" ")],
},
type_arguments: missing (optional),
},
},
separator_token: missing (optional),
},
],
r_curly_token: R_CURLY@31..32 "}" [] [],
},
semicolon_token: SEMICOLON@32..33 ";" [] [],
},
JsExpressionStatement {
expression: JsAssignmentExpression {
left: JsParenthesizedAssignment {
l_paren_token: L_PAREN@33..35 "(" [Newline("\n")] [],
assignment: TsAsAssignment {
assignment: JsIdentifierAssignment {
name_token: IDENT@35..37 "a" [] [Whitespace(" ")],
},
as_token: AS_KW@37..40 "as" [] [Whitespace(" ")],
ty: TsStringType {
string_token: STRING_KW@40..46 "string" [] [],
},
},
r_paren_token: R_PAREN@46..48 ")" [] [Whitespace(" ")],
},
operator_token: EQ@48..50 "=" [] [Whitespace(" ")],
right: JsStringLiteralExpression {
value_token: JS_STRING_LITERAL@50..58 "\"string\"" [] [],
},
},
semicolon_token: SEMICOLON@58..59 ";" [] [],
},
JsExpressionStatement {
expression: JsAssignmentExpression {
left: JsParenthesizedAssignment {
l_paren_token: L_PAREN@59..61 "(" [Newline("\n")] [],
assignment: TsAsAssignment {
assignment: JsParenthesizedAssignment {
l_paren_token: L_PAREN@61..62 "(" [] [],
assignment: TsAsAssignment {
assignment: JsIdentifierAssignment {
name_token: IDENT@62..64 "a" [] [Whitespace(" ")],
},
as_token: AS_KW@64..67 "as" [] [Whitespace(" ")],
ty: TsAnyType {
any_token: ANY_KW@67..70 "any" [] [],
},
},
r_paren_token: R_PAREN@70..72 ")" [] [Whitespace(" ")],
},
as_token: AS_KW@72..75 "as" [] [Whitespace(" ")],
ty: TsStringType {
string_token: STRING_KW@75..81 "string" [] [],
},
},
r_paren_token: R_PAREN@81..83 ")" [] [Whitespace(" ")],
},
operator_token: EQ@83..85 "=" [] [Whitespace(" ")],
right: JsNullLiteralExpression {
value_token: NULL_KW@85..89 "null" [] [],
},
},
semicolon_token: SEMICOLON@89..90 ";" [] [],
},
JsExpressionStatement {
expression: JsParenthesizedExpression {
l_paren_token: L_PAREN@90..92 "(" [Newline("\n")] [],
expression: JsAssignmentExpression {
left: JsObjectAssignmentPattern {
l_curly_token: L_CURLY@92..94 "{" [] [Whitespace(" ")],
properties: JsObjectAssignmentPatternPropertyList [
JsObjectAssignmentPatternProperty {
member: JsLiteralMemberName {
value: IDENT@94..95 "b" [] [],
},
colon_token: COLON@95..97 ":" [] [Whitespace(" ")],
pattern: TsAsAssignment {
assignment: JsIdentifierAssignment {
name_token: IDENT@97..99 "a" [] [Whitespace(" ")],
},
as_token: AS_KW@99..102 "as" [] [Whitespace(" ")],
ty: TsStringType {
string_token: STRING_KW@102..109 "string" [] [Whitespace(" ")],
},
},
init: missing (optional),
},
],
r_curly_token: R_CURLY@109..111 "}" [] [Whitespace(" ")],
},
operator_token: EQ@111..113 "=" [] [Whitespace(" ")],
right: JsObjectExpression {
l_curly_token: L_CURLY@113..115 "{" [] [Whitespace(" ")],
members: JsObjectMemberList [
JsPropertyObjectMember {
name: JsLiteralMemberName {
value: IDENT@115..116 "b" [] [],
},
colon_token: COLON@116..118 ":" [] [Whitespace(" ")],
value: JsStringLiteralExpression {
value_token: JS_STRING_LITERAL@118..125 "\"test\"" [] [Whitespace(" ")],
},
},
],
r_curly_token: R_CURLY@125..126 "}" [] [],
},
},
r_paren_token: R_PAREN@126..127 ")" [] [],
},
semicolon_token: SEMICOLON@127..128 ";" [] [],
},
JsExpressionStatement {
expression: JsParenthesizedExpression {
l_paren_token: L_PAREN@128..130 "(" [Newline("\n")] [],
expression: JsAssignmentExpression {
left: JsArrayAssignmentPattern {
l_brack_token: L_BRACK@130..132 "[" [] [Whitespace(" ")],
elements: JsArrayAssignmentPatternElementList [
JsArrayAssignmentPatternElement {
pattern: TsAsAssignment {
assignment: JsIdentifierAssignment {
name_token: IDENT@132..134 "a" [] [Whitespace(" ")],
},
as_token: AS_KW@134..137 "as" [] [Whitespace(" ")],
ty: TsStringType {
string_token: STRING_KW@137..144 "string" [] [Whitespace(" ")],
},
},
init: missing (optional),
},
],
r_brack_token: R_BRACK@144..146 "]" [] [Whitespace(" ")],
},
operator_token: EQ@146..148 "=" [] [Whitespace(" ")],
right: JsArrayExpression {
l_brack_token: L_BRACK@148..150 "[" [] [Whitespace(" ")],
elements: JsArrayElementList [
JsStringLiteralExpression {
value_token: JS_STRING_LITERAL@150..157 "\"test\"" [] [Whitespace(" ")],
},
],
r_brack_token: R_BRACK@157..158 "]" [] [],
},
},
r_paren_token: R_PAREN@158..159 ")" [] [],
},
semicolon_token: SEMICOLON@159..160 ";" [] [],
},
JsForInStatement {
for_token: FOR_KW@160..165 "for" [Newline("\n")] [Whitespace(" ")],
l_paren_token: L_PAREN@165..166 "(" [] [],
initializer: TsAsAssignment {
assignment: JsIdentifierAssignment {
name_token: IDENT@166..168 "a" [] [Whitespace(" ")],
},
as_token: AS_KW@168..171 "as" [] [Whitespace(" ")],
ty: TsStringType {
string_token: STRING_KW@171..178 "string" [] [Whitespace(" ")],
},
},
in_token: IN_KW@178..181 "in" [] [Whitespace(" ")],
expression: JsArrayExpression {
l_brack_token: L_BRACK@181..182 "[" [] [],
elements: JsArrayElementList [],
r_brack_token: R_BRACK@182..183 "]" [] [],
},
r_paren_token: R_PAREN@183..185 ")" [] [Whitespace(" ")],
body: JsBlockStatement {
l_curly_token: L_CURLY@185..186 "{" [] [],
statements: JsStatementList [],
r_curly_token: R_CURLY@186..187 "}" [] [],
},
},
JsExpressionStatement {
expression: JsAssignmentExpression {
left: JsParenthesizedAssignment {
l_paren_token: L_PAREN@187..189 "(" [Newline("\n")] [],
assignment: TsAsAssignment {
assignment: JsIdentifierAssignment {
name_token: IDENT@189..191 "a" [] [Whitespace(" ")],
},
as_token: AS_KW@191..194 "as" [] [Whitespace(" ")],
ty: TsReferenceType {
name: JsReferenceIdentifier {
value_token: IDENT@194..195 "B" [] [],
},
type_arguments: TsTypeArguments {
l_angle_token: L_ANGLE@195..196 "<" [] [],
ts_type_argument_list: TsTypeArgumentList [
TsStringType {
string_token: STRING_KW@196..202 "string" [] [],
},
],
r_angle_token: R_ANGLE@202..203 ">" [] [],
},
},
},
r_paren_token: R_PAREN@203..205 ")" [] [Whitespace(" ")],
},
operator_token: EQ@205..207 "=" [] [Whitespace(" ")],
right: JsObjectExpression {
l_curly_token: L_CURLY@207..209 "{" [] [Whitespace(" ")],
members: JsObjectMemberList [
JsPropertyObjectMember {
name: JsLiteralMemberName {
value: IDENT@209..210 "a" [] [],
},
colon_token: COLON@210..212 ":" [] [Whitespace(" ")],
value: JsStringLiteralExpression {
value_token: JS_STRING_LITERAL@212..219 "\"test\"" [] [Whitespace(" ")],
},
},
],
r_curly_token: R_CURLY@219..220 "}" [] [],
},
},
semicolon_token: SEMICOLON@220..221 ";" [] [],
},
JsExpressionStatement {
expression: JsAssignmentExpression {
left: JsParenthesizedAssignment {
l_paren_token: L_PAREN@221..223 "(" [Newline("\n")] [],
assignment: TsTypeAssertionAssignment {
l_angle_token: L_ANGLE@223..224 "<" [] [],
ty: TsNumberType {
number_token: NUMBER_KW@224..230 "number" [] [],
},
r_angle_token: R_ANGLE@230..232 ">" [] [Whitespace(" ")],
assignment: JsIdentifierAssignment {
name_token: IDENT@232..233 "a" [] [],
},
},
r_paren_token: R_PAREN@233..235 ")" [] [Whitespace(" ")],
},
operator_token: PLUSEQ@235..238 "+=" [] [Whitespace(" ")],
right: JsNumberLiteralExpression {
value_token: JS_NUMBER_LITERAL@238..239 "1" [] [],
},
},
semicolon_token: missing (optional),
},
],
eof_token: EOF@239..240 "" [Newline("\n")] [],
}
0: JS_MODULE@0..240
0: (empty)
1: (empty)
2: JS_DIRECTIVE_LIST@0..0
3: JS_MODULE_ITEM_LIST@0..239
0: JS_VARIABLE_STATEMENT@0..11
0: JS_VARIABLE_DECLARATION@0..10
0: (empty)
1: LET_KW@0..4 "let" [] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR_LIST@4..10
0: JS_VARIABLE_DECLARATOR@4..10
0: JS_IDENTIFIER_BINDING@4..5
0: IDENT@4..5 "a" [] []
1: TS_TYPE_ANNOTATION@5..10
0: COLON@5..7 ":" [] [Whitespace(" ")]
1: TS_ANY_TYPE@7..10
0: ANY_KW@7..10 "any" [] []
2: (empty)
1: SEMICOLON@10..11 ";" [] []
1: TS_TYPE_ALIAS_DECLARATION@11..33
0: TYPE_KW@11..17 "type" [Newline("\n")] [Whitespace(" ")]
1: TS_IDENTIFIER_BINDING@17..18
0: IDENT@17..18 "B" [] []
2: TS_TYPE_PARAMETERS@18..22
0: L_ANGLE@18..19 "<" [] []
1: TS_TYPE_PARAMETER_LIST@19..20
0: TS_TYPE_PARAMETER@19..20
0: TS_TYPE_PARAMETER_MODIFIER_LIST@19..19
1: TS_TYPE_PARAMETER_NAME@19..20
0: IDENT@19..20 "A" [] []
2: (empty)
3: (empty)
2: R_ANGLE@20..22 ">" [] [Whitespace(" ")]
3: EQ@22..24 "=" [] [Whitespace(" ")]
4: TS_OBJECT_TYPE@24..32
0: L_CURLY@24..26 "{" [] [Whitespace(" ")]
1: TS_TYPE_MEMBER_LIST@26..31
0: TS_PROPERTY_SIGNATURE_TYPE_MEMBER@26..31
0: (empty)
1: JS_LITERAL_MEMBER_NAME@26..27
0: IDENT@26..27 "a" [] []
2: (empty)
3: TS_TYPE_ANNOTATION@27..31
0: COLON@27..29 ":" [] [Whitespace(" ")]
1: TS_REFERENCE_TYPE@29..31
0: JS_REFERENCE_IDENTIFIER@29..31
0: IDENT@29..31 "A" [] [Whitespace(" ")]
1: (empty)
4: (empty)
2: R_CURLY@31..32 "}" [] []
5: SEMICOLON@32..33 ";" [] []
2: JS_EXPRESSION_STATEMENT@33..59
0: JS_ASSIGNMENT_EXPRESSION@33..58
0: JS_PARENTHESIZED_ASSIGNMENT@33..48
0: L_PAREN@33..35 "(" [Newline("\n")] []
1: TS_AS_ASSIGNMENT@35..46
0: JS_IDENTIFIER_ASSIGNMENT@35..37
0: IDENT@35..37 "a" [] [Whitespace(" ")]
1: AS_KW@37..40 "as" [] [Whitespace(" ")]
2: TS_STRING_TYPE@40..46
0: STRING_KW@40..46 "string" [] []
2: R_PAREN@46..48 ")" [] [Whitespace(" ")]
1: EQ@48..50 "=" [] [Whitespace(" ")]
2: JS_STRING_LITERAL_EXPRESSION@50..58
0: JS_STRING_LITERAL@50..58 "\"string\"" [] []
1: SEMICOLON@58..59 ";" [] []
3: JS_EXPRESSION_STATEMENT@59..90
0: JS_ASSIGNMENT_EXPRESSION@59..89
0: JS_PARENTHESIZED_ASSIGNMENT@59..83
0: L_PAREN@59..61 "(" [Newline("\n")] []
1: TS_AS_ASSIGNMENT@61..81
0: JS_PARENTHESIZED_ASSIGNMENT@61..72
0: L_PAREN@61..62 "(" [] []
1: TS_AS_ASSIGNMENT@62..70
0: JS_IDENTIFIER_ASSIGNMENT@62..64
0: IDENT@62..64 "a" [] [Whitespace(" ")]
1: AS_KW@64..67 "as" [] [Whitespace(" ")]
2: TS_ANY_TYPE@67..70
0: ANY_KW@67..70 "any" [] []
2: R_PAREN@70..72 ")" [] [Whitespace(" ")]
1: AS_KW@72..75 "as" [] [Whitespace(" ")]
2: TS_STRING_TYPE@75..81
0: STRING_KW@75..81 "string" [] []
2: R_PAREN@81..83 ")" [] [Whitespace(" ")]
1: EQ@83..85 "=" [] [Whitespace(" ")]
2: JS_NULL_LITERAL_EXPRESSION@85..89
0: NULL_KW@85..89 "null" [] []
1: SEMICOLON@89..90 ";" [] []
4: JS_EXPRESSION_STATEMENT@90..128
0: JS_PARENTHESIZED_EXPRESSION@90..127
0: L_PAREN@90..92 "(" [Newline("\n")] []
1: JS_ASSIGNMENT_EXPRESSION@92..126
0: JS_OBJECT_ASSIGNMENT_PATTERN@92..111
0: L_CURLY@92..94 "{" [] [Whitespace(" ")]
1: JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY_LIST@94..109
0: JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY@94..109
0: JS_LITERAL_MEMBER_NAME@94..95
0: IDENT@94..95 "b" [] []
1: COLON@95..97 ":" [] [Whitespace(" ")]
2: TS_AS_ASSIGNMENT@97..109
0: JS_IDENTIFIER_ASSIGNMENT@97..99
0: IDENT@97..99 "a" [] [Whitespace(" ")]
1: AS_KW@99..102 "as" [] [Whitespace(" ")]
2: TS_STRING_TYPE@102..109
0: STRING_KW@102..109 "string" [] [Whitespace(" ")]
3: (empty)
2: R_CURLY@109..111 "}" [] [Whitespace(" ")]
1: EQ@111..113 "=" [] [Whitespace(" ")]
2: JS_OBJECT_EXPRESSION@113..126
0: L_CURLY@113..115 "{" [] [Whitespace(" ")]
1: JS_OBJECT_MEMBER_LIST@115..125
0: JS_PROPERTY_OBJECT_MEMBER@115..125
0: JS_LITERAL_MEMBER_NAME@115..116
0: IDENT@115..116 "b" [] []
1: COLON@116..118 ":" [] [Whitespace(" ")]
2: JS_STRING_LITERAL_EXPRESSION@118..125
0: JS_STRING_LITERAL@118..125 "\"test\"" [] [Whitespace(" ")]
2: R_CURLY@125..126 "}" [] []
2: R_PAREN@126..127 ")" [] []
1: SEMICOLON@127..128 ";" [] []
5: JS_EXPRESSION_STATEMENT@128..160
0: JS_PARENTHESIZED_EXPRESSION@128..159
0: L_PAREN@128..130 "(" [Newline("\n")] []
1: JS_ASSIGNMENT_EXPRESSION@130..158
0: JS_ARRAY_ASSIGNMENT_PATTERN@130..146
0: L_BRACK@130..132 "[" [] [Whitespace(" ")]
1: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT_LIST@132..144
0: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT@132..144
0: TS_AS_ASSIGNMENT@132..144
0: JS_IDENTIFIER_ASSIGNMENT@132..134
0: IDENT@132..134 "a" [] [Whitespace(" ")]
1: AS_KW@134..137 "as" [] [Whitespace(" ")]
2: TS_STRING_TYPE@137..144
0: STRING_KW@137..144 "string" [] [Whitespace(" ")]
1: (empty)
2: R_BRACK@144..146 "]" [] [Whitespace(" ")]
1: EQ@146..148 "=" [] [Whitespace(" ")]
2: JS_ARRAY_EXPRESSION@148..158
0: L_BRACK@148..150 "[" [] [Whitespace(" ")]
1: JS_ARRAY_ELEMENT_LIST@150..157
0: JS_STRING_LITERAL_EXPRESSION@150..157
0: JS_STRING_LITERAL@150..157 "\"test\"" [] [Whitespace(" ")]
2: R_BRACK@157..158 "]" [] []
2: R_PAREN@158..159 ")" [] []
1: SEMICOLON@159..160 ";" [] []
6: JS_FOR_IN_STATEMENT@160..187
0: FOR_KW@160..165 "for" [Newline("\n")] [Whitespace(" ")]
1: L_PAREN@165..166 "(" [] []
2: TS_AS_ASSIGNMENT@166..178
0: JS_IDENTIFIER_ASSIGNMENT@166..168
0: IDENT@166..168 "a" [] [Whitespace(" ")]
1: AS_KW@168..171 "as" [] [Whitespace(" ")]
2: TS_STRING_TYPE@171..178
0: STRING_KW@171..178 "string" [] [Whitespace(" ")]
3: IN_KW@178..181 "in" [] [Whitespace(" ")]
4: JS_ARRAY_EXPRESSION@181..183
0: L_BRACK@181..182 "[" [] []
1: JS_ARRAY_ELEMENT_LIST@182..182
2: R_BRACK@182..183 "]" [] []
5: R_PAREN@183..185 ")" [] [Whitespace(" ")]
6: JS_BLOCK_STATEMENT@185..187
0: L_CURLY@185..186 "{" [] []
1: JS_STATEMENT_LIST@186..186
2: R_CURLY@186..187 "}" [] []
7: JS_EXPRESSION_STATEMENT@187..221
0: JS_ASSIGNMENT_EXPRESSION@187..220
0: JS_PARENTHESIZED_ASSIGNMENT@187..205
0: L_PAREN@187..189 "(" [Newline("\n")] []
1: TS_AS_ASSIGNMENT@189..203
0: JS_IDENTIFIER_ASSIGNMENT@189..191
0: IDENT@189..191 "a" [] [Whitespace(" ")]
1: AS_KW@191..194 "as" [] [Whitespace(" ")]
2: TS_REFERENCE_TYPE@194..203
0: JS_REFERENCE_IDENTIFIER@194..195
0: IDENT@194..195 "B" [] []
1: TS_TYPE_ARGUMENTS@195..203
0: L_ANGLE@195..196 "<" [] []
1: TS_TYPE_ARGUMENT_LIST@196..202
0: TS_STRING_TYPE@196..202
0: STRING_KW@196..202 "string" [] []
2: R_ANGLE@202..203 ">" [] []
2: R_PAREN@203..205 ")" [] [Whitespace(" ")]
1: EQ@205..207 "=" [] [Whitespace(" ")]
2: JS_OBJECT_EXPRESSION@207..220
0: L_CURLY@207..209 "{" [] [Whitespace(" ")]
1: JS_OBJECT_MEMBER_LIST@209..219
0: JS_PROPERTY_OBJECT_MEMBER@209..219
0: JS_LITERAL_MEMBER_NAME@209..210
0: IDENT@209..210 "a" [] []
1: COLON@210..212 ":" [] [Whitespace(" ")]
2: JS_STRING_LITERAL_EXPRESSION@212..219
0: JS_STRING_LITERAL@212..219 "\"test\"" [] [Whitespace(" ")]
2: R_CURLY@219..220 "}" [] []
1: SEMICOLON@220..221 ";" [] []
8: JS_EXPRESSION_STATEMENT@221..239
0: JS_ASSIGNMENT_EXPRESSION@221..239
0: JS_PARENTHESIZED_ASSIGNMENT@221..235
0: L_PAREN@221..223 "(" [Newline("\n")] []
1: TS_TYPE_ASSERTION_ASSIGNMENT@223..233
0: L_ANGLE@223..224 "<" [] []
1: TS_NUMBER_TYPE@224..230
0: NUMBER_KW@224..230 "number" [] []
2: R_ANGLE@230..232 ">" [] [Whitespace(" ")]
3: JS_IDENTIFIER_ASSIGNMENT@232..233
0: IDENT@232..233 "a" [] []
2: R_PAREN@233..235 ")" [] [Whitespace(" ")]
1: PLUSEQ@235..238 "+=" [] [Whitespace(" ")]
2: JS_NUMBER_LITERAL_EXPRESSION@238..239
0: JS_NUMBER_LITERAL@238..239 "1" [] []
1: (empty)
4: EOF@239..240 "" [Newline("\n")] []