在 Angular 项目中查找无用的依赖注入
Posted
技术标签:
【中文标题】在 Angular 项目中查找无用的依赖注入【英文标题】:Find useless dependencies injection in Angular project 【发布时间】:2021-12-31 04:59:48 【问题描述】:我尝试使用 Eslint 在我的 Angular/Ionic 组件中查找无用的依赖项注入。
例子:
import BasicDataService from '../../providers/basic-data.service';
@Component(
selector: 'app-login',
templateUrl: './login.page.html',
styleUrls: ['./login.page.scss'],
)
export class LoginPage implements OnInit
constructor(
private bd: BasicDataService,
)
bd这个属性是在构造函数中定义的但是没有用到,Eslint怎么会高亮呢?
到目前为止,我的 .eslintrc.json 是:
"env":
"browser": true,
"es2021": true
,
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended"
],
"parser": "@typescript-eslint/parser",
"parserOptions":
"ecmaVersion": 12,
"sourceType": "module"
,
"plugins": ["@typescript-eslint"],
"rules":
在之前的一个项目中,我使用了规则@typescript-eslint/no-unused-vars-experimental
,但最近似乎是it has been removed。
谢谢!
【问题讨论】:
您可以@typescript-eslint/no-unused-vars
代替@typescript-eslint/no-unused-vars-experimental
,正如您提到的那样,它已被贬低和删除。
感谢您的回答,是的,我尝试了"@typescript-eslint/no-unused-vars": 2
,但 db 周围没有出现任何内容
@typescript-eslint/no-unused-vars 默认设置为启用。所以你可以检查你的编译器 eslint 服务器是否正在运行。您可以为此检查调试控制台(用于 vs 代码)。
是的,Eslint 正在运行,我可以看到 ESLint 在 Sublime Text 和 VS Code 中发现的其他错误,包括其他未使用的变量(比如简单的: const aa = 1; )。当我在终端中执行 Eslint 时,它工作正常,发现了我期望的错误,除了那些未使用的依赖注入。
【参考方案1】:
没有 lint ESLint 规则可以分析 TS 的私有类属性。
TS 本身可以通过其noUnusedLocals
编译器选项执行此操作。但请注意,这也将匹配未使用的变量。
https://www.typescriptlang.org/tsconfig#noUnusedLocals
【讨论】:
谢谢,至少我可以让 Typescript 找到未使用的私有类属性,这很有帮助。 对未使用的私有属性进行 linting 的困难在于它们不是真正的私有属性,并且有一种方法可以使用方括号语法 (myClass['privateProp']
) 在类之外访问它们 - 这这就是为什么最好留给可以对此类案例进行丰富类型分析的 TS!以上是关于在 Angular 项目中查找无用的依赖注入的主要内容,如果未能解决你的问题,请参考以下文章
在依赖注入环境(如 Spring Boot)中创建设计模式是不是无用?