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.