javascript - 如何在 javascript 或 typescript 字符串中插入变量值?

标签 javascript angular typescript interpolation template-strings

变量文件:

export class VariableSettings {

   public static string_value: string = 'vikas/${id}/data';


}

其他文件。

import {VariableSettings} from './variables';


    getData(id:string ){
      console.log(`${VariableSettings.string_value}`, `${id}`); 

      // it prints vikas/${id}/data abcd11123

    }`

现在我想要像“vikas/abcd11123/data”这样的结果。那么如何在该字符串中注入(inject) id。

如有任何建议,我们将不胜感激。

谢谢

最佳答案

要使用内插字符串,您需要像在第二个代码段中那样使用 `` 字符串分隔符。如果您已经使用非内插字符串来保存设置的值,则无法使用内插功能对其进行内插(您可以使用正则表达式执行替换,但这有点困惑)。

最简单的解决方案是使字段成为一个函数并将id作为参数

export class VariableSettings {
    public static USER_BOOKINGS = (id: number) => `vikas/${id}/data`;
}
console.log(`${VariableSettings.USER_BOOKINGS(10)}`);
console.log(VariableSettings.USER_BOOKINGS(10)); // Or no interpolation at call site, not needed anymore if you just need the single value

USER_BOOKINGS 现在将是一个函数,它将构造字符串所需的参数作为参数。这样,字符串所需的参数清晰且类型安全。

关于javascript - 如何在 javascript 或 typescript 字符串中插入变量值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50208313/

相关文章:

angular - ‘local' 的所有声明在 ionic 2 中必须具有相同的修饰符

javascript - Angular - 检查多个子组件是否脏

javascript - 使用 javascript 打印自定义 url 不起作用

javascript - 单击按钮时防止 Bootstrap 模式打开

javascript - 使用正则表达式格式化 HTTP header

javascript - Microsoft Graph API token 验证失败

javascript - Typescript switch 语句执行错误情况?

javascript - 检测元素何时位于绝对定位框内

angular - 根据 ngxdaterangepicker angular 8 中的 minDate 设置 maxDate

带有函数参数的 typescript 泛型