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插值,而不是运行时。
你需要在运行时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);