我正在将项目从Angular JS升级到Angular 4.在Angular JS项目中已经使用了TypeScript,在转换它之后我在Visual Studio中获得了数千个错误,用于第三方打字稿输入文件(* .d.ts)。我在Visual Studio中也在实际的TypeScript文件中遇到了一些错误。
当我使用命令行TypeScript编译器(tsc)时,TypeScript代码成功编译,因此我想阻止对所有* .d.ts文件进行编译检查。
我已经审查过非常类似问题的答案,这些问题建议如何忽略这些错误,但是没有一个对我有用,而且大多数都与VS 2017有关。
这是我尝试过的,禁用编译检查:
已添加' TypeScriptCompileBlocked'到.csproj文件:
<PropertyGroup>
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
....
</PropertyGroup>
添加.eslintignore文件
我已将.eslintignore文件添加到项目根目录,其设置忽略所有* .d.ts文件:
**/*.d.ts
**/node_modules/*
禁用ESLint
在VS Tools&gt;下选项,我已经找了一个选项,但是在VS2015中没有选项可以做到这一点
tsconfig.json - 排除node_modules文件夹
"exclude": [
"./node_modules/*"
]
-- I've also tried --
"node_modules"
... and
"**/*.d.ts"
tsconfig.json - set&#34; compileOnSave&#34;:false
{
"compilerOptions": {
"compileOnSave": false
}
}
我还在&#34; compilerOptions&#34;中添加了以下内容:
"types": []
我还设置了各种其他编辑器选项以忽略错误,尽管我看到的错误与这些错误无关:
"noImplicitAny": false,
"suppressImplicitAnyIndexErrors": true,
"noStrictGenericChecks": true
如何忽略* .d.ts文件?以下是我在文件node_modules \ @angular \ common \ src \ directives \ ng_class.d.ts中看到的一些错误示例:
目前的项目配置是:
我的完整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"
]
}
(关于我用于模块的价值,这里是MicroSoft文档所说的内容):
&#34; ES6&#34;和&#34; ES2015&#34;在定位&#34; ES5&#34;时可以使用这些值或更低。
https://www.typescriptlang.org/docs/handbook/compiler-options.html
我也尝试使用&#34; commonjs&#34;作为值
答案 0 :(得分:0)
我发现我安装的 npm TypeScript是一个完全独立的TypeScript安装(我'节点安装了'grunt-ts用于构建自动打字稿编译,出于某种原因grunt-ts需要这个'节点安装'TypeScript)。 Visual Studio在尝试编译时没有使用节点安装的TypeScript,而是使用专门为Visual Studio安装的TypeScript 1.8编译器。
要安装TypeScript 2.6.2以供VS2015使用,我从这里安装了它:
https://www.microsoft.com/en-us/download/details.aspx?id=48593
这创建了一个包含tsc.exe的文件夹C:\ Program Files(x86)\ Microsoft SDKs \ TypeScript \ 2.6。然后我在我的.csproj文件中设置它
<TypeScriptToolsVersion>2.6</TypeScriptToolsVersion>
并修复了所有错误。
要获得项目构建,我还需要在项目中包含我的tsconfig.json文件(右键单击&gt; include in project)。这会导致Visual Studio忽略.csproj文件中的TypeScript配置并使用tsconfig.json
我必须卸载并重新加载项目几次,之间保存,直到Visual Studio将VS2015项目属性识别为禁用。关闭并重新打开Visual Studio,如果出现提示,保存对项目的任何更改,可能会实现相同的目的:
所以看起来没有什么可以忽略d.ts文件的原因是因为Visual Studio无法正确解释解决方案并产生预期的输出。
答案 1 :(得分:-2)
其他人可能已经解决了这个并创建了一个ADDIN?远射,但可能会减轻你的痛苦...