首页 > 解决方案 > 在 Javascript 中,如果我有一个很长的标记模板文字,如何包装它而不在结果字符串中放置换行符?

问题描述

有很多类似的问题,但我不明白如何将它们应用于我的情况,所以我会尽量具体。例如,我有一个很长的标记模板文字;

tag`This is a very long string that will be shown to ${userName}, that is annoying to have all on one line in the codebase.`

当然,我不想在我的代码库中有这么长的一行,所以我想把它分解。分解长(未标记)模板文字有很多选项,例如使用+. 我尝试使用它,但它与操作优先级混淆。如果我使用

tag`my` + `string`

那么标签只适用于my. 如果我尝试(有或没有加号)

tag(`mystring`)

标签的功能停止工作。作为健全性检查,我打开浏览器控制台并定义;

function myTag(strings) { return `${strings[0]}` }

如果我将其用作具有正常语法的标记,它会输出输入字符串。如果我使用括号,它会输出输入字符串的第一个字符。所以我不知道那里发生了什么。

我可以用

tag`my\
string`

但这不允许第二行缩进,这和长行一样糟糕。

鉴于此,我不知道如何将用于分解长未标记模板文字的方法应用于标记模板文字。

如果它最终是相关的,我正在使用的函数是tttag中的标签。

标签: javascriptmultilinetagged-templates

解决方案


推荐阅读