##定義
TypeScriptはMicrosoftが開発およびメンテナンスし、オープンソースプログラミング言語である。
JavaScript の全ての構文と意味をサポートすると同時に、静的タイプ指定及びECMAScript の上位集合であるより豊かな構文のようないくつかの追加機能を提供する。
次のダイアグラムはTypeScriptとES5、ES2015、ES2016の間の関係を示してくれる。
Angular 2 では、JavaScript と共にAngular 1.x と同様の方式で作成できる。
しかし、JavaScriptでランタイムエラーが発生した場合、オブジェクトまたはメソッド名のスペルエラーといったミスについてのみ知ることができる。
コードをプロダクションに配布する前に、それを防ぐために多くの単位テストを作成しますが、
ウェブで多くのエラーが発生しても、ウェブではそのエラーを内部で処理してうまく駆動させ、ユーザーに知らせずに処理する場合が多い。
スクリプトで作成するとエラーが多くわかりませんが、
TypeScriptはコンパイラによるコード誤字を処理する静的タイプ指定の利点を通じてコンパイルタイムに全タイプエラーを知らせる。
また、TypeScriptの基本機能の一つである注釈を使用すればテキストエディタとIDEがコードに対してより良い静的分析を遂行することができる。
これは、より良いリファクタリングツール及び自動完了機能を使用し、コードを作成する間にミスを減らすことで生産性を高めることができることを意味する。
そのため、Angular 2 では、JavaScript よりTypeScript を主力としており、TypeScript を使うと多くの利点がある。
#####スクリプトではインタプリタ方式を使うが、人間が作成したコードをコンピュータが翻訳(コンパイル)なしにすぐに処理するのがインタプリタ方式である。
###文法
タイプスクリプトは変数宣言の際、letを使った高変数関数すべてが入るデータタイプをGenericのように指定しなければならない。
その中でJavaScriptでは見られなかった追加されたデータタイプがある。
tuple - 複数の資料型が可能である。 ORの意味と同じで、パイプを使ってString|Numberなど入れられるデータタイプを指定することができる。
enum - 列挙型またはデータタイプに使用 - データタイプのためのデータである。
any - すべてのデータタイプが可能。
void - リターンタイプがない関数である。
never - 特定の値が絶対に発生できないときに使用する。