在ES6中为模板字符串创建标记函数时,该函数应采用literals
参数和values
参数。
tagFunc `Hello ${someVar}`;
function tagFunc(literals, ...values){
// do something
}
但是,它无法访问原始的,未经评估的解构模板。像这样举例如:
tagFunc `Hello ${someVar}`;
function tagFunc(literals, ...values, template){
// template would be 'Hello ${someVar}'
}
或者可能是literals.originalTemplate
属性来补充literals.raw
。
有具体原因吗?我能想到的最好的是,如果将变量名称传递给标记函数,可能会有一些安全隐含意义?