JsModule {
bom_token: missing (optional),
interpreter_token: missing (optional),
directives: JsDirectiveList [],
items: JsModuleItemList [
JsBogusStatement {
items: [
JsDecoratorList [],
CLASS_KW@0..6 "class" [] [Whitespace(" ")],
JsIdentifierBinding {
name_token: IDENT@6..8 "B" [] [Whitespace(" ")],
},
JsBogus {
items: [
IMPLEMENTS_KW@8..19 "implements" [] [Whitespace(" ")],
TsTypeList [
TsNameWithTypeArguments {
name: JsReferenceIdentifier {
value_token: IDENT@19..21 "C" [] [Whitespace(" ")],
},
type_arguments: missing (optional),
},
],
],
},
L_CURLY@21..22 "{" [] [],
JsClassMemberList [],
R_CURLY@22..23 "}" [] [],
],
},
],
eof_token: EOF@23..24 "" [Newline("\n")] [],
}
0: JS_MODULE@0..24
0: (empty)
1: (empty)
2: JS_DIRECTIVE_LIST@0..0
3: JS_MODULE_ITEM_LIST@0..23
0: JS_BOGUS_STATEMENT@0..23
0: JS_DECORATOR_LIST@0..0
1: CLASS_KW@0..6 "class" [] [Whitespace(" ")]
2: JS_IDENTIFIER_BINDING@6..8
0: IDENT@6..8 "B" [] [Whitespace(" ")]
3: JS_BOGUS@8..21
0: IMPLEMENTS_KW@8..19 "implements" [] [Whitespace(" ")]
1: TS_TYPE_LIST@19..21
0: TS_NAME_WITH_TYPE_ARGUMENTS@19..21
0: JS_REFERENCE_IDENTIFIER@19..21
0: IDENT@19..21 "C" [] [Whitespace(" ")]
1: (empty)
4: L_CURLY@21..22 "{" [] []
5: JS_CLASS_MEMBER_LIST@22..22
6: R_CURLY@22..23 "}" [] []
4: EOF@23..24 "" [Newline("\n")] []
--
class_implements.js:1:9 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× classes can only implement interfaces in TypeScript files
> 1 │ class B implements C {}
│ ^^^^^^^^^^^^
2 │
--
class B implements C {}