Javascript 是否有一种简单的方法可以使用TypeScript更改嵌套json数据中的一个值?

Javascript 是否有一种简单的方法可以使用TypeScript更改嵌套json数据中的一个值?,javascript,json,typescript,operators,spread-syntax,Javascript,Json,Typescript,Operators,Spread Syntax,类型脚本版本:^3.5.3 对于此json const config = { id: 1, title: "A good day", body: "Very detailed stories" publishedAt: "2021-01-20 12:21:12" } 它可以更改为新标题,扩展语法如下 const newConfig = { ...config, title: "A new day&qu

类型脚本版本:^3.5.3

对于此json

const config = {
  id: 1,
  title: "A good day",
  body: "Very detailed stories"
  publishedAt: "2021-01-20 12:21:12"
}
它可以更改为新标题,扩展语法如下

const newConfig = {
  ...config,
  title: "A new day"
}
最终的
newConfig
数据将

{
  id: 1,
  title: "A new day",
  body: "Very detailed stories"
  publishedAt: "2021-01-20 12:21:12"
}

但在这种情况下

const config = {
  id: 1,
  articleConfig: {
    version: "2",
    configs: [
      {
        title: "A good day",
        body: "Very detailed stories"
        publishedAt: "2021-01-20 12:21:12"
      }
    ]
  }
}
还想更改
标题的值。尝试

const newConfig = {
  ...config,
  articleConfig: {
    configs: [
      {
        title: "A new day"
      }
    ]
}
它将打破预定义的json模式:

const newConfig: {
    id: number;
    articleConfig: {
        version: string;
        configs: {
            title: string;
            body: string;
            publishedAt: string;
        }[];
    };
}

那么,有没有一种简单的方法可以在这种json中只覆盖一项呢?

记住json就是javascript。在javascript中,对象是可变的。不需要使用不可变样式复制使事情复杂化。TypeScript的版本是
^3.5.3
。那么,如何使新数据库成为当前数据库是什么意思呢?我想知道为什么一切都是常量。您可以克隆对象并对其进行变异。
const oldConfig = { /* ... */ };

const newConfig = {
  ...oldConfig,
  articleConfig: {
    ...oldConfig.articleConfig,
    configs: config.configs.map(config => ({
       ...config,
       title: "A new day"
    }))
};