TypeScriptは、JavaScriptの代替言語の1つだ。その生みの親は、Turbo PascalやC#の考案者でもあるAnders Hejlsberg氏。同氏が率いる形で米Microsoftが立ち上げた重要なプロジェクトは、すでに恩恵をもたらし、今後に向けて着実に前進している。

21世紀にJavaScriptが主流のプログラミング言語の1つとして台頭したことについて、歴史家が回顧するとしたら、米国のDonald Rumsfeld元国防長官の言葉を引用することになるかもしれない。「戦争を始める時は現有戦力で向かう。あればいいのにと思う戦力ではない」という言葉だ。

 ますます多くのプログラマが、JavaScriptという現有戦力で戦いに挑んでいる。だが、クライアントサイドとサーバーサイドの両方で、これまで以上に野心的な戦いに臨むための一軍を送り込んでいるはずなのに、気が付けばJavaScriptそのものと格闘している。

 チームで大規模なプログラムを開発して、内部モジュールと外部ライブラリの複雑な連携を高度なツールで管理するような用途は、JavaScriptが元来意図していたものではない。こうしたチーム開発では、JavaやC#のような強い型付け言語が以前から好まれていたが、これらの言語の仮想マシンは、ブラウザに居場所を見つけられなかった。JavaScriptの代替言語や拡張言語が、至る所に存在するJavaScript仮想マシンをターゲットにすることは、当然の流れだった。

 TypeScriptは、JavaScriptの代替言語の1つだ。その生みの親は、Turbo PascalやC#の考案者でもあるAnders Hejlsberg氏。同氏が率いる形で米Microsoftが立ち上げた重要なプロジェクトは、すでに恩恵をもたらし、今後に向けて着実に前進している。

 TypeScriptは、JavaScriptのスーパーセットであり、型付けが可能なJavaScriptだ。既存のJavaScriptのコードはTypeScriptとしても有効なので、TypeScriptのコンパイラやTypeScript対応ツールを使い始めるには、ファイル名の拡張子を「.js」から「.ts」に変えるだけでよい。

 これは第一歩を踏み出す良い方法となる。自分のコードに型アノテーションを一切加えていない段階でも、TypeScriptは直ちに効果を発揮し得る。その時に役立つのが、型定義の情報を集約しているDefinitelyTyped(definitelytyped.org)だ。ここには、jQuery、Angular、Bootstrapをはじめ、数々のJavaScriptライブラリの型定義ファイルが集められている。TypeScriptに対応したツールは、こうした型定義ファイルを使って、当該のライブラリをインポートするTypeScriptプログラムに型認識を適用する。

 同じような型認識は、JavaScriptのコアライブラリやブラウザのDOM(Document Object Model)に対しても、可搬性がある形で利用できる。可搬性がある理由は、TypeScriptはTypeScriptで作成されていること、あらゆるプラットフォームのJavaScript仮想マシンをターゲットにしていること、コンパイラだけでなく、コード補完などのインテリジェント機能をサポートする言語サービスを提供していることだ。

 こうした言語サービスを利用しているツールには、Visual Studioのほか、WebStorm、Eclipse、Sublime Textなどがある。また、「TypeScript Playground」というインタラクティブなWebページには、入力補完、パラメータとその型の入力要求、型エラーの警告などの機能がある。
http://itpro.nikkeibp.co.jp/atcl/idg/17/112000091/112000001/