Подтвердить что ты не робот

Как я могу построить строку шаблона из регулярной строки?

Итак, у меня есть этот string:

var name = "Chaim";
var templateStr = "Hello, my name is ${name}";

Как преобразовать его в строку шаблона так, чтобы результат был равен:

var template = `Hello, my name is ${name}`;

Есть ли способ программно построить литерал шаблона?

4b9b3361

Ответ 1

Есть ли способ программно построить литерал шаблона?

Нет. "программно" и "буквально" являются антипатичными (за исключением того, что вы находитесь в сфере компиляторов).

Строки шаблонов должны быть лучше названы интерполированными строковыми литералами или так. не путать их с шаблонами. Если вы хотите использовать динамически созданные строки для шаблонов, используйте механизм шаблонов по вашему выбору.

Разумеется, шаблонные литералы могут помочь в реализации таких, и вы можете уйти от чего-то простого, как

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