@typescript-eslint/no-unused-vars无法正确校验 enum 声明,应该如何解决?

image.png

TypeScript 项目中,@typescript-eslint/no-unused-vars 无法正确校验 enmu 声明,应该如何解决?

eslint.js 文件内容

module.exports = {
  extends: [
    'plugin:prettier/recommended',
    "eslint:recommended",
    "plugin:@typescript-eslint/eslint-recommended",
  ],
  plugins: [
    'prettier',
    'react-hooks',
    'react',
    '@typescript-eslint',
    'import'
  ],
  env: {
    browser: true,
    es6: true,
    node: true,
    jest: true,
  },
  "globals": {
    "$SYS": "true",
  },
  rules: {
    "no-console":"off",
    "no-unused-vars" : "off" ,
    "@typescript-eslint/no-unused-vars" : "error",
    "import/no-unresolved": "error",
    'import/no-extraneous-dependencies': 0,
    'import/prefer-default-export': 0,
    'no-use-before-define': 'off',
    'no-param-reassign': 'error',
    'no-plusplus': 1,
    'react/no-find-dom-node': 1,
    'semi':'error',
    'react-hooks/rules-of-hooks': 'error',
    'react-hooks/exhaustive-deps': 'warn',
    'react/prop-types': 2,
    'jsx-a11y/alt-text':0,
    'indent': [
      'warn',
      2,
      {
        MemberExpression: 1,
        ignoredNodes: ['TemplateLiteral'],
        SwitchCase: 1,
      },
    ],
    'import/extensions': [
      2,
      'ignorePackages',
      { js: 'never', jsx: 'never', ts: 'never', tsx: 'never' },
    ],
  },
  overrides:[
    {
      files: ['*.ts', '*.tsx'],
      parser: '@typescript-eslint/parser',
      plugins: ['@typescript-eslint'],
      rules: {
        '@typescript-eslint/no-unused-vars': ['error', { args: 'none' }],
      },
    },
    {
      files: ['src/slice/**'],
      rules: {
        'no-param-reassign': ['error', { props: true, ignorePropertyModificationsFor: ['state', 'draft', 'req'] }],
      },
    },
    {
      files: ['*.d.ts'],
      rules: {
        'camelcase': 0,
      },
    },
  ],
  settings: {
    // 解决路径引用ts文件报错的问题
    'import/resolver': {
      node: {
        extensions: ['.js', '.jsx', '.ts', '.tsx'],
      },
      // 解决tsconfig下的path别名导致eslint插件无法解决的bug
      typescript: {
        alwaysTryTypes: true,
      },
    },
  },
};

依赖版本

"@typescript-eslint/eslint-plugin": "^5.27.0",
"@typescript-eslint/parser": "^5.23.0",
"eslint-config-prettier": "^8.1.0",
"eslint-import-resolver-typescript": "^2.7.1",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-react": "^7.29.4",
"eslint-plugin-react-hooks": "^4.2.0",
阅读 6.4k
2 个回答

后续发现,项目中存在多个版本的 @typescript-eslint/eslint-plugin 导致校验出现问题。移除其他依赖项目后,问题已经解决。

新手上路,请多包涵

You should turn off the eslint core rule and turn on the typescript-eslint rule

rules: {
  "no-unused-vars": "off",
  "@typescript-eslint/no-unused-vars": "error"
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题