Skip to content
51 / 58

Как работает type narrowing в switch/case?

TypeScript автоматически сужает discriminated union внутри каждой ветки switch/case по значению дискриминанта (общего литерального поля). В каждом case TypeScript знает точный вариант union. После exhaustive switch (когда покрыты все варианты) в default тип сужается до never, что позволяет реализовать exhaustive check и гарантировать обработку всех случаев на этапе компиляции.

Как работает type narrowing в switch/case? | JScriptiser