diff --git a/packages/eslint-plugin/src/rules/member-delimiter-style.ts b/packages/eslint-plugin/src/rules/member-delimiter-style.ts index e35b6459de8..79b04db1cb8 100644 --- a/packages/eslint-plugin/src/rules/member-delimiter-style.ts +++ b/packages/eslint-plugin/src/rules/member-delimiter-style.ts @@ -68,8 +68,8 @@ const definition = { additionalProperties: false, }; -const isLastTokenEndOfLine = (token: string, line: string): boolean => { - const positionInLine = line.indexOf(token); +const isLastTokenEndOfLine = (token: LastTokenType, line: string): boolean => { + const positionInLine = token.loc.start.column; return positionInLine === line.length - 1; }; @@ -85,7 +85,7 @@ const makeFixFunction = ({ // if removing is the action but last token is not the end of the line if ( optsNone && - !isLastTokenEndOfLine(lastToken.value, lastTokenLine) && + !isLastTokenEndOfLine(lastToken, lastTokenLine) && !isSingleLine ) { return null; diff --git a/packages/eslint-plugin/tests/rules/member-delimiter-style.test.ts b/packages/eslint-plugin/tests/rules/member-delimiter-style.test.ts index fa75383df8e..1350fafec43 100644 --- a/packages/eslint-plugin/tests/rules/member-delimiter-style.test.ts +++ b/packages/eslint-plugin/tests/rules/member-delimiter-style.test.ts @@ -3548,5 +3548,43 @@ type Foo = {a: { }, ], }, + { + code: ` +type Foo = { + a: { + b: true; + }; c: false; +} + `, + output: ` +type Foo = { + a: { + b: true + }; c: false +} + `, + options: [ + { + multiline: { delimiter: 'none' }, + }, + ], + errors: [ + { + messageId: 'unexpectedSemi', + line: 4, + column: 13, + }, + { + messageId: 'unexpectedSemi', + line: 5, + column: 5, + }, + { + messageId: 'unexpectedSemi', + line: 5, + column: 15, + }, + ], + }, ], });