构造函数参数的 no-unused-vars 漏报

Sam*_*son 5 typescript eslint angular

我在构造函数中有一个未使用的变量,但除了 tsc 之外似乎没有注意到。如果我运行 tsc ,它会告诉我有一个未使用的变量,但似乎我无法做任何事情来使 eslint 识别未使用的变量。

我已经尝试了所有常见的插件和推荐:

"plugin:@angular-eslint/template/process-inline-templates",
"plugin:@typescript-eslint/recommended",
"plugin:import/recommended",
"plugin:import/typescript",
"eslint:recommended"
Run Code Online (Sandbox Code Playgroud)

我的示例组件出现错误如下:

import { Component } from '@angular/core';

import { ApiService } from '../services/api.service';

@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
})
export class HomeComponent {
  constructor(private apiService: ApiService) {}
}
Run Code Online (Sandbox Code Playgroud)

apiService 是在这种情况下未使用的服务,tsc 告诉我:

属性“staffScheduleSessionService2”已声明,但其值从未读取。ts(6138)

jar*_*smk 0

在网上进行了一些搜索,碰巧发现了这篇描述我的发现的帖子。

事实证明,对于未使用的构造函数参数或私有成员,还没有等效的东西(TS 规则 6133 和 6138)。

如果您处于项目的早期阶段,您可以在 TS 配置中启用“noUnusedLocals”和“noUnusedParameters”规则,这将使您的代码从一开始就保持干净。不幸的是,对于后续的项目来说,这可能会出现问题,因为它将阻止项目正确编译,并且需要解决错误。

编译器选项和 ESLint 规则之间脱节的原因似乎是实现起来不太直观,而且自动修复程序变得相当复杂。