2016-02-16 4 views
11

W google jest pełno postów na blogu i odpowiedzi na pytanie, jak należy korzystać z literałów napisanych w ES6. I prawie każdy blogu tłumacząc tę ​​funkcję w głębi ma pewne szczegóły dotyczące sposobu realizacji ciągów multilinii:Długi, jednoliniowy ciąg literowy ES6

let a = `foo 
bar`; 

ale nie mogę znaleźć żadnych informacji na temat sposobu realizacji długich ciągów pojedynczej linii tak:

let a = `This is a very long single line string which might be used to display assertion messages or some text. It has much more than 80 symbols so it would take more then one screen in your text editor to view it. Hello ${world}` 

Jakieś wskazówki lub obejścia, czy powinienem trzymać się ciągów es3?

+1

Pytasz, w jaki sposób sformatować kod tak, aby był nadal pojedynczym wierszem, ale jest wyświetlany przez edytor na wielu? To nie ma nic wspólnego z JS lub ES6, jest to coś, co mogą zrobić redaktorzy. –

+0

@SergiuParaschiv to prawda, ale czy to tylko odpowiedzialność redaktora? W przypadku Python, np. Istnieje przewodnik po stylu PEP8, który sugeruje, aby nie używać linii dłuższych niż 80 symboli. Czy nie ma takich wytycznych dla javascript? Jak powinien wyglądać kod z ponad 80 liniami na github? – canufeel

+0

Niestety, społeczność JavaScript nie ma własnego PEP8. Istnieją różne style i setki przewodników po stylach. Na GitHubie możesz zobaczyć kod dłuższy niż 80 linii, wystarczy przewinąć. Dlaczego trzeba napisać tak długi ciąg? Możliwe, że to obejdzie. – Gpx

Odpowiedz

18

Możesz przejść do nowej linii za pomocą ciągu znaków, używając \. Znak nowej linii (\n) nie pojawi się w samym ciągu.

let a = `This is a very long single line string which might be used \ 
to display assertion messages or some text. It has much more than \ 
80 symbols so it would take more then one screen in your text \ 
editor to view it. Hello ${world}` 

zwracać uwagę, aby nie wciąć swój ciąg choć lub wcięcie będzie w ciągu:

let a = `Hello\ 
     World`; 

a === 'Hello   World' // true 
2

Wystarczy dodać do GPX odpowiedź: można zachować wcięcie z this library.

import {oneLineTrim} from 'common-tags' 

oneLineTrim` 
    https://news.com/article 
    ?utm_source=designernews.com 
`) 
// https://news.com/article?utm_source=designernews.com