/** * 通用字段兼容工具函数:处理驼峰/下划线命名的字段取值 * @param obj 目标对象(如商品信息 BaseCartItem) * @param camelCaseKey 驼峰命名字段(如 'isTemporary') * @param snakeCaseKey 下划线命名字段(如 'is_temporary') * @param defaultValue 默认值(默认 false,适配布尔类型字段) * @returns 字段值(优先取存在的字段,无则返回默认值) */ export function getCompatibleFieldValue( obj: Record, camelCaseKey: string, snakeCaseKey: string, defaultValue: boolean = false ): boolean { // 优先判断驼峰字段(如果存在且不是 undefined/null) if ( obj.hasOwnProperty(camelCaseKey) && obj[camelCaseKey] !== undefined && obj[camelCaseKey] !== null ) { return Boolean(obj[camelCaseKey]); } // 再判断下划线字段 if ( obj.hasOwnProperty(snakeCaseKey) && obj[snakeCaseKey] !== undefined && obj[snakeCaseKey] !== null ) { return Boolean(obj[snakeCaseKey]); } // 都不存在时返回默认值(布尔类型字段默认 false) return defaultValue; }