我正在尝试删除未使用的导入和声明,如this SO thread for Angular中所回答的。我试图使用eslint-plugin-react来实现这个目标,但是没有找到任何选项来使用一个命令从整个项目中删除未使用的导入和daclarations。
这里是我的.eslintrc.json
{
"env": {
"browser": true,
"es2021": true
},
"extends": [
"eslint:recommended",
"plugin:react/recommended",
"plugin:@typescript-eslint/recommended"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"ecmaVersion": 12
},
"plugins": [
"react",
"@typescript-eslint",
"unused-imports"
],
"rules": {
"indent": [
"warn",
"tab"
],
"linebreak-style": [
"warn",
"windows"
],
"quotes": [
"warn",
"double"
],
"semi": [
"warn",
"always"
],
"@typescript-eslint/no-unused-vars": "on",
"unused-imports/no-unused-imports-ts": "on"
}
}
或者有没有一种方法可以在VS Code中使用ESLint或Typescript Hero扩展来做同样的事情?
4条答案
按热度按时间2w2cym1i1#
使用
unused-imports
插件和unused-imports/no-unused-imports-ts
规则,eslint --fix
将删除import
。下面是一个例子,
--fix
删除了未使用的import
s。https://github.com/moshfeu/eslint-ts-unused-imports
旧答案
如果
rules
包含no-unused-vars
,eslint将通过删除它们(沿着其他auto fixes)来“修复”未使用的导入。2ul0zpep2#
如果需要快速完成,您也可以在VSCode中使用快捷方式,而无需额外的努力:
Option + Shift + O
for MacAlt + Shift + O
for Windowscyvaqqii3#
TL;DR
使用
unused-imports/no-unused-imports
代替no-unused-vars
作为规则名称。如果您使用的是ESLint版本eslint-plugin-unused-imports,则可能需要将规则名称更改为
unused-imports/no-unused-imports
,而不是blanketno-unused-vars
。参考作者的GitHub了解详细用法。
对我来说,
no-unused-var
没有自动修复程序(它只会提到错误/警告的数量,但当我切换到unused-imports/no-unused-imports
时,所有的问题都被自动修复了。oiopk7p54#
将此添加到VS Code
settings.json
:每次你保存一个文件,它会自动删除未使用的导入。这是一个很好的方法,为未来的编辑,但不会帮助现有的未使用的进口,除非你去这些文件直接。
解决方案最初由Damir Drempetić发布在这里:https://dev.to/bornfightcompany/easily-sort-imports-and-remove-unused-declarations-on-each-save-in-vs-code-35k1