如何将switch case语句转换为基于键值对的lookup table查找表
Switch Case 转查找表(Lookup Table)实现方案
你可以通过定义常量键值对对象作为查找表,直接匹配编码返回对应结果,改造后的代码如下:
// 常量查找表:key为联系类型编码,value为对应显示标题 const CONTACT_TYPE_LOOKUP: Record<string, string> = { 'SiteApp_CACFP_PrincipleDirector': 'Principle Director', 'SiteApp_CACFP_PrincipleAsstDir': 'Principle Assistant Director', 'SiteApp_CACFP_Cook': 'Cook' } getContactTypeTitle(contactTypeCode: string): string { // 匹配查找表,无匹配项时返回默认值 return CONTACT_TYPE_LOOKUP[contactTypeCode] ?? 'Site Contact'; }
方案优势
- 逻辑与配置分离:后续需要新增联系类型时,只需要在
CONTACT_TYPE_LOOKUP中新增对应的键值对即可,不需要修改方法核心逻辑,维护成本更低 - 完全兼容原有逻辑:空值合并运算符
??只会在查找表无对应匹配项时返回默认值Site Contact,和原switch case的执行结果完全一致 - 代码更简洁易读:去掉了冗余的break语句和分支判断,整体逻辑更直观
- 可扩展类型校验:如果你的
contactTypeCode是固定枚举值,可以进一步收窄查找表的key类型为联合类型,获得TS的类型校验和自动补全能力,降低编码出错概率
内容的提问来源于stack exchange,提问作者bootsy1974
相关产品推荐
相关产品推荐

