显示金额时如何隐藏null空值同时正常展示数字0
问题原因
你代码中的判断条件val === null || !val存在逻辑漏洞:数字0属于JS/TS的假值,!val对0的判断结果为true,导致0被误拦截,返回了空字符串。
修复方案
调整判断逻辑,仅拦截null和undefined两类空值,放过合法数字0即可,修改后代码如下:
/** * Transform values * @param val 数字类型,支持传入null/undefined * @return 格式化后的金额字符串 */ public transformAmount(val: number | null | undefined) { // 仅匹配null和undefined,不会误判0、空字符串等其他假值 if (val == null) { return ''; } else { return val.toLocaleString('de-DE', { maximumFractionDigits: 1, minimumFractionDigits: 1 }); } }
补充说明
val == null是JS/TS的常用简写,等价于val === null || val === undefined,刚好匹配你需要隐藏的空值场景,不会影响0等合法数字的正常展示。
内容的提问来源于stack exchange,提问作者user10114552
相关产品推荐
相关产品推荐

