当最后一个字符是`\`时``String.raw`
String.raw
非常有用。 例如:
let path = String.raw`C:pathtofile.html`
但是,当模板字符串的最后一个字符是 ,它将成为语法错误。
let path = String.raw`C:pathtodirectory`
未捕获的SyntaxError:未终止的模板文字
暂时,我使用这种方法。
let path = String.raw`C:pathtodirectory `.trimRight()
我可以使用String.raw
编写最后一个字符是模板字符串吗?
以下是几种可能的解决方法。 我最喜欢的可能是创建一个自定义模板标签dir
来解决你的问题。 我认为它使得语法更清晰并且更加语义化。
let path
// Uglier workarounds
path = String.raw `C:pathtodirectory${``}`
path = String.raw `C:pathtodirectory`+``
path = `C:pathtodirectory`
// Cleanest solution
const dir = ({raw}) => raw + ``
path = dir `C:pathtodirectory`
console.log(path)
根据https://hacks.mozilla.org/2015/05/es6-in-depth-template-strings-2/转义序列在模板字符串中除了 $ {和`外不变。 因此,人们无法摆脱逃避角色。 基于此,看起来您的解决方案是实现您的目标的最佳方式。
链接地址: http://www.djcxy.com/p/38615.html上一篇: `String.raw` when last character is `\`
下一篇: character string literal and string literal in standard?