```ts
export function splitLength(mm: number): string {
  if (!Number.isInteger(mm) || mm < 0) {
    throw new Error("Invalid length");
  }

  const m = Math.floor(mm / 1000);
  const cm = Math.floor((mm % 1000) / 10);
  const mmPart = mm % 10;

  const parts: string[] = [];
  if (m > 0) parts.push(`${m}m`);
  if (cm > 0) parts.push(`${cm}cm`);
  if (mmPart > 0 || parts.length === 0) parts.push(`${mmPart}mm`);

  return parts.join(" ");
}
```