TypeScript linter警告:不推荐使用no-unused-variable;但我没有使用此配置

rea*_*ebo 15 typescript tslint

今天,我在3个月后刷新的项目中看到此警告。

不推荐使用未使用的变量。从TypeScript 2.9开始。请改用内置的编译器检查。

但是我tsconfig.json似乎没有使用它。

{
  "compilerOptions": {
    "lib": ["es6"],
    "module": "commonjs",
    "noImplicitReturns": true,
    "outDir": "lib",
    "sourceMap": true,
    "target": "es6",
    "allowJs" : true
  },
  "compileOnSave": true,
  "include": [
    "src"
  ]
}
Run Code Online (Sandbox Code Playgroud)

可能是以前任何配置中都隐含的配置。

您能指出我该怎么做吗?

如果有用

$ node -v
v10.3.0
$ npm -v
6.1.0
Run Code Online (Sandbox Code Playgroud)

这些devDependencies与我的类型脚本有关package.json

"devDependencies": {
    ...
    "tslint": "^5.11.0",
    "typescript": "^2.9.1"
    ...
  },
Run Code Online (Sandbox Code Playgroud)

am0*_*0wa 48

不推荐使用 no-unused-variable。从 TypeScript 2.9 开始。请改用内置的编译器检查。

  1. no-unused-variable从您的或依赖项 tslint.json 文件中删除弃用。

  2. tsconfig.json 文件中指定以下编译器选项 。

"compilerOptions": {
  "noUnusedLocals": true,                /* Report errors on unused locals. */
  "noUnusedParameters": true             /* Report errors on unused parameters. */
}
Run Code Online (Sandbox Code Playgroud)


Die*_*dro 16

就像上面说的那样,tslint不赞成使用该规则(更多信息参见https://github.com/palantir/tslint/pull/3919

检查您的tslint.json,并删除规则,警告应消失。

  • 但是“请改用内置的编译器检查”是什么意思? (12认同)
  • @ThomasEbert意味着在`tsconfig.json`中的`compilerOptions`中添加`noUnusedLocals` /`noUnusedParameters`。 (11认同)
  • @migg 这里有真正的答案。不要只是删除规则而不添加此规则。 (2认同)
  • 不过,这似乎不应该被弃用,因为“noUnusedLocals”不会捕获未使用的导入,而“no-unused-variable”会捕获未使用的导入。 (2认同)

Isl*_*aev 8

不仅支持no-unused-variable规则,而且整个TSLint 已被弃用,转而支持typescript-eslint

考虑迁移到新的 linter。

  • 请注意,在撰写此评论时,Angular 默认情况下仍使用 TSLint。Angular 的迁移仍在进行中。因此,Angular 用户可能仍希望暂时使用 TSlint,直到 Angular 团队完成迁移。 (3认同)