TypeScript`vs' vs"

时间:2018-04-16 08:42:10

标签: typescript

以下三个字符串分配有何不同?

let a: string = `my text`;
let b: string = 'my text';
let c: string = "my text";

他们都完美无缺。它只是个人品味的问题,哪一个使用或存在差异?

3 个答案:

答案 0 :(得分:4)

返回标记实际上是JavaScript(template literals)的一部分,它们允许嵌入表达式。如果您使用较早版本的JavaScript transpiling,如果您的目标是较旧的JavaScript,那么,即使您使用旧版本的JavaScript,它也可以使用它们。

let user = "Socrates";
`Hi there ${user}` ; // Hi there Socrates
`Did you know your name is ${user.length} chars long?`;

对于双引号和单引号之间的差异,没有区别,如果在字符串中只使用一种类型,它们允许您避免转义引号字符。

'I asked "how are you?"'; // clearer than "I asked \"how are you?\""
"Frankly my dear, I don't give a damn"; // vs don\'t

答案 1 :(得分:3)

这实际上与Typescript无关。它是Javascript的一部分。

let a: string = `my text`; ---> template literal
let b: string = 'my text'; ---> just a string
let c: string = "my text"; ---> just a string
在ES6中添加了

Template literals,它们允许插值:

let name = 'Martin';
let greetings = `Hello ${name}, how are you?`; // result: Hello Martin, how are you?

答案 2 :(得分:1)

第一个是es2015中引入的模板字符串,您可以阅读有关here的更多内容,但要点是您可以在字符串中进行变量替换

let nr = 0 
let a: string = `my text ${nr}`;

另外两个是标准JavaScript字符串,您可以使用或者,但建议您坚持使用。