tsconfig未由typescript eslint使用
在一个新项目中,我安装了tsconfig未由typescript eslint使用,typescript,eslint,typescript-eslint,Typescript,Eslint,Typescript Eslint,在一个新项目中,我安装了typescript,eslint,@typescript-eslint/parser,@typescipt-eslint/eslint插件。我还添加了以下.eslintrc文件: { "parser": "@typescript-eslint/parser", "plugins": ["@typescript-eslint"] } { "compilerOptions": { "strict": true } } 以及以下tsconfig.j
typescript
,eslint
,@typescript-eslint/parser
,@typescipt-eslint/eslint插件
。我还添加了以下.eslintrc
文件:
{
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint"]
}
{
"compilerOptions": {
"strict": true
}
}
以及以下tsconfig.json
文件:
{
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint"]
}
{
"compilerOptions": {
"strict": true
}
}
问题是当我运行命令eslint
时,tsconfig.json
中的选项没有应用。不过,它在使用命令tsc
时仍能正常工作
例如,文件index.ts
包含:
function sum(a, b) {}
如果我运行npx eslint index.js
,我没有错误,而如果我运行tsc--noEmit
,我有两个错误:
- 错误TS7006:参数“a”隐式具有“any”类型
- 错误TS7006:参数“b”隐式具有“any”类型
eslint
命令返回与tsc
命令相同的错误。
有什么想法吗
编辑我在.eslintrc
中尝试了以下内容,也尝试了以下内容:
"parserOptions": {
"project": "./tsconfig.json"
}
typescript eslint不报告编译器警告。它只报告由自己的验证规则生成的警告。此外,在TypeScript中启用
strict
选项对TypeScript eslint执行的代码分析没有影响,因为TypeScript eslint不依赖于项目设置
关于创建一个新的@typescript eslint/no undef
规则(以eslint规则为模型),该规则将捕获tsc编译器在严格类型检查的情况下生成的至少一些警告
目前最好的方法可能是将执行
tsc--noEmit
集成到lint进程中。您能提供一个将执行tsc--noEmit集成到lint进程中的示例吗?@olefrank我手头没有运行tsc可执行文件的示例,但在我的一个项目中,我正在使用TypeScript编译器API和最小的一组(包括noEmit
)来精确地执行这种linting。关键是typescript模块提供的函数createProgram
,它在编译时抛出一个错误,从而停止构建。兴趣代码是。我看看能不能想出一个简单的例子。