Доки по разработке
This project is maintained by teniryte
Mutable: снятие readonlyПринципы
Mutable<T> снимает модификатор readonly со всех свойств типа T.Пример
import { Mutable } from 'ts-cookbook';
interface ImmutablePerson {
readonly name: string;
readonly age: number;
}
const immutablePerson: ImmutablePerson = { name: 'Danny', age: 50 };
// immutablePerson.age = 51; // Ошибка
const person: Mutable<ImmutablePerson> = { name: 'Eric', age: 34 };
person.age = 35; // ОК
Практика
Mutable только локально, чтобы не потерять гарантию неизменяемости на уровне API.readonly используйте кастомные типы (MutableKeys<T, K>).Mutable влияет только на типы; в runtime объект может быть по-прежнему заморожен (Object.freeze).