```typescript
/** The factorial of n. */
/**
 * Calculates the factorial of a given number.
 *
 * @param n - A non-negative integer argument.
 */
export function factorial(n: number): number {
  if (typeof n !== 'number' || !Number.isInteger(n) || n < 0) {
    throw new Error('Argument must be a non-negative integer.');
  }

  return n === 0 ? 1 : n * factorial(n - 1);
}
```