为了账号安全,请及时绑定邮箱和手机立即绑定

从 firestore 检索时出现未知类型属性

从 firestore 检索时出现未知类型属性

森栏 2023-07-20 15:45:55
我正在尝试从cloud firebase获取数据模型.tsexport interface Asignaturas {    id: string;    codigo: number;     nombre: string;}服务.tsexport class AsignaturasService {    asignatura: Observable<Asignaturas[]>;    constructor(private db: AngularFirestore){}        getAsignaturas() {    return this.asignatura = this.db.collection('asignaturas').snapshotChanges()     .pipe(           map(               docArray => {                  return docArray.map(                                      doc => {                                         return {                                            id: doc.payload.doc.id,                                            codigo: doc.payload.doc.data().codigo,                                            nombre: doc.payload.doc.data().nombre                                         };                                      }                                  )               }           )     )}//subscribe( res => console.log(res))};}在上面的代码中,我试图获取我的接口 Asignatura 的属性。在控制台日志中,我可以看到值被正确检索,但是应用程序抛出错误src/app/shared/asignaturas.service.ts(26,76) 中的错误:错误 TS2339:类型“未知”上不存在属性“codigo”。src/app/shared/asignaturas.service.ts(27,76):错误 TS2339:类型“未知”上不存在属性“nombre”。知道出了什么问题。谢谢
查看完整描述

1 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超2个赞

这是一个类型的事情,你的代码不知道这些属性的存在。您可以创建一个代表您的文档的接口,并将该类型和 doc.data() 断言到一个新对象上,即类型转换。为了让打字稿满意,你可以执行以下操作,但这只会在编译时为你提供保护。不确定这是否是您要找的。


doc => { 

    const data = doc.payload.doc.data() as Asignaturas

    return {

        id: doc.payload.doc.id,

        codigo: data.codigo,

        nombre: data.nombre

    };

}


查看完整回答
反对 回复 2023-07-20
  • 1 回答
  • 0 关注
  • 64 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信