Ответ
Да, можно использовать never в switch-case для обработки ситуаций, когда все возможные варианты уже учтены, но нужно явно указать, что другие случаи невозможны. Это полезно для exhaustiveness checking (проверки полноты покрытия вариантов).
type Shape = 'circle' | 'square' | 'triangle';
function getArea(shape: Shape): number {
switch (shape) {
case 'circle':
return Math.PI * 10 ** 2;
case 'square':
return 10 * 10;
case 'triangle':
return (10 * 10) / 2;
default:
const _exhaustiveCheck: never = shape;
return _exhaustiveCheck;
}
}
Если добавить новый вариант в Shape, TypeScript выдаст ошибку в default, так как shape перестанет быть never. Это помогает выявлять необработанные случаи на этапе компиляции.