我正在使用Angular2 Cli构建Angular2 App。 我有一个notifications.component,它有一个像这样的构造函数
constructor(private _elRef: ElementRef) {}
当我构建(npm start)时,我收到此错误
...angular2/tmp/broccoli_type_script_compiler-input_base_path-wKrIZXNv.tmp/0/src/app/notifications/notifications.component.spec.ts (10, 21): Supplied parameters do not match any signature of call target
angular cli生成的文件notifications.component.spec.ts就像这样
import { By } from '@angular/platform-browser';
import { DebugElement } from '@angular/core';
import { addProviders, async, inject } from '@angular/core/testing';
import { NotificationsComponent } from './notifications.component';
describe('Component: Notifications', () => {
it('should create an instance', () => {
let component = new NotificationsComponent();
expect(component).toBeTruthy();
});
});
但是,如果我在没有构造函数参数的情况下构建,一切正常。如果我在构建之后添加此参数,一切都可以正常工作。
我缺少什么?
答案 0 :(得分:1)
请看这一行let component = new NotificationsComponent();
。
当您为NotificationsComponent
创建新对象时,您没有提供参数,而其构造函数需要类型为ElementRef
的对象。
这就是为什么你在没有构造函数参数的情况下构建一切正常。
答案 1 :(得分:0)
你好兄弟有一个临时解决方案,因为我遇到了同样的问题,没有人无法解释如何以及发生了什么,但你可以尝试进入notification.component.ts并将构造函数更改为:"构造函数(private _elRef:any = ElementRef){}" 重新加载然后将其更改回原来