JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsBogusStatement { items: [ JsDecoratorList [], EXPORT_KW@0..7 "export" [] [Whitespace(" ")], JsBogus { items: [ DECLARE_KW@7..15 "declare" [] [Whitespace(" ")], JsBogusStatement { items: [ JsDecorator { at_token: AT@15..16 "@" [] [], expression: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@16..26 "decorator" [] [Whitespace(" ")], }, }, }, ], }, JsClassDeclaration { decorators: JsDecoratorList [], abstract_token: missing (optional), class_token: CLASS_KW@26..32 "class" [] [Whitespace(" ")], id: JsIdentifierBinding { name_token: IDENT@32..34 "D" [] [Whitespace(" ")], }, type_parameters: missing (optional), extends_clause: missing (optional), implements_clause: missing (optional), l_curly_token: L_CURLY@34..35 "{" [] [], members: JsClassMemberList [], r_curly_token: R_CURLY@35..36 "}" [] [], }, ], }, ], }, JsBogusStatement { items: [ JsDecoratorList [], EXPORT_KW@36..44 "export" [Newline("\n")] [Whitespace(" ")], JsBogus { items: [ DECLARE_KW@44..52 "declare" [] [Whitespace(" ")], JsBogusStatement { items: [ JsDecorator { at_token: AT@52..53 "@" [] [], expression: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@53..63 "decorator" [] [Whitespace(" ")], }, }, }, ], }, JsClassDeclaration { decorators: JsDecoratorList [], abstract_token: ABSTRACT_KW@63..72 "abstract" [] [Whitespace(" ")], class_token: CLASS_KW@72..78 "class" [] [Whitespace(" ")], id: JsIdentifierBinding { name_token: IDENT@78..80 "D" [] [Whitespace(" ")], }, type_parameters: missing (optional), extends_clause: missing (optional), implements_clause: missing (optional), l_curly_token: L_CURLY@80..81 "{" [] [], members: JsClassMemberList [], r_curly_token: R_CURLY@81..82 "}" [] [], }, ], }, ], }, ], eof_token: EOF@82..83 "" [Newline("\n")] [], } 0: JS_MODULE@0..83 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..82 0: JS_BOGUS_STATEMENT@0..36 0: JS_DECORATOR_LIST@0..0 1: EXPORT_KW@0..7 "export" [] [Whitespace(" ")] 2: JS_BOGUS@7..36 0: DECLARE_KW@7..15 "declare" [] [Whitespace(" ")] 1: JS_BOGUS_STATEMENT@15..26 0: JS_DECORATOR@15..26 0: AT@15..16 "@" [] [] 1: JS_IDENTIFIER_EXPRESSION@16..26 0: JS_REFERENCE_IDENTIFIER@16..26 0: IDENT@16..26 "decorator" [] [Whitespace(" ")] 2: JS_CLASS_DECLARATION@26..36 0: JS_DECORATOR_LIST@26..26 1: (empty) 2: CLASS_KW@26..32 "class" [] [Whitespace(" ")] 3: JS_IDENTIFIER_BINDING@32..34 0: IDENT@32..34 "D" [] [Whitespace(" ")] 4: (empty) 5: (empty) 6: (empty) 7: L_CURLY@34..35 "{" [] [] 8: JS_CLASS_MEMBER_LIST@35..35 9: R_CURLY@35..36 "}" [] [] 1: JS_BOGUS_STATEMENT@36..82 0: JS_DECORATOR_LIST@36..36 1: EXPORT_KW@36..44 "export" [Newline("\n")] [Whitespace(" ")] 2: JS_BOGUS@44..82 0: DECLARE_KW@44..52 "declare" [] [Whitespace(" ")] 1: JS_BOGUS_STATEMENT@52..63 0: JS_DECORATOR@52..63 0: AT@52..53 "@" [] [] 1: JS_IDENTIFIER_EXPRESSION@53..63 0: JS_REFERENCE_IDENTIFIER@53..63 0: IDENT@53..63 "decorator" [] [Whitespace(" ")] 2: JS_CLASS_DECLARATION@63..82 0: JS_DECORATOR_LIST@63..63 1: ABSTRACT_KW@63..72 "abstract" [] [Whitespace(" ")] 2: CLASS_KW@72..78 "class" [] [Whitespace(" ")] 3: JS_IDENTIFIER_BINDING@78..80 0: IDENT@78..80 "D" [] [Whitespace(" ")] 4: (empty) 5: (empty) 6: (empty) 7: L_CURLY@80..81 "{" [] [] 8: JS_CLASS_MEMBER_LIST@81..81 9: R_CURLY@81..82 "}" [] [] 4: EOF@82..83 "" [Newline("\n")] [] -- ts_export_declare.ts:1:16 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Decorators are not valid here. > 1 │ export declare @decorator class D {} │ ^^^^^^^^^^ 2 │ export declare @decorator abstract class D {} 3 │ i Decorators are only valid on class declarations, class expressions, and class methods. -- ts_export_declare.ts:2:16 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Decorators are not valid here. 1 │ export declare @decorator class D {} > 2 │ export declare @decorator abstract class D {} │ ^^^^^^^^^^ 3 │ i Decorators are only valid on class declarations, class expressions, and class methods. -- export declare @decorator class D {} export declare @decorator abstract class D {}