Typescript中的字符串插值,将“占位符”替换为变量

时间:2018-09-06 04:14:52

标签: angular typescript string-interpolation

关于这个主题,我似乎找不到足够明确的答案,所以我问一个问题:

例如,在C#中,我可以执行以下操作:

var text = "blah blah";
var strTest = String.Format("This is a {0}", text); //output: 'This is a blah blah'

我如何在Typescript中实现这一目标?

用法:

我正在从environment.ts文件中加载URL,此字符串URL将需要包含占位符,并且在我的服务层中,将占位符替换为需要传递的实际参数。

3 个答案:

答案 0 :(得分:4)

在我看来,使用template stringString.Format好得多,因为它们不会遇到索引编制错误(占位符错误)的问题:

var text = "blah blah";
var strTest = `This is a ${text}`;
console.log(strTest);

  

如果我不知道我需要传入的变量名,该怎么办?

然后包装一个函数,例如

const gen = (text) => `This is a ${text}`;

答案 1 :(得分:4)

我建议在Convert文件中使用匿名生成器函数,以便您可以传递所需的变量,并使模板字符串包含在该函数中。像这样:

environments.ts

System.object

其他一些文件:

targetType

答案 2 :(得分:0)

有一个名为 localized-strings 的 npm 包,它有一个 formatString 方法,可用于以 C# 方式进行字符串插值。

import LocalizedStrings, {LocalizedStringsMethods} from "localized-strings";

interface IStrings extends LocalizedStringsMethods{
}

const localizedStrings: IStrings  = new LocalizedStrings({en: {}});
const result = localizedStrings.formatString("This is a {0}", "Text").toString();
console.log(result);

更多示例here