我想在模板文本中声明一个变量,然后在同一模板中使用它,这是可能的吗?如果这是不可能的,这似乎是一个缺失的功能对我来说。
const tmp = tag`
some random text, ${let myvar = 55} more text,
even more text ${myvar}
`
模板字面量只能返回两种情况:
- 它们组成的部分
- 中间值
如果你想在不同的值之间共享一个变量,它们必须是封闭的
如果你想使用一些计算,你必须传入一个函数
const tmp = (() => {
let myvar;
return tag`
some random text, ${() => myvar = 55} more text,
even more text ${() => myvar}
and the double text ${() => myvar + myvar}
`
})()