可以在变量是字符串的情况下插入Typescript吗?

时间:2017-07-05 12:43:52

标签: typescript interpolation

我需要插入一个变量,这是一个字符串,但这不起作用。 有没有办法插入这个变量?直接进行替换会更好吗?

例如:

time = duration.years();
dateTime = this.i18nService.getTranslation('past-date-years');
//dateTime value is = "${time} years ago"

console.log(`${dateTime}`); //not working

console.log(`${time} years ago`);//working

1 个答案:

答案 0 :(得分:1)

由于字符串插值语法正确,这意味着> oneHotEncode Source: table<sparklyr_tmp_211f3897a9c1> [?? x 3] Database: spark_connection a b output <dbl> <dbl> <list> 1 1 -0.7109400 <dbl [3]> 2 2 -0.9688218 <dbl [3]> 3 1 1.1678944 <dbl [3]> 4 3 0.6903080 <dbl [3]> > oneHotEncode$output NULL 为空或空字符串。请将记录的字符串的输出添加到您的问题和/或控制台中显示的任何错误。

根据您在下面的评论,您似乎在字符串插值中有一个字符串插值,其中第一个尚未被评估。

以下(基本)代码有效:

dateTime

...将打印结果并解析所有变量,但那是因为TypeScript知道如何将这些行分开并从中构造正常的连接。

似乎在您的实例中,let time = "This is time"; let vari = `${time} | is what we got`; let result = `${vari} | is this possible?`; document.body.innerText = result; 未解析getTranslation(),而是构建一个带有插值标记的转义字符串。这需要妥善解决。

由于TypeScript编译到不同的目标,而字符串插值本质上是TypeScript在幕后进行字符串连接,你将不得不做一些编写代码并评估生成的JavaScript以查看它是否提供有效的输出将适当地解决变量。

转到TypeScript play,并使用它来检查输出。你必须插入time方法正在做的一些事情,看看输出是否会正确生成。