我使用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重建项目,并且在新项目中收到相同的错误。
什么是错误信息和'tsconfig.json'中的内容? – Tseng
错误是典型的.d.ts错误:重复标识符'readonly','='预计,';'预期。等等。他们只显示我导入的Kendo组件。没有其他错误,并且错误的数量会根据我重新启动VS后打开的文件而波动。 – David