Как реализовать exhaustive checks в TypeScript?

Senior
226 просмотров
AFK Offer AI

Exhaustive check гарантирует что все варианты union типа обработаны. Паттерн через never: function assertNever(x: never): never { throw new Error(Unexpected: ${x}) }. В switch: default: assertNever(shape) — если добавили новый вариант в union и не добавили case, TypeScript выдаст ошибку. Это compile-time защита от пропущенных кейсов. Полезно в: event handlers, state machines, dispatch функциях. Аналог match expression из других языков.

Следующий вопрос

Что такое Plugin Architecture в Node.js?