Переопределить функцию по умолчанию для обработки строк шаблона ES6 (квази-литералы)

ES6 предлагает шаблоны строк, такие как

`Hello ${name}`

В этом случае вызывается конструктор шаблонов по умолчанию. Вы также можете использовать свои собственные "теги":

tag`Hello ${name}`

где tag является функцией, которая передает информацию о строке шаблона и генерирует результат.

У меня вопрос, есть ли способ переопределить функцию по умолчанию, вызываемую, когда не указан тег?

Другой вопрос: есть ли способ определить, вызывается ли функция тега системой для построения строки шаблона, а не, скажем, вызывается напрямую, кроме проверки первого аргумента для raw имущество?

1 ответ

Решение

Нет. Это разные синтаксические произведения с разными смысловыми значениями. `stuff` больше похож на строковый литерал, тогда как tag`stuff` больше похоже на вызов функции.

Другие вопросы по тегам