如何从常规字符串构造模板字符串?
How can I construct a Template String from a regular string?
所以我有这个 string
:
var name = "Chaim";
var templateStr = "Hello, my name is ${name}";
如何将其转换为模板字符串,以便结果等于:
var template = `Hello, my name is ${name}`;
有没有办法以编程方式构建模板文字?
Is there a way to programmatically construct a Template literal?
没有。 "programmatically" 和 "literal" 是对立的(除非你在编译器领域)。
模板字符串 最好命名为内插字符串文字 左右。请do not confuse them with templates。如果您想为模板使用动态创建的字符串,请使用您选择的模板引擎。
当然,模板字面量可能有助于实现这些,你可能会逃避一些简单的事情,如
function assemble(literal, params) {
return new Function(params, "return `"+literal+"`;"); // TODO: Proper escaping
// ^^^^^^^^ working in real ES6 environments only, of course
}
var template = assemble("Hello, my name is ${name}", "name");
template("Chaim"); // Hello, my name is Chaim
所以我有这个 string
:
var name = "Chaim";
var templateStr = "Hello, my name is ${name}";
如何将其转换为模板字符串,以便结果等于:
var template = `Hello, my name is ${name}`;
有没有办法以编程方式构建模板文字?
Is there a way to programmatically construct a Template literal?
没有。 "programmatically" 和 "literal" 是对立的(除非你在编译器领域)。
模板字符串 最好命名为内插字符串文字 左右。请do not confuse them with templates。如果您想为模板使用动态创建的字符串,请使用您选择的模板引擎。
当然,模板字面量可能有助于实现这些,你可能会逃避一些简单的事情,如
function assemble(literal, params) {
return new Function(params, "return `"+literal+"`;"); // TODO: Proper escaping
// ^^^^^^^^ working in real ES6 environments only, of course
}
var template = assemble("Hello, my name is ${name}", "name");
template("Chaim"); // Hello, my name is Chaim