尝试构建一个Angular应用程序我在node_modules文件夹中获取了typescript文件的complie错误。
例如:
TS2420:Class'CdkTable'错误地实现了接口 'CollectionViewer'。
CdkTable位于@ angular / cdk / typings / table / table.d.ts
我的工具版本:
npm -v:5.0.3
node -v:v8.1.4
tsc -v:版本2.2.3
我的tsconfig.json:
{
"compilerOptions": {
"moduleResolution": "node",
"target": "es5",
"sourceMap": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"skipDefaultLibCheck": true,
"lib": [ "es6", "dom" ],
"types": [ "node" ]
},
"exclude": [ "bin", "node_modules" ],
"atom": { "rewriteTsconfig": false }
}
请注意,该项目可在其他计算机上编译。
答案 0 :(得分:0)
我假设您的tsc
可执行文件是通过npm安装的,并且全局安装。
检查已安装的Visual Studio的TypeScript SDK版本。它应该位于大致为C:\Program Files (x86)\Microsoft SDKs\TypeScript
的文件夹中。确保此版本是最新版本(或至少与全局安装的TypeScript版本相同)。
还要检查环境变量,以查看路径中是否有不同的版本。 Visual Studio的MSBuild进程使用MSBuild TypeScript tasks,它将从SDK安装中获取TypeScript。这解释了命令行(使用全局安装的tsc)和Visual Studio输出的输出差异。
此外,known issues使用带有Visual Studio项目的tsconfig。我知道它应该得到完全的支持,但是仍有很多人仍在报告我所研究的问题。您可能希望删除tsconfig,以便在右键单击项目并选择属性时使用TypeScript选项卡。
或者,您可以尝试设置rootDir
编译器选项,以尝试挑出实际需要编译的TypeScript文件的目录。我知道excludes
应该已经阻止了这一点,但同样,Visual Studio可能会以某种方式在tsconfig上打嗝。