如何在打字稿中创建复杂的对象

时间:2019-06-25 06:57:30

标签: javascript typescript

我需要创建一个复杂的对象,该对象的值需要计算或从另一个对象复制。

我需要创建的对象

interface A extends B {
key1: string
key2: {
is's a complex object with many keys
}
}

我使用这些代码

const a: A = Object.assign({}, b); //ts error here
a.key1 = around 10 lines of calc
a.key2 = around 10 lines of calc

但出现错误TS2741: Property 'key1, key2' is missing in type 'a' but required in type 'A'.

是否有一种方法可以在多行中创建对象 而无需编写像Object.assign({}, b, {key1: 10line, key2: 10line})这样的不可读代码?

2 个答案:

答案 0 :(得分:0)

这是我分配复杂变量的一种方式。我没有使用界面来更好地理解。

   let myObject: { key: { subkey: string } } = {key: {subkey: ""}};

    myObject = {
      ...myObject,
      key: { subkey: "value" }
    };

答案 1 :(得分:0)

如果可以使用最新标准,则可以使用对象销毁,这实际上是Object.assign()的主要功能。语法使用三点“ ...”

const a: A = {...b, key1: /*Complex calc*/, key2: /*Complex calc*/};