Przejdź do głównej zawartości

Specjalny typ never

Gdy zmienna zostanie zawężona do typu, który nie może zawierać żadnych wartości, kompilator TypeScript wywnioskuje, że zmienna musi być typu never. Dzieje się tak, ponieważ typ never reprezentuje wartość, której nigdy nie można utworzyć.

const printValue = (val: string | number) => {
if (typeof val === 'string') {
console.log(val.toUpperCase());
} else if (typeof val === 'number') {
console.log(val.toFixed(2));
} else {
// val ma tutaj typ never, ponieważ nie może być niczym innym niż ciągiem znaków lub liczbą
const neverVal: never = val;
console.log(`Unexpected value: ${neverVal}`);
}
};