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")] []