类型定义
// 定义点的类型
type Point = [number, number];
// 定义点数组的类型
type PointArray = Point[];
函数实现
function calculatePerimeter(points: PointArray): number {
let perimeter = 0;
for (let i = 0; i < points.length; i++) {
const currentPoint = points[i];
const nextPoint = points[(i + 1) % points.length];
const dx = nextPoint[0] - currentPoint[0];
const dy = nextPoint[1] - currentPoint[1];
perimeter += Math.sqrt(dx * dx + dy * dy);
}
return perimeter;
}
设计优势
- 类型安全:使用TypeScript的类型系统,在编译时就能捕获传入参数类型错误。例如,如果传入的不是
PointArray
类型的数据,编译器会报错,从而避免运行时错误。
- 代码可读性:明确的类型定义使代码更易读,其他开发者能清楚知道函数的参数和返回值的类型。
- 运行时效率:函数实现中,使用基本的算术运算和循环来计算周长,没有引入复杂的数据结构或操作,保证了运行时的高效性。在处理大量点时,这种简单直接的实现方式能有效减少计算资源的消耗。