Поскольку вы используете лучше и лучше, я отвечу своим, вероятно, нежелательным, мнением. Отказ от ответственности: я не гуру, этот ответ основан на мнении, не стесняйтесь игнорировать.
Не делайте этого. Ваш сервер имеет наборобъекты в его домене, вероятно, это своего рода решение проблем или область хранения данных.
У вашего клиента есть набор объектов в его домене, обычно ориентированный на представление данных пользователю и предоставление пользователю возможности понимать и манипулировать им.it.
Оба этих домена могут иметь объекты с одинаковыми именами или основанные на одной и той же концепции реального мира.Может быть заманчиво чувствовать, что они - одна и та же область с одними и теми же объектами.Они не.Если бы они были одинаковыми, вы не написали бы клиент и сервер, вы бы написали две одинаковые вещи.Эти два должны общаться с чистыми объектами данных.В TS это означает, что вы должны создавать интерфейс, а не класс, для объектов, которые вы получаете от сервера.
Вместо этого начните сначала.Создайте новый домен, основываясь на том, что вы хотите отобразить в API.Если вы разрабатываете свой API сверху вниз (пользовательский интерфейс) (службы доступа), вы, скорее всего, обнаружите, что у вас нет однозначного сопоставления между объектами.В тех случаях, когда вы это делаете, вы, вероятно, можете избежать неприятностей, связанных со случайным назначением / слиянием (см. Ниже), но я лично никогда не находил причин делать больше, чем вы написали выше.
Если вы будете настаивать, вы можете прийтипо выбору до переназначить прототип в формате JSON буквального из базы object
к классу представляет данные, но это спорный вопрос и потенциальную ловушку производительности. .Лучше всего, вероятно, просто выполнить рекурсивное / глубокое задание, например, merge .
от Lodash.