如何在 angular 7 应用程序中使用 rxjs 中的地图运算符?
How to use the map operator in rxjs within an angular 7 app?
我的代码可以编译并且一切正常,但是我的 IDE(Visual Studio 代码)显示以下错误消息并且我无法部署我的应用程序(使用 ng build --prod ):
ERROR in src/app/training/training.service.ts(61,46): error TS2339:
Property 'name' does not exist on type '{}'.
src/app/training/training.service.ts(62,50): error TS2339: Property
'duration' does not exist on type '{}'.
src/app/training/training.service.ts(63,50): error TS2339: Property
'calories' does not exist on type '{}'.
我这样导入地图运算符:
import { map, take } from 'rxjs/operators';
并像这样使用它:
...
.snapshotChanges()
.pipe(
map(docArray => {
return docArray.map(doc => {
return {
id: doc.payload.doc.id,
name: doc.payload.doc.data().name,
duration: doc.payload.doc.data().duration,
calories: doc.payload.doc.data().calories
};
});
})
)
...
我的界面是这样的:
export interface Exercise {
id: string;
name: string;
duration: number;
calories: number;
date?: Date;
state?: 'completed' | 'cancelled' | null;
}
我做错了什么?
要愚弄 Typescript,您可以这样做:
doc => {
let result: any = doc.payload.doc.data();
return {
id: doc.payload.doc.id,
name: result.name,
duration: result.duration,
calories: result.calories
};
我的代码可以编译并且一切正常,但是我的 IDE(Visual Studio 代码)显示以下错误消息并且我无法部署我的应用程序(使用 ng build --prod ):
ERROR in src/app/training/training.service.ts(61,46): error TS2339: Property 'name' does not exist on type '{}'. src/app/training/training.service.ts(62,50): error TS2339: Property 'duration' does not exist on type '{}'. src/app/training/training.service.ts(63,50): error TS2339: Property 'calories' does not exist on type '{}'.
我这样导入地图运算符:
import { map, take } from 'rxjs/operators';
并像这样使用它:
...
.snapshotChanges()
.pipe(
map(docArray => {
return docArray.map(doc => {
return {
id: doc.payload.doc.id,
name: doc.payload.doc.data().name,
duration: doc.payload.doc.data().duration,
calories: doc.payload.doc.data().calories
};
});
})
)
...
我的界面是这样的:
export interface Exercise {
id: string;
name: string;
duration: number;
calories: number;
date?: Date;
state?: 'completed' | 'cancelled' | null;
}
我做错了什么?
要愚弄 Typescript,您可以这样做:
doc => {
let result: any = doc.payload.doc.data();
return {
id: doc.payload.doc.id,
name: result.name,
duration: result.duration,
calories: result.calories
};