TypeScript 高级类型技巧与应用
在 TypeScript 中,使用联合类型、交叉类型和字面量类型可以更轻松地定义复杂的模型。以下将深入探讨几个重要的 TypeScript 类型相关技巧和问题解决方案。
1. 用可区分联合类型明确定义模型
在建模联合类型时,部分类型的属性可能存在大量重叠,这使得在控制流中区分它们变得繁琐。
问题描述 :
假设为图形软件定义各种形状,最初的定义如下:
type Circle = {
radius: number;
};
type Square = {
x: number;
};
type Triangle = {
x: number;
y: number;
};
type Shape = Circle | Triangle | Square;
计算面积的函数:
function area(shape: Shape) {
if ("radius" in shape) {
// shape is Circle
return Math.PI * shape.radius * shape.radius;
} else if ("y" in shape) {
// shape is Triangle
return (shape.x * shape.y) / 2;
} else {
// shape is Square
超级会员免费看
订阅专栏 解锁全文
1312

被折叠的 条评论
为什么被折叠?



