我已更新我的项目以使用angular 2最终版本。我还更新了visual studio,使用了工具中的typescript 2.0.3 - >扩展和更新经理。
我使用gulp来编译我的打字稿,它符合正确无误。但是我在visual studio中遇到了成千上万的错误。最常见的三个错误是:
错误TS2403后续变量声明必须具有相同的类型。变量' httpVersionMinor'必须是' string'类型,但这里有类型'数字'。的 index.d.ts
错误TS2300重复标识符' export ='。的 index.d.ts
错误TS2320接口'服务器'不能同时扩展类型 ' EventEmitter'和'服务器'。被命名的财产' emit'类型 ' EventEmitter'和'服务器'不一样。的 index.d.ts
这是我的tsconfig.json文件:
{
"compilerOptions": {
"noImplicitAny": false,
"removeComments": false,
"sourceMap": true,
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true
},
"exclude": [
"node_modules",
"typings"
]
}
这是我的typings.json文件:
{
"globalDependencies": {
"core-js": "registry:dt/core-js#0.0.0+20160725163759",
"jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
"node": "registry:dt/node#6.0.0+20160909174046"
}
}
这是我的main.ts文件:
/// <reference path="../typings/index.d.ts"/>
/// <reference path="../typings/tsd.d.ts"/>
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
// APP imports *****************************************************
import { AppModule } from './app/app.module';
// ENABLE PRODUCTION MODE
// enableProdMode();
platformBrowserDynamic().bootstrapModule(AppModule)
.catch((err: any) => console.error(err));
如果我删除此行:
参考路径=&#34; ../ typings / index.d.ts&#34;
从我的main.ts文件的顶部然后错误消失在visual studio中,但是当我尝试使用gulp / npm进行编译时,错误全部出现。
当我引用index.d.ts文件时,有人可以帮我弄清楚为什么这些错误只会在Visual Studio中抛出,或者当我删除该引用时,为什么错误只出现在npm中?
答案 0 :(得分:0)
这是解决方案
我将项目切换到angular2 final和typescript 2.0.3
这导致了我在Visual Studio中开发的问题,但是使用gulp任务来编译和构建我的项目。
所以我必须做的就是修复错误:
这是我的新gulp任务,包括我的index.d.ts文件:
gulp.task('ts:compile', function () {
return gulp
.src(['./src/**/*.ts', 'typings/index.d.ts'], { base: '.' })
.pipe(sourcemaps.init())
.pipe(tsc(tsConfig.compilerOptions))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('.'));
});
现在,visual studio不会抛出错误,并且gulp会正确编译代码。
啧。 visual studio和angular2之间的集成仍然有点粗糙