JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsClassDeclaration { decorators: JsDecoratorList [], abstract_token: missing (optional), class_token: CLASS_KW@0..6 "class" [] [Whitespace(" ")], id: JsIdentifierBinding { name_token: IDENT@6..11 "Test" [] [Whitespace(" ")], }, type_parameters: missing (optional), extends_clause: missing (optional), implements_clause: missing (optional), l_curly_token: L_CURLY@11..12 "{" [] [], members: JsClassMemberList [ TsConstructorSignatureClassMember { modifiers: JsConstructorModifierList [], name: JsLiteralMemberName { value: IDENT@12..29 "constructor" [Newline("\n"), Whitespace(" ")] [], }, parameters: JsConstructorParameters { l_paren_token: L_PAREN@29..30 "(" [] [], parameters: JsConstructorParameterList [], r_paren_token: R_PAREN@30..31 ")" [] [], }, semicolon_token: SEMICOLON@31..32 ";" [] [], }, TsConstructorSignatureClassMember { modifiers: JsConstructorModifierList [], name: JsLiteralMemberName { value: IDENT@32..49 "constructor" [Newline("\n"), Whitespace(" ")] [], }, parameters: JsConstructorParameters { l_paren_token: L_PAREN@49..50 "(" [] [], parameters: JsConstructorParameterList [ JsFormalParameter { decorators: JsDecoratorList [], binding: JsIdentifierBinding { name_token: IDENT@50..51 "a" [] [], }, question_mark_token: missing (optional), type_annotation: TsTypeAnnotation { colon_token: COLON@51..53 ":" [] [Whitespace(" ")], ty: TsReferenceType { name: JsReferenceIdentifier { value_token: IDENT@53..59 "String" [] [], }, type_arguments: missing (optional), }, }, initializer: missing (optional), }, ], r_paren_token: R_PAREN@59..67 ")" [] [Whitespace(" "), Comments("// ASI")], }, semicolon_token: missing (optional), }, JsConstructorClassMember { modifiers: JsConstructorModifierList [], name: JsLiteralMemberName { value: IDENT@67..84 "constructor" [Newline("\n"), Whitespace(" ")] [], }, parameters: JsConstructorParameters { l_paren_token: L_PAREN@84..85 "(" [] [], parameters: JsConstructorParameterList [ JsFormalParameter { decorators: JsDecoratorList [], binding: JsIdentifierBinding { name_token: IDENT@85..86 "a" [] [], }, question_mark_token: QUESTION@86..87 "?" [] [], type_annotation: TsTypeAnnotation { colon_token: COLON@87..89 ":" [] [Whitespace(" ")], ty: TsReferenceType { name: JsReferenceIdentifier { value_token: IDENT@89..95 "String" [] [], }, type_arguments: missing (optional), }, }, initializer: missing (optional), }, ], r_paren_token: R_PAREN@95..97 ")" [] [Whitespace(" ")], }, body: JsFunctionBody { l_curly_token: L_CURLY@97..98 "{" [] [], directives: JsDirectiveList [], statements: JsStatementList [], r_curly_token: R_CURLY@98..99 "}" [] [], }, }, TsMethodSignatureClassMember { modifiers: TsMethodSignatureModifierList [], async_token: ASYNC_KW@99..111 "async" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], name: JsLiteralMemberName { value: IDENT@111..117 "method" [] [], }, question_mark_token: missing (optional), type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@117..118 "(" [] [], items: JsParameterList [], r_paren_token: R_PAREN@118..119 ")" [] [], }, return_type_annotation: TsReturnTypeAnnotation { colon_token: COLON@119..121 ":" [] [Whitespace(" ")], ty: TsReferenceType { name: JsReferenceIdentifier { value_token: IDENT@121..128 "Promise" [] [], }, type_arguments: TsTypeArguments { l_angle_token: L_ANGLE@128..129 "<" [] [], ts_type_argument_list: TsTypeArgumentList [ TsReferenceType { name: JsReferenceIdentifier { value_token: IDENT@129..135 "String" [] [], }, type_arguments: missing (optional), }, ], r_angle_token: R_ANGLE@135..136 ">" [] [], }, }, }, semicolon_token: SEMICOLON@136..137 ";" [] [], }, TsMethodSignatureClassMember { modifiers: TsMethodSignatureModifierList [], async_token: missing (optional), name: JsLiteralMemberName { value: IDENT@137..149 "method" [Newline("\n"), Whitespace(" ")] [], }, question_mark_token: missing (optional), type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@149..150 "(" [] [], items: JsParameterList [ JsFormalParameter { decorators: JsDecoratorList [], binding: JsIdentifierBinding { name_token: IDENT@150..151 "a" [] [], }, question_mark_token: missing (optional), type_annotation: TsTypeAnnotation { colon_token: COLON@151..153 ":" [] [Whitespace(" ")], ty: TsReferenceType { name: JsReferenceIdentifier { value_token: IDENT@153..159 "String" [] [], }, type_arguments: missing (optional), }, }, initializer: missing (optional), }, ], r_paren_token: R_PAREN@159..160 ")" [] [], }, return_type_annotation: TsReturnTypeAnnotation { colon_token: COLON@160..162 ":" [] [Whitespace(" ")], ty: TsReferenceType { name: JsReferenceIdentifier { value_token: IDENT@162..169 "Promise" [] [], }, type_arguments: TsTypeArguments { l_angle_token: L_ANGLE@169..170 "<" [] [], ts_type_argument_list: TsTypeArgumentList [ TsReferenceType { name: JsReferenceIdentifier { value_token: IDENT@170..176 "String" [] [], }, type_arguments: missing (optional), }, ], r_angle_token: R_ANGLE@176..184 ">" [] [Whitespace(" "), Comments("// ASI")], }, }, }, semicolon_token: missing (optional), }, JsMethodClassMember { modifiers: JsMethodModifierList [], async_token: ASYNC_KW@184..196 "async" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], star_token: missing (optional), name: JsLiteralMemberName { value: IDENT@196..202 "method" [] [], }, question_mark_token: missing (optional), type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@202..203 "(" [] [], items: JsParameterList [ JsFormalParameter { decorators: JsDecoratorList [], binding: JsIdentifierBinding { name_token: IDENT@203..204 "a" [] [], }, question_mark_token: QUESTION@204..205 "?" [] [], type_annotation: TsTypeAnnotation { colon_token: COLON@205..207 ":" [] [Whitespace(" ")], ty: TsReferenceType { name: JsReferenceIdentifier { value_token: IDENT@207..213 "String" [] [], }, type_arguments: missing (optional), }, }, initializer: missing (optional), }, ], r_paren_token: R_PAREN@213..214 ")" [] [], }, return_type_annotation: TsReturnTypeAnnotation { colon_token: COLON@214..216 ":" [] [Whitespace(" ")], ty: TsReferenceType { name: JsReferenceIdentifier { value_token: IDENT@216..223 "Promise" [] [], }, type_arguments: TsTypeArguments { l_angle_token: L_ANGLE@223..224 "<" [] [], ts_type_argument_list: TsTypeArgumentList [ TsReferenceType { name: JsReferenceIdentifier { value_token: IDENT@224..230 "String" [] [], }, type_arguments: missing (optional), }, ], r_angle_token: R_ANGLE@230..232 ">" [] [Whitespace(" ")], }, }, }, body: JsFunctionBody { l_curly_token: L_CURLY@232..234 "{" [] [Whitespace(" ")], directives: JsDirectiveList [], statements: JsStatementList [ JsReturnStatement { return_token: RETURN_KW@234..241 "return" [] [Whitespace(" ")], argument: JsStringLiteralExpression { value_token: JS_STRING_LITERAL@241..248 "\"test\"" [] [Whitespace(" ")], }, semicolon_token: missing (optional), }, ], r_curly_token: R_CURLY@248..249 "}" [] [], }, }, ], r_curly_token: R_CURLY@249..251 "}" [Newline("\n")] [], }, ], eof_token: EOF@251..252 "" [Newline("\n")] [], } 0: JS_MODULE@0..252 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..251 0: JS_CLASS_DECLARATION@0..251 0: JS_DECORATOR_LIST@0..0 1: (empty) 2: CLASS_KW@0..6 "class" [] [Whitespace(" ")] 3: JS_IDENTIFIER_BINDING@6..11 0: IDENT@6..11 "Test" [] [Whitespace(" ")] 4: (empty) 5: (empty) 6: (empty) 7: L_CURLY@11..12 "{" [] [] 8: JS_CLASS_MEMBER_LIST@12..249 0: TS_CONSTRUCTOR_SIGNATURE_CLASS_MEMBER@12..32 0: JS_CONSTRUCTOR_MODIFIER_LIST@12..12 1: JS_LITERAL_MEMBER_NAME@12..29 0: IDENT@12..29 "constructor" [Newline("\n"), Whitespace(" ")] [] 2: JS_CONSTRUCTOR_PARAMETERS@29..31 0: L_PAREN@29..30 "(" [] [] 1: JS_CONSTRUCTOR_PARAMETER_LIST@30..30 2: R_PAREN@30..31 ")" [] [] 3: SEMICOLON@31..32 ";" [] [] 1: TS_CONSTRUCTOR_SIGNATURE_CLASS_MEMBER@32..67 0: JS_CONSTRUCTOR_MODIFIER_LIST@32..32 1: JS_LITERAL_MEMBER_NAME@32..49 0: IDENT@32..49 "constructor" [Newline("\n"), Whitespace(" ")] [] 2: JS_CONSTRUCTOR_PARAMETERS@49..67 0: L_PAREN@49..50 "(" [] [] 1: JS_CONSTRUCTOR_PARAMETER_LIST@50..59 0: JS_FORMAL_PARAMETER@50..59 0: JS_DECORATOR_LIST@50..50 1: JS_IDENTIFIER_BINDING@50..51 0: IDENT@50..51 "a" [] [] 2: (empty) 3: TS_TYPE_ANNOTATION@51..59 0: COLON@51..53 ":" [] [Whitespace(" ")] 1: TS_REFERENCE_TYPE@53..59 0: JS_REFERENCE_IDENTIFIER@53..59 0: IDENT@53..59 "String" [] [] 1: (empty) 4: (empty) 2: R_PAREN@59..67 ")" [] [Whitespace(" "), Comments("// ASI")] 3: (empty) 2: JS_CONSTRUCTOR_CLASS_MEMBER@67..99 0: JS_CONSTRUCTOR_MODIFIER_LIST@67..67 1: JS_LITERAL_MEMBER_NAME@67..84 0: IDENT@67..84 "constructor" [Newline("\n"), Whitespace(" ")] [] 2: JS_CONSTRUCTOR_PARAMETERS@84..97 0: L_PAREN@84..85 "(" [] [] 1: JS_CONSTRUCTOR_PARAMETER_LIST@85..95 0: JS_FORMAL_PARAMETER@85..95 0: JS_DECORATOR_LIST@85..85 1: JS_IDENTIFIER_BINDING@85..86 0: IDENT@85..86 "a" [] [] 2: QUESTION@86..87 "?" [] [] 3: TS_TYPE_ANNOTATION@87..95 0: COLON@87..89 ":" [] [Whitespace(" ")] 1: TS_REFERENCE_TYPE@89..95 0: JS_REFERENCE_IDENTIFIER@89..95 0: IDENT@89..95 "String" [] [] 1: (empty) 4: (empty) 2: R_PAREN@95..97 ")" [] [Whitespace(" ")] 3: JS_FUNCTION_BODY@97..99 0: L_CURLY@97..98 "{" [] [] 1: JS_DIRECTIVE_LIST@98..98 2: JS_STATEMENT_LIST@98..98 3: R_CURLY@98..99 "}" [] [] 3: TS_METHOD_SIGNATURE_CLASS_MEMBER@99..137 0: TS_METHOD_SIGNATURE_MODIFIER_LIST@99..99 1: ASYNC_KW@99..111 "async" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 2: JS_LITERAL_MEMBER_NAME@111..117 0: IDENT@111..117 "method" [] [] 3: (empty) 4: (empty) 5: JS_PARAMETERS@117..119 0: L_PAREN@117..118 "(" [] [] 1: JS_PARAMETER_LIST@118..118 2: R_PAREN@118..119 ")" [] [] 6: TS_RETURN_TYPE_ANNOTATION@119..136 0: COLON@119..121 ":" [] [Whitespace(" ")] 1: TS_REFERENCE_TYPE@121..136 0: JS_REFERENCE_IDENTIFIER@121..128 0: IDENT@121..128 "Promise" [] [] 1: TS_TYPE_ARGUMENTS@128..136 0: L_ANGLE@128..129 "<" [] [] 1: TS_TYPE_ARGUMENT_LIST@129..135 0: TS_REFERENCE_TYPE@129..135 0: JS_REFERENCE_IDENTIFIER@129..135 0: IDENT@129..135 "String" [] [] 1: (empty) 2: R_ANGLE@135..136 ">" [] [] 7: SEMICOLON@136..137 ";" [] [] 4: TS_METHOD_SIGNATURE_CLASS_MEMBER@137..184 0: TS_METHOD_SIGNATURE_MODIFIER_LIST@137..137 1: (empty) 2: JS_LITERAL_MEMBER_NAME@137..149 0: IDENT@137..149 "method" [Newline("\n"), Whitespace(" ")] [] 3: (empty) 4: (empty) 5: JS_PARAMETERS@149..160 0: L_PAREN@149..150 "(" [] [] 1: JS_PARAMETER_LIST@150..159 0: JS_FORMAL_PARAMETER@150..159 0: JS_DECORATOR_LIST@150..150 1: JS_IDENTIFIER_BINDING@150..151 0: IDENT@150..151 "a" [] [] 2: (empty) 3: TS_TYPE_ANNOTATION@151..159 0: COLON@151..153 ":" [] [Whitespace(" ")] 1: TS_REFERENCE_TYPE@153..159 0: JS_REFERENCE_IDENTIFIER@153..159 0: IDENT@153..159 "String" [] [] 1: (empty) 4: (empty) 2: R_PAREN@159..160 ")" [] [] 6: TS_RETURN_TYPE_ANNOTATION@160..184 0: COLON@160..162 ":" [] [Whitespace(" ")] 1: TS_REFERENCE_TYPE@162..184 0: JS_REFERENCE_IDENTIFIER@162..169 0: IDENT@162..169 "Promise" [] [] 1: TS_TYPE_ARGUMENTS@169..184 0: L_ANGLE@169..170 "<" [] [] 1: TS_TYPE_ARGUMENT_LIST@170..176 0: TS_REFERENCE_TYPE@170..176 0: JS_REFERENCE_IDENTIFIER@170..176 0: IDENT@170..176 "String" [] [] 1: (empty) 2: R_ANGLE@176..184 ">" [] [Whitespace(" "), Comments("// ASI")] 7: (empty) 5: JS_METHOD_CLASS_MEMBER@184..249 0: JS_METHOD_MODIFIER_LIST@184..184 1: ASYNC_KW@184..196 "async" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 2: (empty) 3: JS_LITERAL_MEMBER_NAME@196..202 0: IDENT@196..202 "method" [] [] 4: (empty) 5: (empty) 6: JS_PARAMETERS@202..214 0: L_PAREN@202..203 "(" [] [] 1: JS_PARAMETER_LIST@203..213 0: JS_FORMAL_PARAMETER@203..213 0: JS_DECORATOR_LIST@203..203 1: JS_IDENTIFIER_BINDING@203..204 0: IDENT@203..204 "a" [] [] 2: QUESTION@204..205 "?" [] [] 3: TS_TYPE_ANNOTATION@205..213 0: COLON@205..207 ":" [] [Whitespace(" ")] 1: TS_REFERENCE_TYPE@207..213 0: JS_REFERENCE_IDENTIFIER@207..213 0: IDENT@207..213 "String" [] [] 1: (empty) 4: (empty) 2: R_PAREN@213..214 ")" [] [] 7: TS_RETURN_TYPE_ANNOTATION@214..232 0: COLON@214..216 ":" [] [Whitespace(" ")] 1: TS_REFERENCE_TYPE@216..232 0: JS_REFERENCE_IDENTIFIER@216..223 0: IDENT@216..223 "Promise" [] [] 1: TS_TYPE_ARGUMENTS@223..232 0: L_ANGLE@223..224 "<" [] [] 1: TS_TYPE_ARGUMENT_LIST@224..230 0: TS_REFERENCE_TYPE@224..230 0: JS_REFERENCE_IDENTIFIER@224..230 0: IDENT@224..230 "String" [] [] 1: (empty) 2: R_ANGLE@230..232 ">" [] [Whitespace(" ")] 8: JS_FUNCTION_BODY@232..249 0: L_CURLY@232..234 "{" [] [Whitespace(" ")] 1: JS_DIRECTIVE_LIST@234..234 2: JS_STATEMENT_LIST@234..248 0: JS_RETURN_STATEMENT@234..248 0: RETURN_KW@234..241 "return" [] [Whitespace(" ")] 1: JS_STRING_LITERAL_EXPRESSION@241..248 0: JS_STRING_LITERAL@241..248 "\"test\"" [] [Whitespace(" ")] 2: (empty) 3: R_CURLY@248..249 "}" [] [] 9: R_CURLY@249..251 "}" [Newline("\n")] [] 4: EOF@251..252 "" [Newline("\n")] []