diff --git a/packages/eslint-plugin/src/rules/no-unused-vars.ts b/packages/eslint-plugin/src/rules/no-unused-vars.ts index 8753452dd09..5a93a962bed 100644 --- a/packages/eslint-plugin/src/rules/no-unused-vars.ts +++ b/packages/eslint-plugin/src/rules/no-unused-vars.ts @@ -26,7 +26,7 @@ export default util.createRule({ }, }, defaultOptions: [{}], - create(context) { + create(context, [options]) { const rules = baseRule.create(context); const filename = context.getFilename(); const MODULE_DECL_CACHE = new Map(); @@ -196,7 +196,14 @@ export default util.createRule({ } return false; }); + const varIgnorePattern = + typeof options === 'object' && options.varsIgnorePattern != null + ? new RegExp(options.varsIgnorePattern, 'u') + : null; if (isOnlySelfReferenced) { + if (varIgnorePattern?.test(variable.name)) { + return; + } context.report({ node: variable.identifiers[0], messageId: 'unusedVar',