foundation
Optional и readonly fields
Partial data, immutable contracts, patch objects и семантика exact optional properties.
Optional поля (`?`) описывают свойства, которые могут отсутствовать. `readonly` ограничивает присваивание через этот type view; он не делает deep-freeze на рантайме. Modifiers встречаются в DTO, patch payloads, React props и конфигурации.
С `exactOptionalPropertyTypes` optional не всегда равен `T | undefined`. `Partial<T>` строит patch shapes; `Readonly<T>` делает top-level свойства readonly.
type Patch = Partial<Pick<User, 'name' | 'email'>>;
На интервью: отличайте absent от undefined, объясните shallow immutability и `Readonly` vs runtime freezing.
Типовые ошибки: путать похожие API и забывать edge cases в live coding.
Компромисс часто между ясностью и безопасностью или expressiveness и maintainability. Чеклист:
- Absent vs undefined.
- Readonly compile-time и shallow.
- Partial для patch shapes.