请问这类兼容函数回调与静态值的代码模式是否有通用名称?
关于值/回调统一解析函数的技术模式与命名问题
技术模式归类
你实现的函数逻辑属于一种实用工具型模式,没有复杂的专有设计模式名称,通常被称为值解析/解包模式。它的核心作用是统一处理「静态值」和「动态生成值的回调函数」两种输入,最终返回确定结果。这种模式在配置处理、动态内容生成场景中很常见,本质是对懒求值思想的简化应用——允许使用者选择传入直接值或延迟计算的函数,由工具函数统一完成求值动作。
标准命名方式
这类函数的命名围绕「解析、获取、求值」的语义展开,常见的标准命名有:
resolveValue:最直观,明确表示“解析出最终值”unwrap:强调把包裹在函数里的值“解包”出来getValue:直白表达“获取最终值”的目的evaluate:突出对可能的函数进行“求值”操作resolve:若上下文明确只处理值/函数的场景,也可简化使用这个名称
代码示例调整
你的示例代码可以改为:
function resolveValue(val) { return typeof val === 'function' ? val() : val; }
使用场景示例
对应你的Settings场景:
interface Settings { header: string | (() => string) } // 调用示例 console.log(resolveValue(settings.header))
内容的提问来源于stack exchange,提问作者Jose Truyol
相关产品推荐
相关产品推荐

