Комментарии 6
Для многих это покажется спорной точкой зрения, но если вам нужно глубокое клонирование на любом ЯП, то вы что-то делаете не так. И возможно вам нужны иммутабельные объекты и COW и/или плоское копирование таких объектов (через spread operator например).
Но в is нет иммутабельных объектов. Более того нужно всегда помнить как это все работает чтобы случайно не изменить передаваемый объект где-то в глубине кода.
Все эти библиотеки для иммутабельности не а счет, это доп геморрой на самом деле.
Разве в JS нет из коробки Object.freeze а в TS Readonly{}? Зачем что-то помнить когда есть типы которые могут это выразить в коде.
После того, как я день дебажил волшебное превращение юидов в 16 бит массив, а потом Оказалось, что это клонирование крошит классы - больше не использую))
Клонируем правильно: structuredClone() в JS