Skip to content

template

字符串模板替换函数,使用占位符进行文本替换,支持嵌套属性访问。

函数签名

typescript
function template(
  template: string,
  data: Record<string, any>,
  options?: TemplateOptions
): string

interface TemplateOptions {
  placeholder?: string | RegExp  // 占位符模式,默认 /{{([^}]+)}}/g
  defaultValue?: string          // 默认值,默认 ''
}

参数

参数名类型必填默认值说明
templatestring-模板字符串,使用 {{key}} 作为占位符
dataRecord<string, any>-替换数据对象
options.placeholderstring | RegExp/{{([^}]+)}}/g自定义占位符模式
options.defaultValuestring''当属性不存在时使用的默认值

返回值

类型说明
string替换后的字符串

工作原理

  1. 使用正则表达式匹配模板中的所有占位符(默认为 {{key}}
  2. 对每个占位符,提取其中的 key 值并去除空格
  3. 使用 . 分割 key,支持嵌套属性访问(如 user.name
  4. 逐级访问数据对象获取对应的值
  5. 如果值不存在(null 或 undefined),使用 defaultValue 替换
  6. 将获取到的值转换为字符串并替换占位符
  7. 返回替换后的完整字符串

支持数组的 .length 属性访问,但不支持数组索引访问。