7

在一个新项目中,我安装了typescript, eslint, @typescript-eslint/parser, @typescipt-eslint/eslint-plugin. 我还添加了以下.eslintrc文件:

{
  "parser": "@typescript-eslint/parser",
  "plugins": ["@typescript-eslint"]
}

和以下tsconfig.json文件:

{
  "compilerOptions": {
    "strict": true
  }
}

问题是tsconfig.json我运行命令时未应用选项 from eslint。不过,它可以按预期使用 command tsc

例如,使用包含以下内容的文件index.ts

function sum(a, b) {}

如果我运行npx eslint index.js,我没有错误,如果我运行tsc --noEmit,我有两个:

  • 错误 TS7006:参数“a”隐式具有“任何”类型。
  • 错误 TS7006:参数“b”隐含地具有“任何”类型。

我希望该eslint命令返回与该命令相同的错误tsc。任何想法?

编辑我尝试使用和不使用以下内容.eslintrc

"parserOptions": {
  "project": "./tsconfig.json"
}
4

1 回答 1

7

typescript-eslint 不报告编译器警告。它只报告由自己的验证规则生成的警告。此外,strict在 TypeScript 中启用该选项对 typescript-eslint 执行的代码分析没有影响,它不依赖于项目设置。

已经有一些关于创建新@typescript-eslint/no-undef规则(以 ESLintno-undef规则为模型)的讨论,该规则将至少捕获 tsc 编译器生成的一些警告,并启用严格的类型检查。

目前最好的方法可能是将tsc --noEmit它的执行集成到 lint 过程中。

于 2019-07-29T10:39:06.103 回答