对于给定的类,我在构造函数中声明了一些私有变量,并进行了一些调用。在构造函数中包含它时,我可以在我的类型化数组声明中获得No Provider错误,并且在构造函数外声明它时没有错误。
此代码有效,无错误
private data: Array<MyType>;
constructor(private service: Service) {
this.service.getData().then(response => this.data = response.json());
}
然后,矛盾的是,下面的内容不起作用,并产生了在代码段下面找到的错误。
constructor(private data: Array<MyType>, private service: Service) {
this.service.getData().then(response => this.data = response.json());
}
控制台错误
EXCEPTION:错误:未捕获(在承诺中)原始异常:没有数组提供者!
这是一些语法错误吗?我是否会误解一个概念?两种实现看起来都是相同的,并且感觉它们应该完全相同。
答案 0 :(得分:1)
代码是等效的...除了对构造函数的调用。 ;)
在第一种情况下:
new TheClass(service);
在第二种情况下:
new TheClass(somethingHere, service);