angular - 参数不可分配给我的界面类型
问题描述
我对 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”类型的参数不可分配给“数字”类型的参数。
解决方案
这是解决方案:
this.profile.emails = this.profile.emails.filter(e=>{
return this.contact.shared.emails.find(e1 => e1.email_address===e.email_address) == null
})
推荐阅读
- typescript - 如何向地图添加值
> 在打字稿中? - c# - 自定义 HttpWebRequest 标头大写/小写名称?
- swift - 在 Swift 中打开一个关闭的 NSWindow 会导致应用程序崩溃
- javascript - 通过按钮运行计算函数,更改 CSS 类,通过 v-bind 指令
- python - 以相反的顺序创建包含唯一 ID 的列
- javascript - 使用 date-fns 库获取给定日期之间的小时数
- mfc - 当我从应用程序资源加载 CImageList 时,它正在改变颜色
- parsing - antlr4.7.2,右递归和歧义
- javascript - 如何将 React Hook 传递给子组件
- c - 有没有办法将“最佳类型”浮点常量从微型移植到另一个?