假设我有一个现有的对象obj1 = {a: 'A', b: 'B', c: 'C', d: 'D'}
我有另一个对象,例如obj2 = {b: 'B2', c: 'C2', d: 'D2', e: 'E2'}
现在我想有选择地将只有几个属性的值从 复制obj2
到obj1
,对于 中的其余属性obj1
,我希望它们保持不变。
现在,假设我想复制 propertiesb
和d
. 我想做类似的事情
obj1 = {a: 'A', b: 'B', c: 'C', d: 'D'};
obj2 = {b: 'B2', c: 'C2', d: 'D2', e: 'E2'};
copyPropertyvalues(
obj2, // source
obj1, // destination
[obj2.b, obj2.d] // properties to copy >> see clarification below
); // should result in obj1 = {a: 'A', b: 'B2', c: 'C', d: 'D2'}
这个方法怎么写?请注意,我也不想将属性列表作为字符串提供,因为我希望尽可能保证编译时安全。
所以这里的基本问题是:
- 仅从对象复制几个属性值
- 复制到现有对象而不创建新对象
- 在目标对象中保留其他属性值
- 避免使用字符串作为属性名称(如)并尽可能
'b', 'd'
利用安全性TypeScript
基于评论的澄清:
当我obj2.b
在(伪)代码示例中说左右时
- 我不是字面意思
obj2.b
- 而是在编译时检查
b
实际上是obj2
's 类型的属性的某种方法