Angular 4 单元测试找不到名称警报、确认、事件

Angular 4 Unit Test cannot find name alert, confirm, event

运行 ng test in angular-cli with Angular 4.0.0 给出如下错误:

Cannot find name 'alert'
Cannot find name 'confirm'
Cannot find name 'Event'

Angular 没有发生这种情况 2. 看起来这里缺少了什么,但它是什么?

ng 服务和构建工作正常。

为了解决这个问题,我使用最新的@angular/cli 生成了一个新项目,然后将我所有的 tsconfg 文件进行比较并更新为当前格式。

我能够根据最新的 cli documentation.

更改 typings.d.ts 来解决这个问题

src/typings.d.ts:

旧:

/* SystemJS module definition */
declare var module: {
  id: string;
};

新:

/* SystemJS module definition */
declare var module: NodeModule;
interface NodeModule {
  id: string;
}

在我的例子中,这是通过将 "dom" 添加到 tsconfig 中的 "lib" 数组来解决的。我有一个 tsconfig.app.json 用于正常构建应用程序,还有一个 tsconfig.spec.json 刚刚用于单元测试。后一个丢失了 "dom"

{
  "compilerOptions": {
     ...
    "lib": [
      "es2016",
      "dom"
    ],
    ...
}