1

我使用Visual Studio 2015 Pro开发使用Systemjs和Kendo UI Angular 2组件的.Net Core Angular 2项目。Typescript .d.ts编译错误

我正在使用Gulp将库文件从node_modules复制到“wwwroot/shared/lib”,并且从tsconfig.json中的编译中排除了这两个目录。

一切正常,直到我包含一个Kendo UI模块,它会导致打字稿编译“node_modules/@ progress/[component-name]/dist/npm/js”目录中的.d.ts文件。

我排除了tsconfig.json中的node_modules,所以我猜测Kendo UI组件代码以某种方式以某种方式引用.d.ts文件。

当我排除“wwwroot”而不是“wwwroot/shared/lib”时,项目编译时没有错误(因为我所有的.ts文件都在“wwwroot”中)。

奇怪的是,当我将它改回“wwwroot/shared/lib”时,它仍然有效!但是,一旦我重新启动VS,我再次得到错误(?!)

所有错误都是特定于“node_modules/@ progress”文件夹中的.d.ts文件。 “node_modules/@ angular”中有很多.d.ts文件不会导致任何问题,所以这必须是Kendo UI代码特有的。

有没有办法让VS编译.d.ts文件,而不管它们的位置?找不到名称 '模块', '地图',等等 - :

这里是我的tsconfig包括错误TS2304

"compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": true, 
    "suppressImplicitAnyIndexErrors": true 
}, 
"compileOnSave": true, 
"exclude": [ 
    "node_modules", 
    "wwwroot/shared/lib" 
    // , 
    //"wwwroot" 
] 

UPDATE

看似随意,这些错误会从6至149跳...

我已经尝试添加"skipDefaultLibCheck": true到tsconfig没有运气。

添加"types": [ "node" ]将导致tsc.exe退出代码1,除非我做诡计,在我排除“wwwroot”,然后运行该项目,然后再次包含它。

我这样做之后,一切都会正常工作 - 直到我重新启动VS并且一切都爆炸了。

更新2

我安装了最新版本的打字稿的为Visual Studio 2015年(TypeScript_Dev14Full),这似乎已经解决了大部分的上述问题,虽然我现在留下了一个新的错误:

“TS2309构建:导出分配不能用于具有其他导出元素的模块中。” on \ node_modules \ @types \ node \ index.d.ts

该错误出现两次,一次用于Project:“TypeScript虚拟项目”和Project:“DevDashLocal”。

我用最新版本的.Net Core SDK和Typescript重建项目,并且在新项目中收到相同的错误。

+0

什么是错误信息和'tsconfig.json'中的内容? – Tseng

+0

错误是典型的.d.ts错误:重复标识符'readonly','='预计,';'预期。等等。他们只显示我导入的Kendo组件。没有其他错误,并且错误的数量会根据我重新启动VS后打开的文件而波动。 – David

回答

1

看来,这些错误是由于正在安装Visual Studio 2015的过时版本的Typescript造成的。更新TS工具删除了引用Kendo UI的错误