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..16 "a" [] [], }, body: missing (required), }, }, JsEmptyStatement { semicolon_token: SEMICOLON@16..33 ";" [] [Whitespace(" "), Comments("// missing body")], }, TsDeclareStatement { declare_token: DECLARE_KW@33..42 "declare" [Newline("\n")] [Whitespace(" ")], declaration: TsExternalModuleDeclaration { module_token: MODULE_KW@42..49 "module" [] [Whitespace(" ")], source: JsModuleSource { value_token: JS_STRING_LITERAL@49..53 "\"a\"" [] [Whitespace(" ")], }, body: missing (optional), }, }, TsDeclareStatement { declare_token: DECLARE_KW@53..61 "declare" [] [Whitespace(" ")], declaration: TsExternalModuleDeclaration { module_token: MODULE_KW@61..68 "module" [] [Whitespace(" ")], source: JsModuleSource { value_token: JS_STRING_LITERAL@68..71 "\"b\"" [] [], }, body: TsEmptyExternalModuleDeclarationBody { semicolon_token: SEMICOLON@71..88 ";" [] [Whitespace(" "), Comments("// missing semi")], }, }, }, ], eof_token: EOF@88..89 "" [Newline("\n")] [], } 0: JS_MODULE@0..89 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..88 0: TS_DECLARE_STATEMENT@0..16 0: DECLARE_KW@0..8 "declare" [] [Whitespace(" ")] 1: TS_MODULE_DECLARATION@8..16 0: MODULE_KW@8..15 "module" [] [Whitespace(" ")] 1: TS_IDENTIFIER_BINDING@15..16 0: IDENT@15..16 "a" [] [] 2: (empty) 1: JS_EMPTY_STATEMENT@16..33 0: SEMICOLON@16..33 ";" [] [Whitespace(" "), Comments("// missing body")] 2: TS_DECLARE_STATEMENT@33..53 0: DECLARE_KW@33..42 "declare" [Newline("\n")] [Whitespace(" ")] 1: TS_EXTERNAL_MODULE_DECLARATION@42..53 0: MODULE_KW@42..49 "module" [] [Whitespace(" ")] 1: JS_MODULE_SOURCE@49..53 0: JS_STRING_LITERAL@49..53 "\"a\"" [] [Whitespace(" ")] 2: (empty) 3: TS_DECLARE_STATEMENT@53..88 0: DECLARE_KW@53..61 "declare" [] [Whitespace(" ")] 1: TS_EXTERNAL_MODULE_DECLARATION@61..88 0: MODULE_KW@61..68 "module" [] [Whitespace(" ")] 1: JS_MODULE_SOURCE@68..71 0: JS_STRING_LITERAL@68..71 "\"b\"" [] [] 2: TS_EMPTY_EXTERNAL_MODULE_DECLARATION_BODY@71..88 0: SEMICOLON@71..88 ";" [] [Whitespace(" "), Comments("// missing semi")] 4: EOF@88..89 "" [Newline("\n")] [] -- ts_module_err.ts:1:17 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected `{` but instead found `;` > 1 │ declare module a; // missing body │ ^ 2 │ declare module "a" declare module "b"; // missing semi 3 │ i Remove ; -- ts_module_err.ts:2:20 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected a semicolon or an implicit semicolon after a statement, but found none 1 │ declare module a; // missing body > 2 │ declare module "a" declare module "b"; // missing semi │ ^^^^^^^ 3 │ i An explicit or implicit semicolon is expected here... 1 │ declare module a; // missing body > 2 │ declare module "a" declare module "b"; // missing semi │ ^^^^^^^ 3 │ i ...Which is required to end this statement 1 │ declare module a; // missing body > 2 │ declare module "a" declare module "b"; // missing semi │ ^^^^^^^^^^^^^^^^^^^^^^^^^^ 3 │ -- declare module a; // missing body declare module "a" declare module "b"; // missing semi