```typescript
/** Returns the division of `a` by `b`, throwing if either is invalid. */
export function safeDivide(a: number, b: number): number {
  if (typeof a !== 'number' || typeof b !== 'number') {
    throw new Error('Both arguments must be numbers.');
  }
  
  const divisor = Number(b);
  if (isNaN(divisor) || !isFinite(divisor)) {
    throw new Error('Divisor cannot be zero or NaN.');
  }
  
  return a / divisor;
}
```