diff --git a/crates/oxc_parser/src/js/statement.rs b/crates/oxc_parser/src/js/statement.rs index 8123209242dcf..40fda84939508 100644 --- a/crates/oxc_parser/src/js/statement.rs +++ b/crates/oxc_parser/src/js/statement.rs @@ -150,7 +150,25 @@ impl<'a> ParserImpl<'a> { { self.parse_using_statement() } - _ if self.is_ts && self.at_start_of_ts_declaration() => { + Kind::Async + | Kind::Interface + | Kind::Type + | Kind::Module + | Kind::Namespace + | Kind::Declare + | Kind::Const + | Kind::Enum + | Kind::Import + | Kind::Private + | Kind::Protected + | Kind::Public + | Kind::Abstract + | Kind::Accessor + | Kind::Static + | Kind::Readonly + | Kind::Global + if self.is_ts && self.at_start_of_ts_declaration() => + { self.parse_ts_declaration_statement(start_span) } _ => self.parse_expression_or_labeled_statement(), diff --git a/crates/oxc_parser/src/ts/statement.rs b/crates/oxc_parser/src/ts/statement.rs index cea2a5b207d67..133108cbaf516 100644 --- a/crates/oxc_parser/src/ts/statement.rs +++ b/crates/oxc_parser/src/ts/statement.rs @@ -506,7 +506,7 @@ impl<'a> ParserImpl<'a> { self.lookahead(Self::at_start_of_ts_declaration_worker) } - /// Check if the parser is at a start of a declaration + /// Check if the parser is at a start of a ts declaration fn at_start_of_ts_declaration_worker(&mut self) -> bool { loop { match self.cur_kind() {