/**
 * 安全数字转换工具
 */

/** 安全地将字符串转为整数，NaN 时返回默认值或抛出错误 */
export function safeParseInt(value: string | number | undefined | null, defaultValue?: number): number {
  if (value === undefined || value === null) {
    if (defaultValue !== undefined) return defaultValue;
    throw new Error('值不能为空');
  }
  const num = typeof value === 'number' ? Math.floor(value) : parseInt(value, 10);
  if (isNaN(num)) {
    if (defaultValue !== undefined) return defaultValue;
    throw new Error(`无法解析为数字: ${value}`);
  }
  return num;
}
