JSX

TypeScript は JSX のコンパイルをサポートしています。 JSXについては、Facebookの解説を抜粋します:

JSXはXMLに似た構文で、ECMAScriptの構文を拡張するものです。これは、JavaScriptのエンジンやブラウザで実装されることを意図したものではありません。また、これはJSXをECMAScriptへの機能追加提案でもありません。これは、様々なプリプロセッサ(トランスパイラ)によって使われることを意図したものです。トランスパイラによって、JSXのトークンを標準のECMAScriptに変換するということです。

JSXの背景となる動機は、利用者がJavaScriptの中でHTMLに似た構文でビュー(画面)を書けるようにする、ということです。

  • あなたのJavaScriptコードをチェックするのと同じように、ビューの型をチェックします

  • ビューがどのようなコンテキストで操作されるのかを明確にします(例えば、伝統的なMVCにおけるコントローラとビューの連携を強化します)

  • JavaScriptのコーディングパターンを、HTMLのメンテナンスに再利用できるようにします(例えば、Array.prototype.map, ?:, switch などです。そうでなければ、貧弱な型付けしかない他の方法を使うことになるでしょう)

これによって、プログラミングのエラーを防止することができ、なおかつ、ユーザーインターフェースのメンテナンスが容易になります。JSXの主なユースケースは、現時点では FacebookのReactです。これについて、ここで詳しく説明します。