如何解决从一个对象复制到另一个-仅来自其接口的公共属性的值
我有一个接口(interfaceA
),具有2个属性,另一个(interfaceB
)具有3个属性(数字仅是)。
我已经创建了一个对象(类型:interfaceB
),我想创建另一个对象(类型:interfaceA
),并且仅将通用属性的值从B复制到A。
-
一种解决方案是复制所有字段并删除第三个字段,但我不喜欢这样。
-
另一种解决方案是仅使用我需要的属性创建一个新对象,但我也不喜欢。
在两种解决方案中,如果有人将属性添加到其中一个接口,则我也必须在分配中添加或删除该属性。
我的问题有解决方案吗?
我创建了一个StackBlitz以帮助您更好地理解。
解决方法
这能解决您的问题吗?
function copyValues(objA: interfaceA,objB: interfaceB) {
Object.entries(objB).forEach(([key,value]) => {
if (objA.hasOwnProperty(key)) {
objA[key] = value;
}
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。