如何在模板字符串中编写输出带前置冒号结果的三元表达式
错误写法的问题
- 语法层面:你尝试的两个带冒号的写法
${deskName} ${bookingName ? ':'bookingName : ''}、${deskName} ${bookingName ? ":"bookingName : ''},都缺少字符串和变量之间的拼接符,JS无法识别相邻的字面量和变量,会直接抛出语法错误,完全无法运行。 - 逻辑层面:原始模板在
deskName后面无条件拼接了空格,哪怕bookingName不存在,最终输出的deskName后面也会残留无意义的尾随空格,不符合纯输出deskName的预期。
正确实现代码
把冒号、分隔空格、bookingName 全部放到bookingName存在的判断分支里,不存在时不拼接任何额外内容即可,最终模板写法为:${deskName}${bookingName ? : ${bookingName} : ''}
这个写法的输出效果完全匹配需求:
- 当
bookingName存在时,输出结构为deskName: bookingName,示例效果为Desk One: Test booking - 当
bookingName不存在时,仅输出deskName本身,示例效果为Desk One,没有多余的尾随空格、残留冒号。
内容的提问来源于stack exchange,提问作者Kma
相关产品推荐
相关产品推荐

