Как стать автором
Обновить

Комментарии 6

Для многих это покажется спорной точкой зрения, но если вам нужно глубокое клонирование на любом ЯП, то вы что-то делаете не так. И возможно вам нужны иммутабельные объекты и COW и/или плоское копирование таких объектов (через spread operator например).

Но в is нет иммутабельных объектов. Более того нужно всегда помнить как это все работает чтобы случайно не изменить передаваемый объект где-то в глубине кода.

Все эти библиотеки для иммутабельности не а счет, это доп геморрой на самом деле.

Разве в JS нет из коробки Object.freeze а в TS Readonly{}? Зачем что-то помнить когда есть типы которые могут это выразить в коде.

Object.freeze не влияет на вложенные объекты и в любом случае это какой-то неудобный костыль (когда начинаешь им пользоваться, что встречается крайне редко, как по мне).

Удобная иммутабельность, на мой взгляд, сделана в Rust, но это конечно язык другого плана и назначения.

После того, как я день дебажил волшебное превращение юидов в 16 бит массив, а потом Оказалось, что это клонирование крошит классы - больше не использую))

Можете пример написать?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий