diff --git a/packages/eslint-plugin/src/rules/prefer-readonly.ts b/packages/eslint-plugin/src/rules/prefer-readonly.ts index ea4ff0e1bc4c..faf8db39a55c 100644 --- a/packages/eslint-plugin/src/rules/prefer-readonly.ts +++ b/packages/eslint-plugin/src/rules/prefer-readonly.ts @@ -299,7 +299,10 @@ class ClassScope { tsutils.isModifierFlagSet(node, ts.ModifierFlags.Private) || node.name.kind === ts.SyntaxKind.PrivateIdentifier ) || - tsutils.isModifierFlagSet(node, ts.ModifierFlags.Readonly) || + tsutils.isModifierFlagSet( + node, + ts.ModifierFlags.Accessor | ts.ModifierFlags.Readonly, + ) || ts.isComputedPropertyName(node.name) ) { return; diff --git a/packages/eslint-plugin/tests/rules/prefer-readonly.test.ts b/packages/eslint-plugin/tests/rules/prefer-readonly.test.ts index 39262c6fbb4e..3b1c25e75f11 100644 --- a/packages/eslint-plugin/tests/rules/prefer-readonly.test.ts +++ b/packages/eslint-plugin/tests/rules/prefer-readonly.test.ts @@ -717,6 +717,26 @@ class Foo { } } `, + ` + class TestStaticPrivateAccessor { + private static accessor staticAcc = 1; + } + `, + ` + class TestStaticPrivateFieldAccessor { + static accessor #staticAcc = 1; + } + `, + ` + class TestPrivateAccessor { + private accessor acc = 3; + } + `, + ` + class TestPrivateFieldAccessor { + accessor #acc = 3; + } + `, ], invalid: [ {