TypeScript はマイクロソフトによって開発され、メンテナンスされているフリーでオープンソースのプログラミング言語である。
TypeScriptはJavaScriptに対して、省略も可能な静的型付けとクラスベースオブジェクト指向を加えた厳密なスーパーセットとなっている。
TypeScriptはクライアントサイド、あるいはサーバサイド (Node.js) で実行されるJavaScriptアプリケーションの開発に利用できる。
TypeScriptは大規模なアプリケーションの開発のために設計されている。
TypeScriptはJavaScriptのスーパーセットであるため、既存のJavaScriptプログラムは、全て有効なTypeScriptプログラムとなる。
TypeScriptは型定義ファイルをサポートしており、既存のJavaScriptライブラリに型情報を付与して利用できる。既存のオブジェクトファイルの構造を記述できるC/C++のヘッダファイルとよく似た仕組みである。これによって、その型定義ファイル内で定義された値を、他のプログラムがあたかも静的に型付けされたTypeScriptエンティティであるかのように利用することができるようになる。jQuery、MongoDB、D3.jsのような人気のあるライブラリのための、サードパーティーのヘッダファイルがある。Node.jsベーシック・モジュールのためのヘッダも入手可能で、Node.jsプログラムの開発もTypeScriptの中で行える[7]。
TypeScriptの主要な実装は、自身もTypeScriptで書かれた、JavaScriptへのトランスコンパイラである。ライセンスはApache 2 License。
TypeScriptはMicrosoft Visual Studio 2013 Update 2以降でfirst-classプログラミング言語として、C# やその他のマイクロソフト言語群とともに含まれるようになった[8]。 公式の拡張パックによりMicrosoft Visual Studio 2012 でも TypeScript をサポート可能である[9]。
言語の特徴
TypeScriptはJavaScript (ECMAScript 5) に次のような言語機能の拡張を加えたものである。
ECMAScript 6由来
●クラス
●アロー関数式(ラムダ式)
●オプション引数、デフォルト引数
●let, const
●テンプレート文字列 : 文字列内への変数埋め込み
●モジュール[26]
●for/of
●分割代入
●Symbol
ECMAScript 7由来
●デコレーター
●Async/Await
独自
●型注釈(変数、引数、戻り値などの型宣言)とコンパイル時の型チェック
●型推論、型ガード - if文の instanceof などを利用した型推論
●インタフェース
●列挙型
●Mixin
●ジェネリック
●名前空間
●タプル型
●共用体型, 交差型(英語版)
●型エイリアス
構文的には、静的型付けやクラス、継承、インタフェースのようなオブジェクト指向、名前空間などの機能を追加する、ECMA-262 言語標準のマイクロソフトによる実装である JScript.NET と TypeScript はよく似ている。
コンパイラ
TypeScriptコンパイラtsc自体もTypeScriptで作成されている(セルフホスティング)。これは通常のJavaScript にコンパイルでき、任意のホスト上のJavaScriptエンジン(たとえばブラウザなど)上で実行できる。ライセンスは Apache License 2.0である。コンパイラ・パッケージはコンパイラを実行出来るスクリプトホストに同梱されてくる。Node.js等と共にコンパイラ・パッケージとして配布される場合もある。
また、JavaScriptで書かれたクライアントサイドのコンパイラのアルファ版もある。これはページロード中にTypeScriptコードを実行する[32]。
TypeScriptで書いたコードをブラウザ上で実行するにはコンパイルが必要。
tsc --strict -t es5 *.ts
開発環境
以下の統合開発環境 (IDE) やテキストエディタがTypeScriptに対応している。
●Microsoft Visual Studio
●2013 Update 2から標準搭載
●JetBrains社によるReSharperプラグイン[33]
●Visual Studio Code
●WebMatrix
●IntelliJ IDEA, WebStorm
●Eclipse - Eclipse TypeScript Plug-in, TypEcs
●NetBeans - NetBeans TypeScript Editor
●テキストエディタ - Sublime Text, Emacs, Vim
●クラウド型IDE - Cloud9 IDE, Codenvy, Codeanywhere