Как я могу интерполировать значения переменных в строке JavaScript или машинописи? - PullRequest
0 голосов
/ 07 мая 2018

Файл переменных:

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". Итак, как я могу ввести идентификатор в этой строке.

Любое предложение относительно того же будет оценено.

Спасибо

Ответы [ 3 ]

0 голосов
/ 07 мая 2018

Вы можете попробовать:

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

let re = /id/gi; 
let newstr = `${VariableSettings.USER_BOOKINGS}`.replace(re, `${id}`);
console.log(newstr); 
0 голосов
/ 07 мая 2018
     export class VariableSettings {
       id:number;
       public static string_value: string;


    constructor(){
      this.id = 123456
      VariableSettings.string_value = `vikas/${this.id}/data`;
}
  ngOnInit() {
    console.log(VariableSettings.string_value);
  }
    }
0 голосов
/ 07 мая 2018

Чтобы использовать интерполированные строки, вам нужно использовать `` разделитель строк, как во втором фрагменте. Если вы уже использовали неинтерполированную строку для хранения значения вашего параметра, вы не сможете затем интерполировать его с помощью функции интерполяции (вы можете использовать регулярное выражение для выполнения замены, но это немного грязно).

Самое простое решение - сделать поле функцией и иметь в качестве параметра 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 теперь будет функцией, которая принимает в качестве аргументов параметры, необходимые для построения строки. Таким образом, параметры, необходимые для строк, понятны и безопасны для типов.

...