2016-02-16 14 views
11

グーグルは、ブログ投稿とES6文字列リテラルの恩恵を受ける方法について質問します。そして、深さでこの機能を説明するほぼすべてのブログ記事は、複数行の文字列を実装する方法についていくつかの詳細を持っています長い1行のES6文字列リテラル

let a = `foo 
bar`; 

しかし、私は次のような長い単一行の文字列を実装する方法上の任意の詳細を見つけることができません。

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}` 

手がかりや回避策、またはes3文字列に固執する必要がありますか?

+1

コードが1行になるように書式を設定する必要がありますが、複数のエディターで表示されるようにしてください。それはJSやES6とは関係がありません。編集者の中にはそういうものがあります。 –

+0

@SergiuParaschivそれは本当ですが、それは編集責任だけですか? Pythonの場合、PEP8形式のガイドがあります。これは80行以上の行を使用しないことを示唆しています。そこにjavascriptのためのそのようなガイドラインはありませんか? githubで80行以上のコードを表示するにはどうすればよいですか? – canufeel

+0

残念ながら、JavaScriptコミュニティには独自のPEP8はありません。様々なスタイルと何百ものスタイルガイドがあります。 GitHubでは80行以上のコードを見ることができますが、スクロールするだけで済みます。 なぜこのような長い文字列を書く必要がありますか?多分それのための回避策があります。 – Gpx

答えて

18

\を使用して文字列を改行することができます。改行文字(\n)は、文字列自体には表示されません。

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}` 

有料しかし、あなたの文字列をインデントしないように注意やインデントが文字列になります。

let a = `Hello\ 
     World`; 

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

ただ、GPXの答えに追加する:あなたはthis libraryとあなたのインデントを維持することができます。

import {oneLineTrim} from 'common-tags' 

oneLineTrim` 
    https://news.com/article 
    ?utm_source=designernews.com 
`) 
// https://news.com/article?utm_source=designernews.com 
関連する問題