LabEG / Serializable

Small library for deserialization and serialization for javascript and typescript
MIT License
62 stars 10 forks source link

fixed a mapping bug for recursive objects #10

Closed creative-developer closed 1 year ago

creative-developer commented 1 year ago

Привет, примите пожалуйста PR, если все ок. Есть проблема с рекурсивными объектами, то что я добавил решает проблему.

LabEG commented 1 year ago

Привет. Судя по тесту в библиотеке нету бага. Проблема в описании типа данных в файле tests\models\Task.ts на строчке:

    @jsonProperty([Task])
    public subTasks: Task[] | null = null;

Дело в том что в json данные имеют тип Task[] | null. Библиотека, в дефолтном поведение, выдает исключение что пришел неизвестный тип null.

Для исправления ошибки в модели необходимо описать тип аналогично типу в json:

    @jsonProperty([Task], null)
    public subTasks: Task[] | null = null;

При таком описании тест проходит исправно и без доработки библиотеки. Json успешно десериализуется в Task.