JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ TsInterfaceDeclaration { interface_token: INTERFACE_KW@0..10 "interface" [] [Whitespace(" ")], id: TsIdentifierBinding { name_token: IDENT@10..12 "A" [] [Whitespace(" ")], }, type_parameters: missing (optional), extends_clause: missing (optional), l_curly_token: L_CURLY@12..13 "{" [] [], members: TsTypeMemberList [], r_curly_token: R_CURLY@13..14 "}" [] [], }, TsInterfaceDeclaration { interface_token: INTERFACE_KW@14..25 "interface" [Newline("\n")] [Whitespace(" ")], id: TsIdentifierBinding { name_token: IDENT@25..27 "B" [] [Whitespace(" ")], }, type_parameters: missing (optional), extends_clause: TsExtendsClause { extends_token: EXTENDS_KW@27..35 "extends" [] [Whitespace(" ")], types: TsTypeList [ TsNameWithTypeArguments { name: JsReferenceIdentifier { value_token: IDENT@35..36 "A" [] [], }, type_arguments: missing (optional), }, COMMA@36..38 "," [] [Whitespace(" ")], missing element, ], }, l_curly_token: L_CURLY@38..39 "{" [] [], members: TsTypeMemberList [], r_curly_token: R_CURLY@39..40 "}" [] [], }, ], eof_token: EOF@40..41 "" [Newline("\n")] [], } 0: JS_MODULE@0..41 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..40 0: TS_INTERFACE_DECLARATION@0..14 0: INTERFACE_KW@0..10 "interface" [] [Whitespace(" ")] 1: TS_IDENTIFIER_BINDING@10..12 0: IDENT@10..12 "A" [] [Whitespace(" ")] 2: (empty) 3: (empty) 4: L_CURLY@12..13 "{" [] [] 5: TS_TYPE_MEMBER_LIST@13..13 6: R_CURLY@13..14 "}" [] [] 1: TS_INTERFACE_DECLARATION@14..40 0: INTERFACE_KW@14..25 "interface" [Newline("\n")] [Whitespace(" ")] 1: TS_IDENTIFIER_BINDING@25..27 0: IDENT@25..27 "B" [] [Whitespace(" ")] 2: (empty) 3: TS_EXTENDS_CLAUSE@27..38 0: EXTENDS_KW@27..35 "extends" [] [Whitespace(" ")] 1: TS_TYPE_LIST@35..38 0: TS_NAME_WITH_TYPE_ARGUMENTS@35..36 0: JS_REFERENCE_IDENTIFIER@35..36 0: IDENT@35..36 "A" [] [] 1: (empty) 1: COMMA@36..38 "," [] [Whitespace(" ")] 2: (empty) 4: L_CURLY@38..39 "{" [] [] 5: TS_TYPE_MEMBER_LIST@39..39 6: R_CURLY@39..40 "}" [] [] 4: EOF@40..41 "" [Newline("\n")] [] -- ts_extends_trailing_comma.ts:2:22 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Trailing comma not allowed. 1 │ interface A {} > 2 │ interface B extends A, {} │ ^ 3 │ -- interface A {} interface B extends A, {}