Typescript中的string插值,从文件中读取string

我已经阅读了关于Typescript中的模板string 。 我想知道如果我可以使用它们,当我从这样的文件中读取一个string:

let xmlPayloadTemplate = fs.readFileSync('payload.xml', 'utf8'); 

如果xmlPayloadTemplate包含像${placeholder}这样的${placeholder} ,是否有内置的方法来执行replace,以便我可以执行如下操作:

 let variableMap = {'placeholder' : 'value' } xmlPayloadTemplate.interpolate(variableMap) 

我知道在JavaScript中的string插值类似的问题,但我想知道是否有更好的方式来在Typescript中做到这一点。

       

网上收集的解决方案 "Typescript中的string插值,从文件中读取string"

TypeScript在编译时执行string插值,而不是运行时。

你需要在运行时find一种方法。 你可以在你的问题中使用你链接的代码 ,或者这里是另一个例子 。

Reinouts的评论指出我Lodash库和它的模板function。 这里是一个如何使用它的例子。

将Lodash添加到您的项目中:

 $ npm install --save lodash $ npm install --save @types/lodash 

然后,在你的.ts文件中:

 import * as _ from "lodash"; let xmlPayloadTemplate = "Some text ${placeholder} and more text"; let variableMap = {placeholder: 'value' }; // use custom delimiter ${ } _.templateSettings.interpolate = /\${([\s\S]+?)}/g; // interpolate let compiled = _.template( xmlPayloadTemplate ); let xmlPayloadCompiled = compiled( variableMap ); // show me alert(xmlPayloadCompiled);