在Angular / TypeScript中工作时,有一个小问题:假设我有一个带有嵌套对象的已定义对象和一个空白构造函数。 (在这种情况下,它来自软件包,因此我无法对其进行编辑;否则,我将添加一个构造函数。)
目前,我是这样初始化它的:
var childObj = new ChildObj();
childObj.ChildProp = 'my child prop';
var myObj = new MyObj();
myObj.Prop1 = 'foo';
myObj.Prop2 = 'bar';
myObj.ChildProp = childObj;
是否有较简单的方法来实现上述目的?我认为对象初始化语法在JS / TypeScript中不起作用。我很想使用这种语法:
var myObj = new MyObj {
Prop1 = 'foo',
Prop2 = 'bar',
ChildObj = new ChildObj {
childObj.ChildProp = 'my child prop'
}
};
答案 0 :(得分:1)
尝试一下:
let myObj = {
prop1: 'foo',
pop2: 'bar',
childObj: {
childProp: 'my child prop'
}
} as MyObj;
答案 1 :(得分:0)
您可以使用传播:
var myObj = { ...(new MyObj()), Prop1: "foo", Prop2: "bar", ChildObj: { ...(new ChidlObj()), ChildProp: "my child prop" } };