Wie kann man in es6-Vorlagenliteralen ein langes Vorlagenliteral in mehrere Zeilen umbrechen, ohne eine neue Zeile in der Zeichenfolge zu erstellen?
Wenn Sie dies beispielsweise tun:
const text = `a very long string that just continues
and continues and continues`
Anschließend wird ein neues Liniensymbol für die Zeichenfolge erstellt, um eine neue Zeile zu erhalten. Wie kann man das lange Vorlagenliteral in mehrere Zeilen umbrechen, ohne die neue Zeile zu erstellen?
javascript
ecmascript-6
template-literals
Ville Miekk-oja
quelle
quelle
Antworten:
Wenn Sie eine Einführung Linie Fortsetzung (
\
) an der Stelle des Newline im wörtlichen, wird es nicht eine neue Zeile auf Ausgabe erstellen:quelle
1.1k Airbnb library
and continues...
muss an der 0. Position in der neuen Zeile beginnen und die Einrückungsregel brechen.Dies ist eine alte. Aber es kam auf. Wenn Sie Leerzeichen im Editor lassen, werden diese dort eingefügt.
Mach einfach das normale + Symbol
quelle
Sie könnten einfach die Zeilenumbrüche in Ihrem Vorlagenliteral essen.
quelle
prettier
in Ihrer IDE ein hübscher Formatierer (wie ) konfiguriert ist.prettier
schließt dies wieder in eine einzelne Zeile ein.EDIT : Ich habe mit diesem Dienstprogramm ein winziges NPM-Modul erstellt. Es funktioniert im Web und in Node und ich empfehle es über den Code in meiner folgenden Antwort, da es weitaus robuster ist. Außerdem können Zeilenumbrüche im Ergebnis beibehalten werden, wenn Sie sie manuell als eingeben
\n
, und es werden Funktionen bereitgestellt , wenn Sie bereits Vorlagenliteral-Tags für etwas anderes verwenden: https://github.com/iansan5653/compress-tagIch weiß, dass ich zu spät komme, um hier zu antworten, aber die akzeptierte Antwort hat immer noch den Nachteil, dass Einrückungen nach dem Zeilenumbruch nicht zugelassen werden, was bedeutet, dass Sie immer noch keinen sehr gut aussehenden Code schreiben können, indem Sie einfach Zeilenumbrüchen entkommen.
Verwenden Sie stattdessen eine markierte Vorlagenliteralfunktion .
Dann können Sie einfach jedes Vorlagenliteral markieren, in das Zeilenumbrüche eingefügt werden sollen:
Dies hat den Nachteil, dass möglicherweise ein unerwartetes Verhalten auftritt, wenn ein zukünftiger Entwickler nicht an die Syntax der markierten Vorlage gewöhnt ist oder wenn Sie keinen beschreibenden Funktionsnamen verwenden, dies jedoch die derzeit sauberste Lösung darstellt.
quelle
Eine andere Option ist
Array.join
, wie folgt zu verwenden :quelle
Verwenden Sie das Alte und das Neue. Vorlagenliterale sind großartig, aber wenn Sie lange Literale vermeiden möchten, um kompakte Codezeilen zu erhalten, verketten Sie sie, und ESLint verursacht keine Probleme.
quelle
Ähnlich wie bei Doug wird dies von meiner TSLint-Konfiguration akzeptiert und bleibt von meinem IntelliJ-Auto-Formatierer unberührt:
quelle
Die von @CodingIntrigue vorgeschlagene Lösung funktioniert bei Knoten 7 nicht. Nun, sie funktioniert, wenn ich in der ersten Zeile keine Zeilenfortsetzung verwende. Andernfalls schlägt sie fehl.
Dies ist wahrscheinlich nicht die beste Lösung, funktioniert aber ohne Probleme:
quelle