39
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ES6/TypeScriptでヒアドキュメント

Last updated at Posted at 2015-07-04

JavaScriptでは文字列を扱う機会が多いのに、他の言語ではよくあるヒアドキュメントが無く、1行ごとに繋いだりしていた。

ES6/TypeScript(v1.4以降)では「テンプレートストリングス」という名前で使えるようになっている。最初は変数展開のコード例しか見当たらなかったので出来ないのかと思っていたが、複数行もちゃんとできる。

コード

ES6/TypeScript
"use strict";
let hoge = 123;
const HERE = `
	<xml>
		<tag>ANY</tag>
		<tag>${hoge}</tag>
	</xml>
`;
console.log(HERE);

出力:

% node src/Heredoc.js        

	<xml>
		<tag>ANY</tag>
		<tag>123</tag>
	</xml>

参考:ES3/5むけコード

ちなみにtsc -t "ES5"でコンパイルすると以下のコードが吐かれていた。

"use strict";
var hoge = 123;
var HERE = "\n\t<xml>\n\t\t<tag>ANY</tag>\n\t\t<tag>" + hoge + "</tag>\n\t</xml>\n";
console.log(HERE);

改行やタブが\n\tに変換されるようだ。

39
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
39
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?