小编典典

将字符串转换为模板字符串

all

是否可以将模板字符串创建为通常的字符串,

let a = "b:${b}";

然后将其转换为模板字符串,

let b = 10;
console.log(a.template()); // b:10

没有eval,new Function和其他动态代码生成方式?


阅读 55

收藏
2022-07-02

共1个答案

小编典典

在我的项目中,我用 ES6 创建了类似的东西:

String.prototype.interpolate = function(params) {
  const names = Object.keys(params);
  const vals = Object.values(params);
  return new Function(...names, `return \`${this}\`;`)(...vals);
}

const template = 'Example text: ${text}';
const result = template.interpolate({
  text: 'Foo Boo'
});
console.log(result);
2022-07-02