web-dev-qa-db-ja.com

通常の文字列からテンプレート文字列を作成するにはどうすればよいですか?

だから私はこれを持っていますstring

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

結果が次のようになるように、テンプレート文字列に変換するにはどうすればよいですか。

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

テンプレートリテラルをプログラムで作成する方法はありますか?

21
haim770

テンプレートリテラルをプログラムで作成する方法はありますか?

いいえ。「プログラム的に」と「リテラル」は正反対です(コンパイラの領域にいる場合を除く)。

テンプレート文字列には、補間された文字列リテラルなどの名前を付ける必要があります。 テンプレートテンプレート と混同しないでください。テンプレートに動的に作成された文字列を使用する場合は、選択したテンプレートエンジンを使用します。

もちろん、テンプレートリテラルはそのような実装に役立つかもしれません、そしてあなたは次のような単純なもので逃げるかもしれません

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
30
Bergi