如何在对象的TypeScript中使用Spread运算符进行组合

如何在对象的TypeScript中使用Spread运算符进行组合,typescript,spread,Typescript,Spread,我需要使用Spread操作符向对象添加值。但是当我使用它时,以前的值会从对象中删除 我的目标是 let newObj = { name: 'sachin', lastname: 'Tendulkar', full_name: 'Sachin Ramesh Tendulkar', test: { test_debut: '15 November 1989 v Pakistan' }, odi: { odi_debut: '18 December 1989 v Pakistan' }, t2

我需要使用Spread操作符向对象添加值。但是当我使用它时,以前的值会从对象中删除

我的目标是

let newObj = {
name: 'sachin',
lastname: 'Tendulkar',
full_name: 'Sachin Ramesh Tendulkar',
test: {
  test_debut: '15 November 1989 v Pakistan'
},
odi: {
  odi_debut: '18 December 1989 v Pakistan'
},
t20: {
  t20_debut: '1 December 2006 v South Africa'
}
}
对于这个对象,我需要添加更多的值

{
    name: 'sachin',
    lastname: 'Tendulkar',
    full_name: 'Sachin Ramesh Tendulkar',
    Born: '24 April 1973',
    test: {
        debut: '15 November 1989 v Pakistan',
        last_match: '14 November 2013 v West Indies',
        cap: 187
    },
    odi: {
        debut: '18 December 1989 v Pakistan',
        last_match: '18 March 2012 v Pakistan',
        cap: 74
    },
    t20: {
        debut: '1 December 2006 v South Africa',
        last_match: '1 December 2006 v South Africa',
        cap: 11
    }
}
所以我加了一句

const newValues = {
  Born: '24 April 1973',
  test: {
            last_match: '14 November 2013 v West Indies',
            cap: 187
        },
   odi: {
            last_match: '18 March 2012 v Pakistan',
            cap: 74
        },
   t20: {
            last_match: '1 December 2006 v South Africa',
            cap: 11
        }
}
当我使用

newObj = {...newObj , ...newValues };
我没有得到应有的答复

{
    name: 'sachin',
    lastname: 'Tendulkar',
    full_name: 'Sachin Ramesh Tendulkar',
    Born: '24 April 1973',
    test: {
        last_match: '14 November 2013 v West Indies',
        cap: 187
    },
    odi: {
        last_match: '18 March 2012 v Pakistan',
        cap: 74
    },
    t20: {
        last_match: '1 December 2006 v South Africa',
        cap: 11
    }
}

如何在typeScript中修复此问题?您需要分别选择“对象”属性和“其他对象”属性

const obj[key] = [...newObj[key], ...newValues[key]]
到目前为止,它只是用新的属性覆盖你的属性,因为它不会比较它覆盖的键