コンテンツにスキップ

never 型について

変数が値をまったく含められない型まで絞り込まれると、TypeScript コンパイラはその変数が never 型でなければならないと推論します。これは、never 型が決して生成されることのない値を表すためです。

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 は string または number 以外になり得ないため、ここでは never 型
const neverVal: never = val;
console.log(`Unexpected value: ${neverVal}`);
}
};