【发布时间】:2018-10-09 13:45:21
【问题描述】:
我是 Typescript 的新手,我有一个 Angular 项目,我有一个简单的界面:
IEmail {
email_type:string,
email_address:string
}
我有一个简单的方法,基本上比较两个数组的值,如果它发现一个数组中的值等于另一个数组中的值,它会拼接出那个值。
我用来执行此操作的代码是:
this.contact.shared.emails.map((val)=> {
this.profile.emails.indexOf(val.email_address) < -1 ? this.emailArray.splice(val, 1) : '';
});
其中 'val' 的类型为
我的问题在于:
this.profile.emails.indexOf(val.email_address) < -1 ? this.emailArray.splice(val, 1) : '';
我收到一个错误:(val.email_address),因为此值是<IEmail> 接口类型的字符串参数。
所以我得到的错误是
'字符串类型的参数不能分配给参数类型 IEmail”。
我该如何解决这个问题???
顺便说一句,我确实注意到我可以通过将界面中的参数类型更改为“any”与“string”来消除该错误,但这会带来一个新错误,其中的“val”行:
this.emailArray.splice(val, 1)
产生错误:'IEmail' 类型的参数不可分配给'number' 类型的参数。
【问题讨论】:
-
谢谢,fateme,但这没有用。同样的错误...
-
第二个错误是因为val是
'IEmail'类型而splice()需要number。 -
分两步做,先得到indexof再拼接那个数字
标签: angular typescript typescript-typings