TypeScript:初始化嵌套对象的更简单方法?

时间:2019-05-08 00:02:32

标签: javascript typescript function object ecmascript-6

在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'
    }
};

2 个答案:

答案 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" } };