intermediate
Strict mode и inference
Strict compiler options и local inference против unsafe nulls, implicit any и слабых контрактов.
Strict TypeScript переносит common runtime risks в compile-time feedback: null handling, implicit `any`, unchecked property access и weak function types. Хороший код позволяет inference работать локально вместо annotations everywhere, которые случайно widen useful literals.
Аннотируйте public API boundaries и recursive functions, где inference не справляется. Отключение strict для silence errors скрывает design issues.
const routes = { api: '/v1' } as const; // сохраняет literal type
На интервью: объясняйте на конкретном примере и называйте, что проверяют в production code.
Типовые ошибки: путать похожие API и забывать edge cases в live coding.
Компромисс часто между ясностью и безопасностью или expressiveness и maintainability. Чеклист:
- Strict enabled.
- Annotate boundaries, не каждый local.
- Nullability intentional.