Доки по разработке
This project is maintained by teniryte
MutableKeys: частичная мутация свойствПринципы
MutableKeys<T, Keys> снимает readonly только с перечисленных ключей, оставляя остальные неизменяемыми.Пример
import { MutableKeys } from 'ts-cookbook';
interface ImmutablePerson {
readonly name: string;
readonly age: number;
readonly isPremium: boolean;
}
const person: MutableKeys<ImmutablePerson, 'age' | 'isPremium'> = {
name: 'Eric',
age: 34,
isPremium: false,
};
person.age = 35; // OK
person.isPremium = true; // OK
// person.name = 'Erik'; // Ошибка: поле осталось readonly
Практика
MutableKeys, когда нужно обновлять только часть полей сущности (например, статус и таймстемпы).ReadonlyKeys.