Son iguales en el resultado, pero tienen diferentes habilidades. ¿Hay alguna forma de identificarlos para que pueda restringir al usuario (de una función) para que use solo la plantilla literal como argumento?
No, en realidad no... al igual que no puedes diferenciar 5 y 4 + 1 .
¿Te refieres a algo así como un isFromTemplateLitteral booleano imaginario?
function(string){ if(string.isFromTemplateLitteral()){ // console.log("YES!") } } No se puede hacer.
Porque la cadena se pasó a la función usando la referencia en la pila de memoria. Entonces, incluso antes de que el cuerpo de la función comience a ejecutarse, la string ya es una cadena normal . Una primitiva con tipo string .
No hay forma de saber cómo se ha construido (plantilla literal, concatenación, comillas simples/dobles, etc.) o de dónde proviene realmente (entrada del usuario, texto codificado, coincidencia de expresiones regulares, etc.).