Em JavaScript, as template strings permitem incorporar expressões em strings, o que também se chama interpolação de strings.
Esta funcionalidade amplia as capacidades do objeto global incorporado String.
Podes criar template strings em JavaScript ao envolver o texto em acentos graves. Não só permitem que o texto inclua novas linhas e outros carateres especiais, como também podes incorporar variáveis e outras expressões.
const num1 = 1;
const num2 = 2;
`Adding ${num1} and ${num2} gives ${num1 + num2}.`;
// => Adding 1 and 2 gives 3.
No exemplo acima, os acentos graves (``) são usados para representar uma template string. O ${...} é o marcador de posição usado para a substituição.
Quaisquer tipos que não sejam strings são convertidos implicitamente em strings.
Este tópico é abordado no conceito conversão de tipos.
Todos os tipos de expressões podem ser usados com template strings.
const track = 'JavaScript';
`This track on exercism.org is ${track.toUpperCase()}.`;
// => This track on exercism.org is JAVASCRIPT.
Quando precisas de formatar strings em várias linhas:
`This is an example of using template
strings to accomplish multiple
lines`;
Com as capacidades de substituição disponíveis, também podes introduzir lógica no processo para determinar qual deve ser a string de saída.
Uma forma de tratar essa lógica é usar o operador ternário.
Isto dá a mesma funcionalidade condicional if/else num formato ligeiramente diferente.
Para implementar lógica na sintaxe das template strings:
const grade = 95;
`You have ${grade > 90 ? 'passed' : 'failed'} the exam.`;
// => You have passed the exam.