JsModule {
bom_token: missing (optional),
interpreter_token: missing (optional),
directives: JsDirectiveList [],
items: JsModuleItemList [
TsDeclareStatement {
declare_token: DECLARE_KW@0..8 "declare" [] [Whitespace(" ")],
declaration: TsModuleDeclaration {
module_or_namespace: MODULE_KW@8..15 "module" [] [Whitespace(" ")],
name: TsIdentifierBinding {
name_token: IDENT@15..17 "a" [] [Whitespace(" ")],
},
body: TsModuleBlock {
l_curly_token: L_CURLY@17..18 "{" [] [],
items: JsModuleItemList [
TsDeclareFunctionDeclaration {
async_token: missing (optional),
function_token: FUNCTION_KW@18..30 "function" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")],
id: JsIdentifierBinding {
name_token: IDENT@30..34 "test" [] [],
},
type_parameters: missing (optional),
parameters: JsParameters {
l_paren_token: L_PAREN@34..35 "(" [] [],
items: JsParameterList [],
r_paren_token: R_PAREN@35..36 ")" [] [],
},
return_type_annotation: TsReturnTypeAnnotation {
colon_token: COLON@36..38 ":" [] [Whitespace(" ")],
ty: TsStringType {
string_token: STRING_KW@38..44 "string" [] [],
},
},
semicolon_token: SEMICOLON@44..45 ";" [] [],
},
],
r_curly_token: R_CURLY@45..47 "}" [Newline("\n")] [],
},
},
},
],
eof_token: EOF@47..48 "" [Newline("\n")] [],
}
0: JS_MODULE@0..48
0: (empty)
1: (empty)
2: JS_DIRECTIVE_LIST@0..0
3: JS_MODULE_ITEM_LIST@0..47
0: TS_DECLARE_STATEMENT@0..47
0: DECLARE_KW@0..8 "declare" [] [Whitespace(" ")]
1: TS_MODULE_DECLARATION@8..47
0: MODULE_KW@8..15 "module" [] [Whitespace(" ")]
1: TS_IDENTIFIER_BINDING@15..17
0: IDENT@15..17 "a" [] [Whitespace(" ")]
2: TS_MODULE_BLOCK@17..47
0: L_CURLY@17..18 "{" [] []
1: JS_MODULE_ITEM_LIST@18..45
0: TS_DECLARE_FUNCTION_DECLARATION@18..45
0: (empty)
1: FUNCTION_KW@18..30 "function" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")]
2: JS_IDENTIFIER_BINDING@30..34
0: IDENT@30..34 "test" [] []
3: (empty)
4: JS_PARAMETERS@34..36
0: L_PAREN@34..35 "(" [] []
1: JS_PARAMETER_LIST@35..35
2: R_PAREN@35..36 ")" [] []
5: TS_RETURN_TYPE_ANNOTATION@36..44
0: COLON@36..38 ":" [] [Whitespace(" ")]
1: TS_STRING_TYPE@38..44
0: STRING_KW@38..44 "string" [] []
6: SEMICOLON@44..45 ";" [] []
2: R_CURLY@45..47 "}" [Newline("\n")] []
4: EOF@47..48 "" [Newline("\n")] []