如何从 React Typescript 的整个项目中删除未使用的导入/声明?

IT技术 reactjs typescript visual-studio-code eslint
2021-05-16 13:32:25

我正在尝试删除未使用的导入和声明,如在这个 SO 线程中回答Angular我正在尝试使用eslint-plugin-react实现目标,但没有找到任何选项来使用单个命令从整个项目中删除未使用的导入和声明。

这是我的 .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 扩展来做同样的事情?

3个回答

使用unused-imports插件和unused-imports/no-unused-imports-ts规则, eslint --fix将删除imports。

这是一个示例 repo,它--fix删除了未使用的imports。

https://github.com/moshfeu/eslint-ts-unused-imports

旧答案

eslint有一个内置的修复选项。

eslint ... --fix

如果rulescontains no-unused-vars,eslint 将通过删除它们(以及其他自动修复来“修复”未使用的导入

TL; 博士

使用unused-imports/no-unused-imports代替no-unused-vars, 作为规则名称。


如果您使用的是 ESLint 版本,eslint-plugin-unused-imports,您可能需要将规则名称更改为unused-imports/no-unused-imports而不是毯子no-unused-vars

{
    "rules": {
        "unused-imports/no-unused-imports": "error"
    }
}

详细使用请参考作者的GitHub

对我来说,no-unused-var没有自动修复程序(它只会提到错误/警告的数量,但是当我切换到 时unused-imports/no-unused-imports,所有问题都会自动修复。

您还可以在 VSCode 中使用快捷方式,如果需要快速完成并且无需额外工作:

Option + Shift + O 适用于 Mac

Alt + Shift + O 适用于 Windows