TypeScript: более простой способ инициализации вложенных объектов? - PullRequest
0 голосов
/ 08 мая 2019

Работа в 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 ]

1 голос
/ 08 мая 2019

Попробуйте это:

let myObj = {
    prop1: 'foo',
    pop2: 'bar',
    childObj: {
        childProp: 'my child prop'
    }
} as MyObj;
0 голосов
/ 08 мая 2019

Вы можете использовать спред:

var myObj =  { ...(new MyObj()), Prop1: "foo", Prop2: "bar", ChildObj: { ...(new ChidlObj()), ChildProp: "my child prop" } };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...