diff --git a/packages/eslint-plugin/src/rules/explicit-member-accessibility.ts b/packages/eslint-plugin/src/rules/explicit-member-accessibility.ts index a1d61d56ded..e92c54f7873 100644 --- a/packages/eslint-plugin/src/rules/explicit-member-accessibility.ts +++ b/packages/eslint-plugin/src/rules/explicit-member-accessibility.ts @@ -18,6 +18,7 @@ interface Config { properties?: AccessibilityLevel; parameterProperties?: AccessibilityLevel; }; + exceptMethods?: string[]; } type Options = [Config]; @@ -57,8 +58,15 @@ export default util.createRule({ properties: accessibilityLevel, parameterProperties: accessibilityLevel, }, + additionalProperties: false, }, + exceptMethods: { + type: 'array', + items: { + type: 'string', + }, + }, }, additionalProperties: false, }, @@ -74,7 +82,7 @@ export default util.createRule({ const methodCheck = overrides.methods || baseCheck; const propCheck = overrides.properties || baseCheck; const paramPropCheck = overrides.parameterProperties || baseCheck; - + const exceptMethods = option.exceptMethods || []; /** * Generates the report for rule violations */ @@ -116,14 +124,16 @@ export default util.createRule({ nodeType = `${methodDefinition.kind} property accessor`; break; } - if (check === 'off') { - return; - } const methodName = util.getNameFromClassMember( methodDefinition, sourceCode, ); + + if (check === 'off' || exceptMethods.includes(methodName)) { + return; + } + if ( check === 'no-public' && methodDefinition.accessibility === 'public' diff --git a/packages/eslint-plugin/tests/rules/explicit-member-accessibility.test.ts b/packages/eslint-plugin/tests/rules/explicit-member-accessibility.test.ts index 051cfb30642..1e20a5b2136 100644 --- a/packages/eslint-plugin/tests/rules/explicit-member-accessibility.test.ts +++ b/packages/eslint-plugin/tests/rules/explicit-member-accessibility.test.ts @@ -258,6 +258,21 @@ class Test { }, ], }, + { + filename: 'test.ts', + code: ` +class Test { + getX () { + return this.x + } +} + `, + options: [ + { + exceptMethods: ['getX'], + }, + ], + }, ], invalid: [ {