Angular2 Typescript .NET核心VS2015。找不到名字'承诺',' Set',' Map'

时间:2016-09-23 08:23:32

标签: angular typescript asp.net-core

我遵循Angular2快速入门指南(https://angular.io/docs/ts/latest/quickstart.html)使用Typescript和.NET Core构建Web应用程序。依赖关系和打字会被正确解析和生成,但是当我尝试构建时,我会得到错误:

TS2304 Build:找不到名称' Set'

TS2304 Build:找不到名字' Promise'

TS2304 Build:找不到名称' Map'

正如我在许多其他问题中所读到的那样,我可以通过将Typescript编译器定位到ES6来解决("目标":" es6"在tsconfig.json中),但这不是选项,因为许多浏览器仍然不支持ES6。所以我试着添加#34; es6-promise"和" es6-collections"在我的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",
     "es6-promise": "registry:dt/es6-promise", 
     "es6-collections": "registry:dt/es6-collections"
  }
}

但它仍然没有编译。我可以尝试在ES5中编译什么?

2 个答案:

答案 0 :(得分:1)

解决方案是在我的 main.ts 文件中添加对ES6类型的引用:

/// <reference path="../typings/globals/es6-promise/index.d.ts" />
/// <reference path="../typings/globals/es6-collections/index.d.ts" />
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);

我不知道是否有更好的解决方案,但通过这种方式,我可以在ES5中成功构建。

答案 1 :(得分:0)

我遇到了同样的问题并安装了es6-shim

typings install dt~es6-shim --save --global

并引用相同的

///<reference path="typings/globals/es6-shim/index.d.ts"/> 

修复了它。