33 lines
1.1 KiB
TypeScript
33 lines
1.1 KiB
TypeScript
/**
|
||
* 通用字段兼容工具函数:处理驼峰/下划线命名的字段取值
|
||
* @param obj 目标对象(如商品信息 BaseCartItem)
|
||
* @param camelCaseKey 驼峰命名字段(如 'isTemporary')
|
||
* @param snakeCaseKey 下划线命名字段(如 'is_temporary')
|
||
* @param defaultValue 默认值(默认 false,适配布尔类型字段)
|
||
* @returns 字段值(优先取存在的字段,无则返回默认值)
|
||
*/
|
||
export function getCompatibleFieldValue(
|
||
obj: Record<string, any>,
|
||
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;
|
||
} |