Доки по разработке
This project is maintained by teniryte
Принципы
Keys2 = 'one' | 'two' | 'three').readonly, ?) добавляются и снимаются через + или -.keyof, чтобы трансформировать существующие типы (Req<T>, Read<T>).Пример
type Keys = 'one' | 'two' | 'three';
type MappedType = {
[K in Keys]: number;
};
type Contact = {
readonly name: string;
email?: string;
};
type Read<T> = { -readonly [K in keyof T]: T[K] };
type Req<T> = { [K in keyof T]-?: T[K] };
const readContact: Read<Contact> = { name: 'Bob', email: 'bob@mail' };
readContact.name = 'Robert';
Практика
Record-подобные типы) из литеральных объединений для типизации словарей.readonly, проверьте, что это не нарушает инварианты бизнес-логики.