是否有用于检测未使用的类属性的 eslint 规则?
Posted
技术标签:
【中文标题】是否有用于检测未使用的类属性的 eslint 规则?【英文标题】:Is there an eslint rule for detecting unused class properties? 【发布时间】:2021-10-25 15:13:44 【问题描述】:我正在处理一个 Angular 项目,但我的 ESLint 设置未检测到私有类变量何时未使用,例如
@Component...
export class ExampleComponent
private exampleProperty: string
上面的私有属性 - exampleProperty
不会使用我当前的 ESLint 设置突出显示。
我的.eslintrc.json
:
"root": true,
"ignorePatterns": ["projects/**/*"],
"overrides": [
"files": ["*.ts"],
"parserOptions":
"project": ["tsconfig.json", "e2e/tsconfig.json"],
"createDefaultProgram": true
,
"env": "browser": true, "jest": true ,
"extends": [
"eslint:recommended",
"plugin:@angular-eslint/recommended",
"plugin:@angular-eslint/template/process-inline-templates",
"plugin:@typescript-eslint/recommended"
],
"rules":
"@angular-eslint/component-selector": [
"error",
"prefix": "app", "style": "kebab-case", "type": "element"
],
"@angular-eslint/no-host-metadata-property": "off",
"@typescript-eslint/ban-ts-comment": "off",
"@typescript-eslint/ban-types": "off",
"@typescript-eslint/explicit-module-boundary-types": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-unused-vars": [
"error",
"argsIgnorePattern": "^_"
],
"no-case-declarations": "off",
"no-console": ["error", "allow": ["warn", "error"] ],
"no-prototype-builtins": "off",
"no-unused-vars": "off"
,
"files": ["*.html"],
"extends": ["plugin:@angular-eslint/template/recommended"],
"rules":
]
我怎样才能让 linter 把它捡起来?
【问题讨论】:
【参考方案1】:您可以通过打开tsconfig.json
中的noUnusedLocals
选项让TypeScript 为您挑选。 (“Locals”显然包括未使用的私有属性,它们毕竟是类的本地属性。)
Here's a playground 与该类的选项打开,这会给出错误:
'exampleProperty' 已声明,但其值从未被读取。(6133)
(我添加了一个构造函数并设置了属性,只是为了使错误不会与未初始化的错误混合/模糊。)
【讨论】:
是的,这会发现错误,但它会使开发人员创建新函数的体验变得更糟,因为编译器会开始失败。这就是为什么我宁愿将其作为 linter 规则的原因。不过感谢您的回答,它帮助我清理了我们已经留下这些不需要的功能的地方的项目 @ViliusGudžiūnas - 是的,如果这只是一个警告而不是错误,就像其他几个选项一样,那就太好了。不过这个好像不是这样的。以上是关于是否有用于检测未使用的类属性的 eslint 规则?的主要内容,如果未能解决你的问题,请参考以下文章