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"
],
...
}
运行 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"
],
...
}