ES-6'da Etiketli Şablon deniyor onlar hakkında daha fazla bilgi okunabilir Burada , komik bağlantıyı çok sohbetin yıldızlı bölümünde buldum.
Ancak kodun ilgili kısmı aşağıdadır (temelde filtrelenmiş bir sıralama oluşturabilirsiniz).
function tag(strings, ...values) {
assert(strings[0] === 'a');
assert(strings[1] === 'b');
assert(values[0] === 42);
return 'whatever';
}
tag `a${ 42 }b`
Temel olarak, başka herhangi bir işlevde olduğu gibi, sadece "1" 'i console.log işlevi ile etiketlemektedir. Etiketleme işlevleri, şablon dizgelerinin çözümlenmiş değerlerini ve üzerinde başka görevlerin gerçekleştirilebileceği değerleri ayrı ayrı kabul eder.
Babel yukarıdaki kodu şuraya aktarır:
var _taggedTemplateLiteralLoose = function (strings, raw) { strings.raw = raw; return strings; };
console.log(_taggedTemplateLiteralLoose(["1"], ["1"]));
Yukarıdaki örnekte görebileceğiniz gibi, babel tarafından aktarıldıktan sonra, etiketleme işlevine (console.log) aşağıdaki es6-> 5 aktarılmış kodun dönüş değeri iletilmektedir.
_taggedTemplateLiteralLoose( ["1"], ["1"] );
Bu işlevin dönüş değeri, daha sonra diziyi yazdıracak olan console.log'a iletilir.