2017-07-03 60 views
1

我經歷的角度turorial使用回用$ {蜱在常量和我看到下面的爲什麼打字稿

https://angular.io/tutorial/toh-pt6

const url = `${this.heroesUrl}/${hero.id}`; 

有人能解釋爲什麼我需要$ {之前使用` ?由於這是打字稿和JavaScript類似,我不能使用

this.heroesUrl + "/" + hero.id 

爲什麼我需要使用返回打勾和$ {操作?

+0

這些被稱爲[template literals](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals)。你不**有**使用它們,你可以肯定使用後者的選項,但不是第一個選項更簡單嗎? – Saravana

回答

2

這就是所謂的Template literals,它是一個JavaScript功能,它不是打字稿特定的。

沒錯,你確實可以取代這個:

const url = `${this.heroesUrl}/${hero.id}`; 

有了:

const url = this.heroesUrl + "/" hero.id; 

但它有時更舒適的使用模板文字,特別是當字符串是做出來的很多的零件。即:

const url1 = protocol + "://" + host + ":" + port + "/" + path + "." + extension; 
const url2 = `${protocol}://${host}:${port}/${path}.${extension}`; 
-1

認爲這只是一個ES6 template literal的一部分,所以打字稿繼承/允許這個(你不會被迫偶然使用它們),因爲雖然打字稿是ES5的超集,它包含了一些ES6功能。

+0

什麼ES6功能不在TypeScript中? – 2017-07-03 16:02:03