如何配置@typescript-eslint/no-unused-vars忽略类与注入相关代码?
配置@typescript-eslint/no-unused-vars规则忽略指定场景
可以通过调整规则的配置项来实现忽略你提到的两类代码,以下是具体配置方案:
1. 忽略默认导出的类的未使用提示
如果ESLint误报默认导出类的类名未使用(比如export default class MyClass {}中的MyClass),可通过varsIgnorePattern匹配类名规则,或启用ignoreExports忽略所有导出内容的未使用提示(按需选择):
module.exports = { // 其他配置项... rules: { '@typescript-eslint/no-unused-vars': [ 'error', { // 匹配首字母大写的类名,适配默认导出类的命名习惯 varsIgnorePattern: '^[A-Z]', // 可选:开启后忽略所有导出的变量/类/函数的未使用提示 // ignoreExports: true } ] } };
2. 忽略装饰器导入的未使用提示
对于导入后用作类装饰器的变量(比如import { injection } from 'any_package'; @injection() class MyClass中的injection),ESLint有时会误报未使用,可通过varsIgnorePattern指定目标装饰器名称,或用通用正则匹配装饰器命名:
module.exports = { // 其他配置项... rules: { '@typescript-eslint/no-unused-vars': [ 'error', { // 忽略特定装饰器变量 varsIgnorePattern: '^injection$', // 可选:匹配所有首字母大写的装饰器变量 // varsIgnorePattern: '^[A-Z]' } ] } };
3. 两类场景的组合配置
如果需要同时处理两种情况,可合并配置项:
module.exports = { // 其他配置项... rules: { '@typescript-eslint/no-unused-vars': [ 'error', { // 同时匹配默认导出类名和指定装饰器 varsIgnorePattern: '^([A-Z]|injection)$', // 可选:开启后进一步避免默认导出类的误报 // ignoreExports: true } ] } };
注意:正则表达式可根据你的实际代码命名习惯调整,确保只忽略目标场景,避免误判其他未使用的变量。
内容的提问来源于stack exchange,提问作者Alexei Delezhov
相关产品推荐
相关产品推荐

