Typescript Angular 2找不到文件名“Set”

Typescript Angular 2找不到文件名“Set”,typescript,angular,typescript-typings,Typescript,Angular,Typescript Typings,目前,我正在将我的项目从angular2 beta15更新为rc4。当我编译时,我得到一个错误: path/node_modules/@angular/common/src/directives/ng_class.d.ts81,35:错误TS2304:找不到名称“Set” 我的tsconfig.json如下所示: { "compilerOptions": { "target": "ES5", "module": "commonjs", "sourceMap": tru

目前,我正在将我的项目从angular2 beta15更新为rc4。当我编译时,我得到一个错误:

path/node_modules/@angular/common/src/directives/ng_class.d.ts81,35:错误TS2304:找不到名称“Set”

我的tsconfig.json如下所示:

{
  "compilerOptions": {
    "target": "ES5",
    "module": "commonjs",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "removeComments": false,
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": false,
    "declaration": true,
    "outDir": "tmp/app"
  },
  "exclude": [
    "node_modules",
    "dist",
    "tmp"
  ]
}
在main.ts中,我还包括:

/// <reference path="../typings/index.d.ts" />
/// <reference path="../typings/tsd.d.ts"/>
当我在tsconfig.json中将target:ES5更改为ES6时,这个错误就消失了,但我需要使用ES5。我假设当我不包括///时会出现问题,但是根据,我们可以使用typings/index.d.ts代替

你能谈谈你对解决这个问题的看法吗?事先非常感谢

我认为该套件由polyfill为ES6提供。Angular2建议为此使用core js,请参见:

我们从core js的ES2015/ES6垫片开始,该垫片使用ES2015 ES6的基本功能修补全局上下文窗口


您可以在typings.json文件中指定它,但需要使用命令typings install安装typings。

我在尝试运行演示应用程序时遇到此错误。与您的经历类似,如果我在tsconfig.json中将目标更改为es6,则没有问题。运行Angular 2 Quick Start应用程序后,我开始比较tsconfig.json文件中的差异。我的tsconfig.json文件中缺少一行:

"lib": ["es2015", "dom"]
在将这一行添加到我的tsconfig.json文件后,它修复了错误。这是我在Angular Typescript配置文档中找到的关于该行的内容:

自由民主党议员

TypeScript包含一个名为lib.d.ts的特殊声明文件。这 文件包含各种常见JavaScript的环境声明 JavaScript运行时和DOM中存在的构造

基于-target,TypeScript添加了额外的环境声明 如果我们的目标是es6,就像承诺一样

由于QuickStart的目标是es5,因此我们可以覆盖 要包括的声明文件:

lib:[es2015,dom]

多亏了这一点,我们有所有的es6打字,即使是针对es5


非常感谢您的回复,蒂埃里。我已经更新了typings.json,删除了es6垫片,留下了核心js。打字机没有安装。已从index.html中删除脚本标记es6垫片。不过,我还是犯了同样的错误。不客气!能否尝试使用quickstart文档中提供的typescript编译器配置tsconfig.json文件?您的问题是在编译阶段执行应用程序之前。所以我认为问题不在index.html文件中……你能把一些东西推到你项目的一个子集上吗?例如,在github项目中,这样我就可以看一看了?谢谢简化和使用ssl需要一些时间
"lib": ["es2015", "dom"]