```ts
/**
a divided by b.
*/
export function safeDivide(a: number, b: number): number {
  if (b === 0 || isNaN(b) || a % 1 !== 0 && isNaN(a)) {
    throw new Error('Cannot divide by zero or NaN');
  }
  return a / Number(b);
}
```