将一个TypeScript类对象转换为另一个对象,其中只有值改变,键保持不变,可以通过以下步骤实现:
以下是一个示例代码,演示如何实现这个转换过程:
class SourceClass {
public prop1: string;
public prop2: number;
public prop3: boolean;
constructor(prop1: string, prop2: number, prop3: boolean) {
this.prop1 = prop1;
this.prop2 = prop2;
this.prop3 = prop3;
}
}
class TargetClass {
public prop1: string;
public prop2: number;
public prop3: boolean;
constructor(prop1: string, prop2: number, prop3: boolean) {
this.prop1 = prop1;
this.prop2 = prop2;
this.prop3 = prop3;
}
}
function convertObjects(source: SourceClass, target: TargetClass): TargetClass {
const convertedObject = new TargetClass(target.prop1, target.prop2, target.prop3);
for (const key in source) {
if (source.hasOwnProperty(key)) {
if (source[key] !== target[key]) {
convertedObject[key] = source[key];
}
}
}
return convertedObject;
}
// 示例用法
const sourceObject = new SourceClass("value1", 123, true);
const targetObject = new TargetClass("value1", 456, false);
const convertedObject = convertObjects(sourceObject, targetObject);
console.log(convertedObject);
在这个示例中,我们创建了两个类SourceClass
和TargetClass
,它们具有相同的属性。然后,我们定义了一个convertObjects
函数,该函数接受源对象和目标对象作为参数,并返回转换后的目标对象。在函数内部,我们遍历源对象的属性,并将不同的属性值复制到目标对象中。最后,我们使用示例对象进行测试,并打印转换后的目标对象。
请注意,这只是一个简单的示例,实际应用中可能需要根据具体需求进行更复杂的转换逻辑。
领取专属 10元无门槛券
手把手带您无忧上云