属性 在来自订阅的对象类型上不存在
property does not exists on type Object from subscribe
我正在使用 forkJoin 进行多个 http 调用,但它给我错误 error TS2339: Property 'data' does not exist on type 'Object'
forkJoin(this.userservice.getUser(), this.userservice.getDashboard()).pipe(
map(([userData, dashboardData]) => {
// set the user
this.user = userData;
// set order count
this.orderCount.new = dashboardData.data.new.length;
console.log(dashboardData);
this.dataLoaded = true;
})
).subscribe();
我理解这个错误,因为这个 属性 来自外部 api 所以在 angular/ionic 中它没有被设置。但是当我设置例如
map(([userData, dashboardData<any>]) => {
或类似的东西,它不起作用。我该如何解决这个问题?
getUser en getDashboard return http 对象
getUser() {
return this.http.get(environment.baseUrl + '/auth/user').pipe(
map(results => {
console.log(results);
return results;
})
);
}
在您的代码中,替换此行
this.orderCount.new = dashboardData.data.new.length;
有了这个
this.orderCount.new = (dashboardData as any).data.new.length;
这一行所做的是将对象转换为打字稿的任何类型。
更好的方法是为数据创建模型 classes 并使用这些模型 class 而不是任何模型。
你可以这样输入数组:
map(([userData, dashboardData]: [UserData, DashboardData]) =>
或者您可以只输入您的观察值。不要滥用任何东西。
我正在使用 forkJoin 进行多个 http 调用,但它给我错误 error TS2339: Property 'data' does not exist on type 'Object'
forkJoin(this.userservice.getUser(), this.userservice.getDashboard()).pipe(
map(([userData, dashboardData]) => {
// set the user
this.user = userData;
// set order count
this.orderCount.new = dashboardData.data.new.length;
console.log(dashboardData);
this.dataLoaded = true;
})
).subscribe();
我理解这个错误,因为这个 属性 来自外部 api 所以在 angular/ionic 中它没有被设置。但是当我设置例如
map(([userData, dashboardData<any>]) => {
或类似的东西,它不起作用。我该如何解决这个问题?
getUser en getDashboard return http 对象
getUser() {
return this.http.get(environment.baseUrl + '/auth/user').pipe(
map(results => {
console.log(results);
return results;
})
);
}
在您的代码中,替换此行
this.orderCount.new = dashboardData.data.new.length;
有了这个
this.orderCount.new = (dashboardData as any).data.new.length;
这一行所做的是将对象转换为打字稿的任何类型。
更好的方法是为数据创建模型 classes 并使用这些模型 class 而不是任何模型。
你可以这样输入数组:
map(([userData, dashboardData]: [UserData, DashboardData]) =>
或者您可以只输入您的观察值。不要滥用任何东西。