在TypeScript中,我有一个基本对象作为模板,我想复制该对象,只更改一个属性,如下所示:
interface user {
name: string,
jobTitle: string
}
const employee: user = {name: 'Liane', jobTitle: 'Web Dev'}
const newEmployee1 = employee;
newEmployee1.name = 'James';
const newEmployee2 = employee;
newEmployee2.name = 'John';
但是,当我在控制台中查看结果时,每个员工的姓名都是“John”,如下所示:
{name: 'John', jobTitle: 'Web Dev'}
{name: 'John', jobTitle: 'Web Dev'}
{name: 'John', jobTitle: 'Web Dev'}
我知道这是由于对象引用,但是我不想引用基础员工,我想克隆它作为独立于其他用户的自己的对象。所以当我控制台记录对象时,我会得到:
{name: 'Liane', jobTitle: 'Web Dev'}
{name: 'James', jobTitle: 'Web Dev'}
{name: 'John', jobTitle: 'Web Dev'}
有什么办法能让我这么做吗?
2条答案
按热度按时间ezykj2lf1#
如果你想克隆一个已有的对象,我建议你使用“spread operator”
ut6juiuv2#
最简单的方法是使用扩展运算符:
或者使用
Object.assign()
:请记住,这两个值都不是深度克隆,并且非基元值共享相同的引用。