Це називається Tagged Template у ES-6, про них можна було б прочитати більше. Тут , смішно, я знайшов посилання в розділі із зірочками самого чату.
Але відповідна частина коду знаходиться нижче (ви можете в основному створити відфільтрований сорт).
function tag(strings, ...values) {
assert(strings[0] === 'a');
assert(strings[1] === 'b');
assert(values[0] === 42);
return 'whatever';
}
tag `a${ 42 }b`
В основному, це просто позначення "1" функцією console.log, як це було б зроблено з будь-якою іншою функцією. Функції тегування приймають проаналізовані значення рядків шаблонів та значення окремо, за якими можна виконувати подальші завдання.
Babel транслює вищевказаний код до
var _taggedTemplateLiteralLoose = function (strings, raw) { strings.raw = raw; return strings; };
console.log(_taggedTemplateLiteralLoose(["1"], ["1"]));
Як ви можете бачити у наведеному вище прикладі, після транпіляції за допомогою babel функції тегування (console.log) передається повернене значення наступного es6-> 5 перекладеного коду.
_taggedTemplateLiteralLoose( ["1"], ["1"] );
Повернене значення цієї функції передається в console.log, який потім надрукує масив.