gpt4 book ai didi

typescript - 使用 Object.assign() 时如何忽略只有 getter 的属性?

转载 作者:搜寻专家 更新时间:2023-10-30 21:33:20 26 4
gpt4 key购买 nike

我有一个未定义类型的对象源,但表示一个类型化对象。所以我正在使用 Object.assign(target, source)。但是我的类具有 setter/getter 属性(因为它们是其他属性的计算结果)。

一个例子:

source: {
a: 1,
b: 2,
sum: 3
}

class SomeClass {
a: number;
b: number;

get sum(): number {
return a + b;
}
}

someFunction() {
let obj = new SomeClass();
Object.assign(obj, source);
}

在上述情况下,我得到一个错误:无法设置只有 getter 的 [object Object] 的属性总和

有没有办法让 Object.assign() 忽略源对象中的那些属性?

最佳答案

你不能为此使用 Object.assign()because

The Object.assign() method is used to copy the values of all enumerable own properties from one or more source objects to a target object.

换句话说,Object.assign()source 的可枚举属性驱动,不受目标中属性定义方式的影响。

您必须实现自己的函数而不是 Object.assign(),这将跳过目标不可写的属性,或者找到执行此操作的库。

关于typescript - 使用 Object.assign() 时如何忽略只有 getter 的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56086188/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com