Microsoftは今週、JavaScriptアプリケーション開発を改善する努力の一環として、TypeScriptをリリースした。この新しい言語は、ネイティブのJavaScriptを生成するときに、型チェックと静的コード分析が追加されたJavaScriptのスーパーセット仕様である。これらの機能は、改善されたツールによる型チェック機能が提供されることで、開発者がJavaScriptでより簡単に大規模なアプリケーションを開発できるようにすることを目的としている。既存のJavaScriptコードはTypeScriptですぐに使用することができ、TypeScriptコンパイラは、純粋なJavaScriptを生成するので既存のJavaScriptが実行可能なプラットフォームで実行することができる。
コンパイル時チェックと既存のJavaScriptライブラリへのインテリセンスを提供するために、開発者は“... 既存のJavaScriptのインターフェイスが期待する型情報を説明する薄いシム(shim)”の宣言ファイルを使用する。TypeScriptは改善かCoffeeScriptやGoogleのDartを含めたJavaScriptの置き換えのために、多くのプロジェクトでフィールド結合する。
CoffeeScriptを説明すると、“... 単純な方法で、JavaScriptのよい部分を公開しようとした。” TypeScriptと同じく、CoffeeScriptはJavaScriptにコンパイルして、動的に型付け言語としてすっきりとさせることを目指している。したがって、静的分析がサポートできるように設計されていない。
GoogleのDartもまた、動的な型付けをするが、静的な型アノテーションのオプションは提供されていない。Googleの“DartはJavaScriptになることを目指しているが、より早く、さらに正規化され、大きなプログラムに対してもよりスケーラブルである。”Dartコードはコンパイルすることも、Dart VMで直接実行することもできる。
TypeScriptは、Apache 2.0オープンソースライセンス下でCodePlexからソースコードをダウンロードすることができるようになっている。 TypeScriptコンパイラとVisual Studio互換プラグインは、Microsoftからダウンロードすることができる。Visual Studioプラグインは、Visual Studio Express 2012 for Webもサポートされている。サンプルのシンタックスファイルは、MicrosoftによってSublime Text、Emacs、Vimエディタ向けにリリースされている。
MonoのMiguel de Icaza氏は、Emacsプラグインは現在、Visual Studioに提供されている機能と比較すると、インテリセンスがなく“使いものにならない”と話している。結論として、この言語は現在Windows開発環境が有利だが、将来の変更を回避することはできない。
言語設計全体に関しては、de Icaza氏は肯定的だった。 彼がDartと比較して話したひとつの違いは、TypeScriptは排他的にJavaScriptにコンパイルするが、DartはネイティブのVMプロバイダが提供されており“生成されたコードの品質を最適化するための型情報”を使うことができる。この違いのポイントは目的だ: TypeScriptはJavaScriptがサポートされていれば、どこでも実行することができるが、(あまり人気がない)Dart VMは、コード最適化に活用するために必要としている。
TypeScriptの追加情報と言語のデモは、MicrosoftのChannel 9でAnders Hejlsberg氏がプロジェクト紹介を提供している。