我正在对 API 进行 get 调用并返回对象列表。然后,我将该数据分配给 DataService 中的属性,以便可以跨组件使用它。
这是我的组件中调用服务的代码:
getAvailableParameters() {
this.verificationService.getAvailableParameters(this.itemNumbers).subscribe((res => {
this.dataService.availableParameters = res;
}))}
这是对API的调用
getAvailableParameters(itemNumbers: string[]){
return this.http.get<BaseResponse<IavailableParameters[]>>(`${this.baseUrl}api/verification/${itemNumbers}`)
}
以下是 DataService 中应在调用 getAvailableParameters 后存储对象的属性:
export class DataService {
public orderInfo: Iorder;
public availableParameters: IavailableParameters[];
}
正如您所看到的,从 API 返回的对象也包装在 BaseResponse 对象中(我认为这是问题所在,但不知道如何解决),定义如下:
import { Error } from './Error'
export interface BaseResponse<T> {
isSuccessful: boolean,
error: Error;
results: T;
}
这就是我收到的确切错误:
ERROR in src/app/Components/verification-reply/verification-reply.component.ts(28,7): error TS2740: Type 'BaseResponse<IavailableParameters[]>' is missing the following properties from type 'IavailableParameters[]': length, pop, push, concat, and 26 more.
当我删除基本响应类型时,它工作正常,因为我假设它没有将其注册为数组或其他东西。当我返回的对象不是数组时,这种与数据服务对象的绑定方法工作正常。
我在这个主题上缺乏经验,可以使用一些帮助来解决这个错误。
郎朗坤
相关分类