为什么JavaScript/TypeScript中${someValue}插值语法不生效?
问题成因
这个问题是基础的JavaScript语法使用错误,和TypeScript版本无关,你升级TypeScript不会对该问题的结果产生影响:
JavaScript/TypeScript的${}插值语法仅对反引号``包裹的模板字符串生效,你当前用普通单引号'包裹字符串,解释器会把${a}识别为普通字符串内容,不会做插值替换。
解决方案
方案1:使用模板字符串语法(最推荐)
把包裹字符串的单引号替换为反引号即可,反引号位于键盘Tab键上方、数字1键左侧的位置:
let a = 'John'; let s = `Hello ${a}`; // 输出为预期的 'Hello John'
方案2:字符串拼接(兼容旧运行环境)
如果需要兼容不支持ES6语法的极端老旧运行环境,可以使用传统的加号拼接字符串实现同样效果:
let a = 'John'; let s = 'Hello ' + a; // 输出为预期的 'Hello John'
补充说明:如果确实需要在模板字符串中原样输出
${}格式的内容,可以对$符号添加反斜杠转义:let s = `Hello \${a}`; // 输出为 'Hello ${a}'
内容的提问来源于stack exchange,提问作者Borko Djurovic
相关产品推荐
相关产品推荐

