打字稿对象 属性 'undefined' 而不是
Typescript object property 'undefined' while it is not
我对 Typescript 还很陌生,并且正在努力解决一个看似愚蠢的问题:
我从服务中检索了一个 'agent' 对象。
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
这怎么可能?
我错过了什么?
将评论链总结为有效回复:
我的服务将我的代理对象封装在其他一些虚拟对象中,这些虚拟对象也恰好被称为 'agent'。 因此混乱!
所以我应该调用 agent.agent.EmailPro
.
而不是调用 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
我对 Typescript 还很陌生,并且正在努力解决一个看似愚蠢的问题:
我从服务中检索了一个 'agent' 对象。
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
这怎么可能? 我错过了什么?
将评论链总结为有效回复:
我的服务将我的代理对象封装在其他一些虚拟对象中,这些虚拟对象也恰好被称为 'agent'。 因此混乱!
所以我应该调用 agent.agent.EmailPro
.
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