如何区分普通引用字符串和模板文字(反引号)

How to distinguish plain quoted string and template literal(backtick)

结果相同,能力不同。有什么方法可以在它们之间进行识别,以便我可以限制(函数的)用户仅使用模板文字作为参数吗?

不,不是真的...就像你无法真正区分 54 + 1

你的意思是像虚构的 isFromTemplateLitteral 布尔值?

function(string){
  if(string.isFromTemplateLitteral()){
    // console.log("YES!")
  }
}

没办法。
因为字符串是使用内存堆栈中的引用传递给函数的。所以即使在函数体开始 运行 之前, string 已经是一个 normal 字符串。 字符串类型的基元

无法知道它是如何构建的(模板文字、连接、simple/double 引号等)或它的真正来源(用户输入、硬编码文本、正则表达式匹配等) ).