属性即使添加到构造函数Angular中也不存在错误



在创建web应用程序时,我在使用其中一项服务时,在IDE(VSCode(中偶然发现了一个异常错误:

Error, property adapter does not exist in DetailDataService

在大多数情况下,这个错误是直接的,我试图添加的内容都没有声明,所以我应该声明缺失的变量或其他什么。然而,在这种情况下,考虑中的变量已经在构造函数中声明。

constructor(
adapter: SuiteAdapterService,
toastr: ToastrService,
translate: TranslatePipe
) {}

但每当我在函数中提到这些时(例如(:

extractData(
module: string,
where_relate_field: string,
where_field_value: string
): any {
let params = this.initializeParams(
module,
where_relate_field,
where_field_value
);
this.adapter.post("listRecords", params).subscribe(
(response) => {
this.records = response.records;
},
(error) => {
let errmsg = this.translate.transform(
"pages[login_page][responses][error][" + error.text + "]"
);
this.toastr.error(errmsg);
}
);
}

IDE向我显示了三个(适配器、烤面包机、翻译(都不存在的错误。我觉得这很奇怪,因为我在其他服务中也一直在做同样的事情,而且它们似乎运行得很好。我认为IDE有问题,所以我改为Atom,但错误仍然存在。我运行了ng s,看看这是否只是IDE的问题,但事实证明这个错误在某种程度上是合法的,因为它向我抛出了以下内容:

ERROR in src/app/services/dynamic-loading/data/detail/detail-data.service.ts(70,10): error TS2339: Property 'adapter' does not exist on type 'DetailDataService'.
src/app/services/dynamic-loading/data/detail/detail-data.service.ts(75,27): error TS2339: Property 'translate' does not exist on type 'DetailDataService'.
src/app/services/dynamic-loading/data/detail/detail-data.service.ts(78,14): error TS2339: Property 'toastr' does not exist on type 'DetailDataService'.

我在这里做错了什么?

我觉得自己很笨。我忘了在构造函数中声明声明的范围。应该是:

constructor(
private adapter: SuiteAdapterService,
private toastr: ToastrService,
private translate: TranslatePipe
) {}

对于一种没有严格类型化的语言来说,我发现这很令人困惑,因为它有应该定义其作用域的构造函数声明。也许这是另一天的讨论。

最新更新