我有一个5角应用程序,我已经转换了一些我最初在AngularJs中开发的函数。
我有一个函数,我比较两个数组并拼接出重复数据。
但出于某种原因,在Angular(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: });
我是否缺少在此处初始化数组类型?
仅供参考,电子邮件的类型如下:
export interface IEmail {
email_type: string;
email_address: string;
}
答案 0 :(得分:1)
可能由于this
的范围。
尝试:
this.contact.shared.emails.map((val) => {
this.profile.emails.indexOf(val.email_address) < 0 ? this.emailArray.splice(val,1) : '';
});
答案 1 :(得分:1)
错误很可能是因为this
的范围,为了避免使用=>
箭头功能而不是写anonymous function
this.contact.shared.emails.map((val) => {
this.profile.emails.indexOf(val.email_address) < 0 ? this.emailArray.splice(val,1) : '';
});
有关箭头功能的更多信息,请参阅本文
答案 2 :(得分:0)
尝试删除函数(val)并使用val =&gt;像这样:
this.contact.shared.emails.map(val => {
this.profile.emails.indexOf(val.email_address) < 0 ? this.emailArray.splice(val,1) : '';
});