Dev Highlights

Доки по разработке

This project is maintained by teniryte

MutableKeys: частичная мутация свойств

Принципы

Пример

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

Практика