我遵循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中编译什么?
答案 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"/>
修复了它。