```ts
/**
 * Returns the division of `a` by `b`.
 */
export function safeDivide(a: number, b: number): number {
  if (typeof b !== 'number') {
    throw new Error('Cannot divide by non-numeric value');
  }
  if (!isFinite(b)) {
    throw new Error('Cannot divide by NaN or Infinity');
  }
  if (!isFinite(a) || typeof a === 'boolean' || typeof a === 'string') {
    throw new Error('Cannot divide by non-finite number or falsey value');
  }
  return a / b;
}
```