我使用角度5并且我收到了错误,下面是代码:
signIn(provider) {
this._auth.login(provider).subscribe(
(data) => {
console.log(data);
this.hideForm = false;
this.emaill = data.email;
this.nom = data.last_name;
this.prenom = data.first_name;
this.profileImage = data.image;
})
}
错误是:
src / app / authentification / authentification.component.ts(34,28):错误TS2339:属性'电子邮件'类型'对象'上不存在。 src / app / authentification / authentification.component.ts(35,25):错误TS2339:属性' last_name'类型'对象'上不存在。 src / app / authentification / authentification.component.ts(36,28):error TS2339:Property' first_name'类型'对象'上不存在。 src / app / authentification / authentification.component.ts(37,34):错误TS2339:属性'图像'类型'对象'。
上不存在
答案 0 :(得分:33)
在第3行将(data)
替换为(data : any)
。
答案 1 :(得分:2)
最受好评的答案并不好,因为它违背了 @Alex Lomia
对此的解决方案是 -
要解决此问题,请创建一个接口来描述您的架构并扩展 mongoose.Document:
在这里检查这个类似的问题 - similar question
使用 Javascript 而不是 TypeScript ,如果有人在后端使用 NestJS 很可能会遇到这个错误,所以如果你不想经历制作接口和 DTO 的使用 javascript 的过程,也可以javascript 构建的文件也会更小。
答案 2 :(得分:0)
或更好地练习使用接口。 你可以声明界面:
export interface DataI {
email: string;
...
constructor(...){this.email = email .....}
然后将其用作类型
答案 3 :(得分:0)
发生错误,因为数据类型为Object,没有任何属性。您可以检查对象是否具有您的属性并使用它:
if (data.hasOwnProperty('email')) this.email = data['email'];
答案 4 :(得分:0)
检查对象的条件是否为空
if(data!==null && data!==undefined && data.email !==undefined)
{
this.emaill = data.email;
this.nom = data.last_name;
this.prenom = data.first_name;
this.profileImage = data.image;
}
答案 5 :(得分:0)
类型“对象”上不存在属性“主机名”。
我正在使用Vue和打字稿,在加载某些数据后尝试进行console.log this.dropdownItems [0] .hostname时,在调试时发生错误。对我来说,该错误似乎是打字稿类型检查变量:
dropdownItems: Array<Object> = []
应该是:
dropdownItems: any[] = []
源自: https://www.reddit.com/r/ionic/comments/9cxc79/property_courses_does_not_exist_on_type_object/
答案 6 :(得分:0)
我的Nodejs Typescript
项目中发生了同样的错误-
代码-
app.post('/form-submit', (req, res) => {
const errors = {};
if (...condition) {
errors.email = ['Email is not valid.'];
}
});
错误-
Property 'email' does not exist on type '{}'.ts(2339)
解决方案(添加:any
并解决错误)-
const errors:any = {};
答案 7 :(得分:0)
您可以使用data:any
:
signIn(provider) {
this._auth.login(provider).subscribe(
(data:any) => {
console.log(data);
this.hideForm = false;
this.emaill = data.email;
this.nom = data.last_name;
this.prenom = data.first_name;
this.profileImage = data.image;
})
}
现在它可以正常工作了,因为我遇到了同样的问题。