跳到主要内容

TypeScript 从不类型

当我们在 ifswitch 中做了彻底的类型区分时,我们可以使用 never 类型来确保这个类型区分一直是彻底的:

type Shape = Circle | Square;

function getArea(shape: Shape) {
switch (shape.kind) {
case "circle":
return Math.PI * shape.radius ** 2;
case "square":
return shape.sideLength ** 2;
default:
const _exhaustiveCheck: never = shape;
return _exhaustiveCheck;
}
}

这个类型也用于不会返回值的函数,也即它们总是抛出错误或中止程序。