intermediate

unknown, any и never

unknown, any и never на границах доверия, escape hatches и exhaustive checks.

`unknown` означает, что value существует, но требует проверки перед использованием. `any` отключает type checking и должен быть isolated в маленьких adapters. `never` представляет impossible values или unreachable paths — полезен для exhaustive checks и functions that always throw.

Cast `unknown` сразу к target type без validation — это `any` с лишними шагами. Reachable `never` branch сигналит broken union model.

На интервью: объясняйте на конкретном примере и называйте, что проверяют в production code.

Типовые ошибки: путать похожие API и забывать edge cases в live coding.

Компромисс часто между ясностью и безопасностью или expressiveness и maintainability. Чеклист:

  • unknown для external data.
  • Validation перед access.
  • Изолируйте any.
  • never для exhaustive checks.