代码之家  ›  专栏  ›  技术社区  ›  Codehan25

如何在angular 7应用程序中使用rxjs中的map操作符?

  •  0
  • Codehan25  · 技术社区  · 6 年前

    src/app/training出错/培训服务.ts(61,46):错误TS2339: src/app/培训/培训服务.ts(62,50):错误TS2339:属性 类型“{}”上不存在“duration”。 src/app/培训/培训服务.ts(63,50):错误TS2339:属性 类型“{}”上不存在“卡路里”。

    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;
    

    我做错什么了?

    0 回复  |  直到 6 年前
        1
  •  1
  •   Haijin    6 年前

    要愚弄Typescript,可以这样做:

    doc => {
    
        let result: any = doc.payload.doc.data();
              return {
                id: doc.payload.doc.id,
                name: result.name,
                duration: result.duration,
                calories: result.calories
              };