【发布时间】:2020-10-11 17:10:13
【问题描述】:
我的目标是编写一个标记模板函数,例如
myTemplateTagFunction`some text ${variable} etc. etc.`
...其行为类似于 javascript 中的默认模板文字函数。
我的第一次尝试是
let myTaggedTemplate = args => `${args}`
但这很快就坏了……
> myTaggedTemplate`hello world ${2 + 5}`
// "hello world ,"
> `hello world ${2 + 5}`
// "hello world 7"
一定有一种我想念的更简单的方法吗?
【问题讨论】:
-
使用 默认模板文字函数,您的意思是模板文字在没有被标记的情况下会如何表现?
-
带标签的模板不起作用。您是否查看过(例如)MDN 上的文档以了解参数实际上是传递给标记模板函数的吗?
-
@Quentin 我查看了文档,这就是为什么我第一次尝试将传入的参数传递回模板文字函数的原因。如果您对它们非常了解,请为回答这个问题提供您的理解
-
@rob-gordon — 问题的前提并没有真正的意义。我可以想出一个解决方案(就像彼得一样),但坦率地说,这是愚蠢的。如果您想要那种效果,只需使用模板文字即可。
-
@Quentin 如果你想知道我为什么要问,那就问我为什么问。如果你想嘲笑这个问题而不是审问,那就是你了
标签: javascript template-literals tagged-templates