テンプレート リテラル用の es6 タグ関数を作成しています。これは、最初に文字列内の条件をチェックし、条件が見つからない場合は、テンプレート リテラルをタグ付けされていないかのように解釈するだけです。タグ関数から、ブラウザのネイティブ テンプレート リテラル関数を呼び出す方法があるかどうか興味があります (これは、自分で実装した関数よりも高速であると想定しています)。おまけ: これで、htmlEscape(unindent foobar
);などのタグ構成の機会が得られるのではないでしょうか。
例えば。
function dumbTag(strs, ...vals) {
vals = vals.map((val,i) =>
(i % 2 == 0 ? 'even:' : 'odd:')+val);
return String.template(strs, ...vals);
}
私自身の実装された関数 - ブラウザが行うことを呼び出すためのより高速な方法/方法はありますか?
function template(strs, ...vals) {
let result = strs[0];
for (let [i,val] of vals.entries()) {
result += val;
result += strs[i+1];
}
return result;
}