在typescript / Mapping嵌套对象字段

时间:2018-04-06 14:53:09

标签: javascript typescript

在我需要编辑深层嵌套对象的打字稿之前,我会这样做:



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;
&#13;
&#13;

但是现在使用Typescript I当我克隆对象并将其分配给我的转换返回类型时,我当然会遇到类型错误。

打字稿是否正确告诉我改变克隆对象,这样做不好?

如果是,我如何映射这样的对象,同时保留所有对象值和键,只转换深层嵌套的值和/或键?

如果没有,我如何在没有类型错误的情况下兼顾它?

0 个答案:

没有答案