问题描述
TypeScript 版本:^3.5.3
对于这个json
const pdfjs = await import('pdfjs-dist/build/pdf');
const pdfjsWorker = await import('pdfjs-dist/build/pdf.worker.entry');
pdfjs.GlobalWorkerOptions.workerSrc = pdfjsWorker;
它可以更改为具有扩展语法的新标题
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"
}
]
}
}
的值。试过
title
它会破坏预定义的 json 模式:
const newConfig = {
...config,articleConfig: {
configs: [
{
title: "A new day"
}
]
}
那么有没有一种简单的方法可以只覆盖这种 json 中的一项?
解决方法
const oldConfig = { /* ... */ };
const newConfig = {
...oldConfig,articleConfig: {
...oldConfig.articleConfig,configs: config.configs.map(config => ({
...config,title: "A new day"
}))
};