很热衷于访问带标签的模板文字中的详细变量信息,例如 属性 名称?

Hot to access detailed variable information in tagged template literals like property name?

如果我有一个 returns 标记模板文字的函数,我可以控制台记录函数 toString() ,它会显示我的对象和 属性 变量名称。

function myfN() {
 return tag`Test ${data.name}`
}
    
// this console logs the information I would need inside my tag, see below.
console.log(myfN.toString())
console output >>>>
function myfN() {
 return tag(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["Test ", ""])), data.name);
}

如您所见,data.name 在日志结果中,现在当我们查看我的标签函数时,我有我的字符串和值

function tag(literals, ...vars) {
  console.log(literals.raw);
  console.log(vars);

  // get here that the literals are using `data.name`
}

有没有办法在不将整个对象作为值传递到字符串的情况下获取我的标签中的变量名称? 一切

与其他函数一样,您无法访问用于向其中传递数据的变量名。也可能根本没有变量:

tag`Test ${"look, ma! No variables!"}`

获取变量名(如果有的话)并使用它的唯一方法是解析和操作代码,例如使用 babel。