intermediate
Типизация API, React и Node-сервисов
External data, props, events, handlers, service boundaries и runtime validation.
Application TypeScript сильнее всего на boundaries: parse API responses из `unknown`, type React props и events explicit для public contracts, моделируйте Node service inputs/outputs. Runtime validation дополняет static types, потому что remote data can lie.
Generic `fetch<T>`, который casts JSON к `T`, unsafe без validation. Shared backend/frontend types drift без generation или validation на boundary.
const data: unknown = await response.json();
const user = userSchema.parse(data);
На интервью: объясняйте на конкретном примере и называйте, что проверяют в production code.
Типовые ошибки: путать похожие API и забывать edge cases в live coding.
Компромисс часто между ясностью и безопасностью или expressiveness и maintainability. Чеклист:
- Parse external data.
- Type public props.
- Избегайте unsafe generic fetch casts.