Angular 财产';简介';不存在于类型';无效';

Angular 财产';简介';不存在于类型';无效';,angular,Angular,我有一个Angular5应用程序,其中我转换了一些最初用AngularJs开发的函数 我有一个函数,比较两个数组并拼接出重复的数组 但由于某些原因,在角度(2+)中,我得到以下错误: [21:22:15] typescript: src/pages/customize-share/customize-share.ts, line: 74 Property 'profile' does not exist on type 'void'. L73: th

我有一个Angular5应用程序,其中我转换了一些最初用AngularJs开发的函数

我有一个函数,比较两个数组并拼接出重复的数组

但由于某些原因,在角度(2+)中,我得到以下错误:

[21:22:15]  typescript: src/pages/customize-share/customize-share.ts, line: 74 
            Property 'profile' does not exist on type 'void'. 

      L73:  this.contact.shared.emails.map(function(val) {
      L74:    this.profile.emails.indexOf(val.email_address) < 0 ? this.emailArray.splice(val,1) : '';
      L75:  });

可能是由于本的范围

尝试:

this.contact.shared.emails.map((val)=>{
this.profile.emails.indexOf(val.email_address)<0?this.emailArray.splice(val,1):“”;
});

可能是由于
的范围

尝试:

this.contact.shared.emails.map((val)=>{
this.profile.emails.indexOf(val.email_address)<0?this.emailArray.splice(val,1):“”;
});

最可能的错误是由于
的范围,为了避免使用
=>
箭头函数而不是编写
匿名函数

this.contact.shared.emails.map((val) => {
  this.profile.emails.indexOf(val.email_address) < 0 ? this.emailArray.splice(val,1) : '';
});
this.contact.shared.emails.map((val)=>{
this.profile.emails.indexOf(val.email_address)<0?this.emailArray.splice(val,1):“”;
});
有关箭头函数的更多信息,请参阅本文


最有可能的错误是由于
的范围,为了避免使用
=>
箭头函数而不是编写
匿名函数

this.contact.shared.emails.map((val) => {
  this.profile.emails.indexOf(val.email_address) < 0 ? this.emailArray.splice(val,1) : '';
});
this.contact.shared.emails.map((val)=>{
this.profile.emails.indexOf(val.email_address)<0?this.emailArray.splice(val,1):“”;
});
有关箭头函数的更多信息,请参阅本文

尝试删除函数(val)并使用val=>如下所示:

this.contact.shared.emails.map(val => {
    this.profile.emails.indexOf(val.email_address) < 0 ? this.emailArray.splice(val,1) : ''; 
});
this.contact.shared.emails.map(val=>{
this.profile.emails.indexOf(val.email_address)<0?this.emailArray.splice(val,1):“”;
});
尝试删除函数(val)并使用val=>如下所示:

this.contact.shared.emails.map(val => {
    this.profile.emails.indexOf(val.email_address) < 0 ? this.emailArray.splice(val,1) : ''; 
});
this.contact.shared.emails.map(val=>{
this.profile.emails.indexOf(val.email_address)<0?this.emailArray.splice(val,1):“”;
});

已经有两个答案的内容相同,你的答案有什么新的吗?是的,我注意到了。当我在写我的答案时,你的答案没有出现。我猜唯一的问题是你不一定需要val周围的(),这是从.map()函数发送的。这是真的,但它提供了一个简单的小技巧,人们可能不知道这是有用的。已经有两个答案有相同的内容,你的答案有什么新的?是的,我注意到了。当我在写我的答案时,你的答案没有出现。我猜唯一的问题是,您不一定需要val周围的()符号。这是从.map()函数发送的。这是真的,但它确实提供了一个简单的小技巧,人们可能不知道这是有用的。谢谢,Zze。我做了更改,但现在我在下面(val.email_address)处看到一条红线:“'string'类型的[ts]参数不能分配给“IEmail”类型的参数。(属性)IEmail.email_地址:string。我在原始帖子中添加了界面。谢谢,Zze。我做了更改,但现在我在下面(val.email_address)处看到一条红线:“'string'类型的[ts]参数不能分配给“IEmail”类型的参数。(属性)IEmail.email_地址:string。我将接口添加到原始帖子中。感谢Pardeep,我做了更改,但现在我在(val.email_地址)下面看到一条红线:“'string'类型的[ts]参数不能分配给'IEmail'类型的参数。”。(属性)IEmail.email\u地址:string。我在原来的帖子中添加了界面。有什么想法吗?谢谢Pardeep,我做了更改,但现在我在下面看到一条红线(val.email_address):[ts]类型为“string”的参数不能分配给类型为“IEmail”的参数。(属性)IEmail.email\u地址:string。我在原来的帖子中添加了界面。有什么想法吗?