我正在将一个项目从Angular JS升级到Angular 4。在Angular JS项目中已经使用了TypeScript,在转换后,我在Visual Studio中针对第三方TypeScript类型文件(*.d.ts)收到数千个错误。我在实际的TypeScript文件中也收到了一些错误。
当我使用命令行TypeScript编译器(tsc)时,TypeScript代码可以成功编译,因此我想防止编译检查所有*.d.ts文件。
我已经尝试过以下方法来禁用编译检查:
- 在.csproj文件中添加'TypeScriptCompileBlocked'; - 在tsconfig.json文件中添加"skipLibCheck": true;
但是,这些方法都无法解决问题,大多数与VS 2017有关。
我还设置了各种其他的编译器选项来忽略错误,尽管我看到的错误与这些选项无关。
我该怎么做才能忽略*.d.ts文件?以下是我在文件node_modules\@angular\common\src\directives\ng_class.d.ts中看到的一些错误示例:
当我使用命令行TypeScript编译器(tsc)时,TypeScript代码可以成功编译,因此我想防止编译检查所有*.d.ts文件。
我已经尝试过以下方法来禁用编译检查:
- 在.csproj文件中添加'TypeScriptCompileBlocked'; - 在tsconfig.json文件中添加"skipLibCheck": true;
但是,这些方法都无法解决问题,大多数与VS 2017有关。
<PropertyGroup>
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
....
</PropertyGroup>
- 然后关闭并重新打开 VS
添加 .eslintignore 文件
我已经在项目根目录下添加了一个 .eslintignore 文件,并设置忽略所有 *.d.ts 文件:
**/*.d.ts
**/node_modules/*
禁用ESLint
在VS工具 > 选项下,我已经寻找了一个选项,但是在VS2015中没有这个选项。
tsconfig.json - 排除node_modules文件夹
"exclude": [
"./node_modules/*"
]
-- I've also tried --
"node_modules"
... and
"**/*.d.ts"
tsconfig.json - 设置 "compileOnSave": false
{
"compilerOptions": {
"compileOnSave": false
}
}
我已经添加了以下内容到"compilerOptions":
"types": []
我还设置了各种其他的编译器选项来忽略错误,尽管我看到的错误与这些选项无关。
"noImplicitAny": false,
"suppressImplicitAnyIndexErrors": true,
"noStrictGenericChecks": true
我该怎么做才能忽略*.d.ts文件?以下是我在文件node_modules\@angular\common\src\directives\ng_class.d.ts中看到的一些错误示例:
当前项目的配置如下:
- 编译器(tsc)版本 = 1.8
- TypeScript 版本 = 2.6.2(通过 npm 安装)
- 没有通过 Visual Studio 项目直接设置 TypeScript 配置选项(即在 .csproj 文件中设置)
我的完整 tsconfig.json 文件:
{
"compilerOptions": {
"target": "es5",
"module": "ES2015",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [ "es2015", "dom" ],
"noImplicitAny": false,
"suppressImplicitAnyIndexErrors": true,
"noStrictGenericChecks": true
},
"include": [ "**/*.ts" ],
"exclude": [
"node_modules"
]
}
关于我使用的模块值,这是微软文档的说法:
当目标为“ES5”或更低版本时,可以使用“ES6”和“ES2015”值。
https://www.typescriptlang.org/docs/handbook/compiler-options.html
我还尝试使用"value"作为"commonjs"的值
.eslintignore
无法帮助解决ts
编译错误,应该使用tsconfig.ignore
。我曾经遇到过相同的问题并使其正常工作,但那是两年前,我现在已经没有安装VS 2015了。假设您正在使用最新版本的 TypeScript(2.6.2),并且已经安装了最新版本的 TS for VS 2015。如果是这种情况,请告诉我,我可以提供答案。 - Aluan Haddad"compilerOptions": {"types": []}}
。请在此问题中添加一些具体错误的示例以帮助确认。 - Aluan Haddad