template es6 concatenate concatenar javascript ecmascript-6 template-strings

javascript - es6 - ¿Cómo puedo construir una cadena de plantilla a partir de una cadena normal?



template string javascript html (1)

Esta pregunta ya tiene una respuesta aquí:

Así que tengo esta string :

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

¿Cómo puedo convertirlo en una cadena de plantilla para que el resultado sea igual a:

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

¿Hay una manera de construir un literal de plantilla mediante programación?


¿Hay una manera de construir un literal de plantilla mediante programación?

No. "programáticamente" y "literal" son antitéticos (excepto que estás en el reino de los compiladores).

Las cadenas de plantillas deberían haber sido nombradas literales de cadenas interpoladas más o menos. Por favor no los confunda con plantillas . Si desea usar cadenas creadas dinámicamente para plantillas, use un motor de plantillas de su elección.

Por supuesto, los literales de plantilla pueden ayudar con la implementación de los mismos, y puede salirse con la suya con algo tan simple como

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