Доки по разработке
This project is maintained by teniryte
never и исчерпывающие проверкиПринципы
never сигнализируют о невозможных ветках: передать что-либо кроме never нельзя.default, чтобы компилятор следил за полнотой switch по объединениям.'cancelled') сразу выявляется компилятором через несоответствие never.Пример
function neverReached(never: never) {}
type Status = 'created' | 'waiting' | 'done' | 'cancelled';
function showLog(status: Status) {
switch (status) {
case 'created':
case 'waiting':
case 'done':
console.log(status.toUpperCase());
break;
default:
neverReached(status);
}
}
Практика
assertNever в shared-коде, чтобы не копировать реализацию.as never: приведение скрывает ошибки, вместо этого заполняйте все ветки обработки.