You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

@typescript-eslint/no-unused-vars规则不生效,如何检测未使用类成员?

解决Angular中ESLint未检测到未使用类成员的问题

问题描述

在Angular项目中,已在.eslintrc.json中启用no-unused-vars和@typescript-eslint/no-unused-vars规则并设为error级别,但组件中的something变量与somethingFn()方法未被使用时,ESLint并未标记。其他规则(如@typescript-eslint/explicit-member-accessibility)可正常工作。

解决方案

1. 禁用原生ESLint的no-unused-vars规则

TypeScript项目应使用@typescript-eslint/no-unused-vars替代原生规则,避免规则冲突,将原生规则设为off。

2. 配置@typescript-eslint/no-unused-vars检测类成员

该规则默认不会全面检查类的属性和方法,需添加配置项明确开启类成员检测,还可设置忽略前缀(比如下划线开头的变量,方便临时保留未使用成员)。

3. 启用TypeScript类型检查支持

@typescript-eslint/no-unused-vars检测类成员依赖TypeScript的类型信息,因此需在ESLint配置中指定parserOptions.project指向项目的tsconfig.json。

修改后的.eslintrc.json关键部分

{
  "root": true,
  "ignorePatterns": ["projects/**/*"],
  "overrides": [
    {
      "files": ["*.ts"],
      "extends": [
        "eslint:recommended",
        "plugin:@typescript-eslint/recommended",
        "plugin:@angular-eslint/recommended",
        "plugin:@angular-eslint/template/process-inline-templates",
        "plugin:prettier/recommended"
      ],
      "parserOptions": {
        "project": "./tsconfig.json"
      },
      "rules": {
        "no-unused-vars": "off",
        "@typescript-eslint/no-unused-vars": [
          "error",
          {
            "vars": "all",
            "args": "after-used",
            "ignoreRestSiblings": true,
            "varsIgnorePattern": "^_",
            "argsIgnorePattern": "^_",
            "caughtErrors": "none",
            "memberOptions": {
              "unused": "all"
            }
          }
        ],
        "@typescript-eslint/explicit-member-accessibility": "error",
        "@angular-eslint/directive-selector": [
          "error",
          {
            "type": "attribute",
            "prefix": "app",
            "style": "camelCase"
          }
        ],
        "@angular-eslint/component-selector": [
          "error",
          {
            "type": "element",
            "prefix": "app",
            "style": "kebab-case"
          }
        ]
      }
    },
    // 其他HTML相关配置保持不变
  ]
}

关键配置说明

  • parserOptions.project:让ESLint借助TypeScript的类型检查能力,准确识别类成员是否在模板或其他场景中被使用。
  • memberOptions.unused: "all":强制检查所有未使用的类成员,包括属性、方法等。
  • varsIgnorePattern/argsIgnorePattern:可选配置,忽略下划线开头的变量或参数,适用于临时保留但暂未使用的成员。

内容的提问来源于stack exchange,提问作者Peter Boomsma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 02:23:21