Можно ли использовать аналогичную функцию, такую как String.Format C#, в TypeScript?
Моя идея - сделать такую строку, как:
url = "path/{0}/{1}/data.xml"
в зависимости от логической установки {0} и {1}. Obiouslly я могу заменить их, но я думаю, что String.Format - понятная функция.






Вам нужно сделать путь как функцию, которая может принимать 2 параметра. Затем он вернется в виде строки, если мы вызовем функцию с необходимыми параметрами.
const pathFn= (param1, param2) => "path/${param1}/${param2}/data.xml";
let param1 = "student";
let param2 = "contantdetails";
let resultPath = pathFn(param1,param2);
Я думаю, вы ищете обратную цитату: ''
var firstname = 'Fooo';
var lastname = 'Bar';
console.info(`Hi ${firstname} ${lastname}. Welcome.`);Вы можете найти обратную кавычку на клавише тильды.

String.format вы можете использовать массив и позицию 0 в формате, а следующий - значения, но все в массиве основных объектов.
Именно то, что я искал !! Спасибо !!
ИМО, это должен быть принятый ответ
Расширение комментария, сделанного мною к ответу vivekkurien, объявление функции, которая, в свою очередь, интерполирует, вероятно, является самым большим подходом «окупаемости». Я часто использую это, например, для создания фрагментов повторяющегося HTML с незначительными изменяющимися свойствами.
Однако ответ от vivekkurien не работает. Вместо этого он возвращает буквальную строку. Вот модифицированный образец, основанный на исходном ответе:
const pathFn = (param1, param2) => `path/${param1}/${param2}/data.xml`;
let param1 = "student";
let param2 = "contantdetails";
let resultPath = pathFn(param1, param2);
alert(resultPath);
Работоспособный пример приведенного выше кода можно найти здесь: Функциональная интерполяция на игровой площадке TypeScript
String.format вы можете использовать массив и позицию 0 в формате, а следующий - значения, но все в массиве основных объектов. Можно ли это сделать в Машинописи?
Не изначально, о чем я знаю. При этом просмотрите второй ответ на этот вопрос, который звучит очень близко к тому, что вы ищете: stackoverflow.com/questions/20070158/…
const StringFormat = (str: string, ...args: string[]) =>
str.replace(/{(\d+)}/g, (match, index) => args[index] || '')
let res = StringFormat("Hello {0}", "World!")
console.info(res) // Hello World!
res = StringFormat("Hello {0} {1}", "beautiful", "World!")
console.info(res) // Hello beautiful World!
res = StringFormat("Hello {0},{0}!", "beauty")
console.info(res) //Hello beauty,beauty!
res = StringFormat("Hello {0},{0}!", "beauty", "World!")
console.info(res) //Hello beauty,beauty!
Попробуйте в TypeScript Playgroud
Это сработало для меня. Пробовал с разными сценариями.
format(text: string, ...args: string[]): string {
return text.replace(/{(\d+)}/g, (match, num) => {
return typeof args[num] !== 'undefined' ? args[num] : match;
});
}
Вы могли бы использовать кавычки летучей мыши для интерполяции строки, а также использовать маркер интерполяции ($), чтобы произошла замена. См .: typescriptlang.org/play/…