```ts
export function legGain(start: number, end: number): number {
  if (start === undefined || start === null) throw new Error("start must be defined");
  if (end === undefined || end === null) throw new Error("end must be defined");

  return Math.abs(end - start);
}

export function climbGain(heights: number[]): number {
  if (!heights || heights.length < 2) return 0;

  let totalGain = 0;
  for (let i = 1; i < heights.length; i++) {
    const gain = legGain(heights[i - 1], heights[i]);
    totalGain += gain;
  }

  return totalGain;
}
```