在我需要编辑深层嵌套对象的打字稿之前,我会这样做:
const obj = {
a1: 'foo1',
b1: [{
c2: 'foo2',
d2: [{
e3: [{
1: 1
}, {
2: 2
}, {
3: 3
}],
f3: 'foo3'
},
{
e3: [{
4: 4
}, {
5: 5
}, {
6: 6
}],
f3: 'bar3'
}
]
}]
};
const objClone = _.cloneDeep(obj);
_.each(objClone.b1, b1 => {
_.each(b1.d2, d2 => {
d2.e3 = _.map(d2.e3, (key, value) => {
return {
number: value.toString()
}
});
});
});
console.log(objClone);

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>
&#13;
但是现在使用Typescript I当我克隆对象并将其分配给我的转换返回类型时,我当然会遇到类型错误。
打字稿是否正确告诉我改变克隆对象,这样做不好?
如果是,我如何映射这样的对象,同时保留所有对象值和键,只转换深层嵌套的值和/或键?
如果没有,我如何在没有类型错误的情况下兼顾它?