繁体   English   中英

如何使用扩展运算符将属性添加到 Typescript 中的内部 Object ?

[英]How can i add a property to an inner Object in Typescript with spread operator?

我有关注 Object

let car = { year: 2004, type: {name: "BMW"} }

现在我想向内部 object“类型”添加一个属性。 我想使用扩展运算符,因为我需要一个新的 object,因为现有的是不可变的 state object。 结果应该是:

{ year: 2004, type: {name: "BMW", modell: "3er"}}

我怎样才能做到这一点?

const car = { year: 2004, type: {name: "BMW"} };
const modifiedCar = {...car, type: {...car.type, modell: "3er"}};

尝试这个 :

(不是一成不变的)

 let car = { year: 2004, type: {name: "BMW"} } // changed Object.assign(car.type, {modell: "3er"}); console.log(car) 

(不变)

 let car = { year: 2004, type: {name: "BMW"} } // still the same const result = Object.assign({}, car, {type:{...car.type, modell: "3er"}}); console.log(result) 

我想向这个 object 添加另一个变量,如您所见,它嵌套得很深。

const functionParams = {
    handler,
    runtime,
    environment: {
        variables: {
            restrictedActions: config.restrictedActions
        }
    }
}

我是这样实现的:

const newFunctionParams = {...functionParams, environment: {
    ...functionParams.environment, variables: {
        ...functionParams.environment.variables,
            APIAllowEndpoint: `https://severless....`,
            APIDenyEndpoint: `https://severless....`,
            TOPIC: topicArn
    }
}}

结果:

{
    handler,
    runtime,
    environment: {
        variables: {
            restrictedActions: config.restrictedActions,
            APIAllowEndpoint: `https://severless....`,
            APIDenyEndpoint: `https://severless....`,
            TOPIC: topicArn
        }
    }
}

感谢@chelmertz

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM