我需要创建一个复杂的对象,该对象的值需要计算或从另一个对象复制。
我需要创建的对象
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})
这样的不可读代码?
答案 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*/};