typescript对象属性“未定义”,但它不是

qojgxg4l  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(277)

我对typescript非常陌生,并且一直在努力解决一个看似愚蠢的问题:
我从服务中检索“代理”对象。

this.agentsController.getAgent(matricule).subscribe({
      next: agent => {
        console.log(agent)
        console.log(agent.emailPro)
      },
      error: (error: string) => {
        console.log(error)
      }
    });

根据第一个console.log,它的填充情况良好:

{
    "agent": {
        "matricule": "000001",
        "nom": "DummyName",
        "prenom": "DummyFirstname",
        "emailPro": "dummy@dummy.fr",
        "adresse1": "dummy address",
        "telephonePerso": "0000000001"
    }
}

但是,正如代理的打印显示了一个定义良好的电子邮件地址(emailpro)一样,第二个console.log始终显示 undefined 这怎么可能?我错过了什么?

0yycz8jy

0yycz8jy1#

要将评论链总结为有效回复,请执行以下操作:
我的服务将适当的代理对象封装在另一个虚拟对象中,该虚拟对象恰好也被称为“代理”。这就是混乱!
因此,与其打电话 agent.EmailPro 我应该打电话的 agent.agent.EmailPro .
我选择修复我的服务,以便它更好地解析api响应:
从…起 this.httpClient.get('apiUrl').pipe(map((result:any) => result as Agent));this.httpClient.get('apiUrl').pipe(map((result:any) => result.agent as Agent)); 再次感谢@pietro909&@t.j.crowder

相关问题