Сообщение от Malleys
|
А кто будет отлавливать исключения?
Когда нет совпадения, что скопировать, то должен возвращаться исходный объект без изменении
|
Спасибо за комментарий. Немного переписал функцию. Теперь если целевого объекта нет в объекте данных, то возвращает оригинальный объект данных.
Сообщение от Malleys
|
Фактически вы ничего не меняете в объекте, зачем нам нужен новый объект, в котором ничего не изменено. Это очень не очевидное API, которое способствует ошибкам. Используйте immer, в котором происходит копирование только при реальных изменениях! В отличие от вашего небезопасного кода, в immer исходный объект не изменяется и при одинаковых аргументах, выдаётся одинаковый результат.
|
По логике моей функции сначала создаётся копия объекта данных, а затем меняется. Но сейчас мне кажется вы правы и следует сделать еще один аргумент и сразу передавать изменённый объект данных.
А immer мне не подходит потому что в моём случае не известен полный путь до объекта, который будет изменён.