2016-05-19 10 views
44

W literałach szablonu es6 można zawijać długą literałową literę do multilinii bez tworzenia nowego wiersza w łańcuchu?Zawijanie długiej literalnej linii szablonu do multilinii bez tworzenia nowego wiersza w ciągu znaków

Na przykład, jeśli to zrobić:

const text = `a very long string that just continues 
and continues and continues` 

Wtedy będzie stworzyć nową linię symbol do napisu, jak interpretowania go mieć nową linię. Jak można zawinąć długą literałową literaturę na wiele linii bez tworzenia nowej linii?

Odpowiedz

65

Jeśli wprowadzi line continuation (\) na punkcie nowej linii w dosłownym, nie będzie tworzyć nowej linii na wyjściu:

const text = `a very long string that just continues\ 
and continues and continues`; 
console.log(text); // a very long string that just continuesand continues and continues 
+0

nie wydaje się działać, jeśli mogę użyć zmiennych =/ –

+1

Nie jestem pewien, rozumiem co masz na myśli. Czy możesz podać [przykład REPL] (https://babeljs.io/repl/)? – CodingIntrigue

+1

Nie łatwo w moim przypadku, ponieważ różne zmienne są pobierane z plików konfiguracyjnych coffeescript etc .. mm .. wydaje się, że działa inaczej, ale z jakiegoś powodu dodaje pustą przestrzeń tam –

-2

Proponowana przez @CodingIntrigue rozwiązanie nie działa dla mnie na węźle 7. Cóż, działa, jeśli nie używam kontynuacji linii w pierwszym wierszu, w przeciwnym razie nie.

Prawdopodobnie nie jest to najlepsze rozwiązanie, ale działa bez problemów:

(` 
    border:1px solid blue; 
    border-radius:10px; 
    padding: 14px 25px; 
    text-decoration:none; 
    display: inline-block; 
    text-align: center;`).replace(/\n/g,'').trim(); 
13

To jest stary. Ale pojawił się. Jeśli zostawisz jakieś spacje w edytorze, umieścisz je tam.

if 
    const text = `a very long string that just continues\ 
    and continues and continues`; 

prostu zrobić normalnego symbol +

if 
    const text = `a very long string that just continues` + 
    `and continues and continues`; 
Powiązane problemy