TypeScriptは、JavaScriptに静的型システムを付け加えたプログラミング言語です。
JavaScriptはWebブラウザの中でとどまらず、サーバーサイド開発に拡大しています。
大規模になってきたJavaScriptのシステムを支えるため、開発を効率化するTypeScriptは広く用いられ始めています。
本記事では、TypeScriptの特徴やメリットなどを解説します。
TypeScriptとは
TypeScriptは、MicroSoftによって開発されたプログラミング言語です。
TypeScriptの応用範囲は幅広く、JavaScriptを用いる新規プロジェクトではTypeScriptが使われるというのが当たり前の光景になりつつあります。
TypeScriptの特徴
TypeScriptはJavaScriptに類似していますが、JavaScriptと異なる点としていくつかの特徴を持ちます。
以下の内容がTypeScriptの特徴になります。
- 静的型システムを備えている
- JavaScriptに対する静的型付け
- 高い表現力を持つ型システム
上記の内容をそれぞれ解説します。
静的型システムを備えている
改めて、JavaScriptと異なる点として静的型システムを備えていることが特徴の一つになります。
TypeScriptにはコンパイラ(tsc)があり、これによってTypeScriptに対する型チェックを実施することが可能になります。
また、型に関連するプログラムの誤りに対してコンパイルエラーを検出できます。
JavaScriptに対する静的型付け
TypeScriptは”JavaScript + 静的型付け”といった様相の言語です。
そのため、TypeScriptの静的型付け以外の部分は、JavaScriptそのものです。
逆に、JavaScriptといった既存言語に静的型付けの要素を足したものがTypeScriptと言えます。
特に、以下の”型”が特徴的です。
- 型注釈
- 型推論
例えば、型注釈は「変数が型を持っている」といった静的型システムの特徴を最も直接的に表す構文と言えます。
また、型推論の機能も充実しており、型注釈がなくても型を決めてくれる機能が同時に存在します。
高い表現力を持つ型システム
静的型付けを備えたプログラミング言語は多々ありますが、その中でもTypeScriptの型システムは類を見ない高い表現力を持っています。
高い表現力とは、端的に言えば”型”で様々なロジックを表せることを指します。
- プリミティブ型
- オブジェクト型
- 関数型
- リテラル型
- ユニオン型
- keyof型
TypeScriptの独特な設計パターンはこれらの型の存在が大きく、TypeScriptの「高い表現力」の源になります。
TypeScriptのメリット
やはり、TypeScriptのメリットとして静的型付けが欠かせません。
また、以下の項目が詳細なメリットになります。
- 静的型付けのメリット – 型安全性
- 静的型付けのメリット – ドキュメント化
それぞれのメリットについて解説します。
静的型付けのメリット – 型安全性
型安全性とは、間違ったプログラムをコンパイラが型チェックにより検出してくれる仕組みを指します。
TypeScriptプログラムをコンパイルすると、コンパイルエラーが発生します。
コンパイルエラーは主に、構文が正しくない構文エラーと型チェックが失敗した型エラーの2種類です。
特に、コンパイラによって型エラーが検出されるのが静的型付けの恩恵になります。
静的型付けのメリット – ドキュメント化
静的型付けのもう一つのメリットは、ドキュメント化です。
静的型付けがある言語は、型の情報がソースコードに書かれることになります。
型だけで関数等の全容が把握できるわけではありませんが、適切な関数名やコメントを組み合わせることでプログラムの読解時に中身を全て読む必要がなくなります。
とくに、大規模なプログラムにおいて複数人開発がほとんどであり、他者のプログラムを読む機会が増えてしまいます。
その際に、型による補助の効果は絶大になります。
TypeScriptのデメリット
本来は、JavaScriptと比較した際にコンパイルの役割を持つか持たないかが差異になります。
そのため、静的型システムを持つ言語に精通していない人は強いて言えば以下の項目がデメリットになる、あるいは感じてしまいます。
- TypeScriptのデメリット – コンパイルエラー
- TypeScriptのデメリット – 独自機能の利用
それぞれのデメリットを解説します。
TypeScriptのデメリット – コンパイルエラー
コンパイルの役割も持つ言語をあまり利用されない人は、コンパイルエラーの手間が厄介だと感じるかもしれません。
しかし、実際はコンパイルエラーは開発において頼もしい機能であり、ミスが発見しやすい、バグが少なくなる利点があります。
つまり、開発における成果物のクオリティが高まるわけです。
一長一短ではありますが、大規模開発の中で正しく動作する、ソースコードの可読性等を考慮するとデメリットはメリットにもなります。
TypeScriptのデメリット – 独自機能の利用
TypeScriptは、JavaScriptには存在しない独自機能がいくつか存在します。
具体的なもので言えば、enumやnamespaceになります。
開発当初はJavaScriptにない機能を追加していましたが、現在TypeScriptの方針として独自機能を追加しないことになっています。
また、筆者自身も独自機能を使うべきではないと考えます。
独自機能を使わない理由として、独自機能であるがゆえにコード記述の統一性や作成した機能が複雑になる欠点があります。
つまり、JavaScriptの構文に比べて複雑な挙動をする傾向になってしまいます。
そのため、実際は利便性のために独自機能が追加されていますが、複雑な挙動を持つプログラムの理解のしにくさにつながるため、筆者は積極的な利用はお勧めしません。
開発領域におけるTypeScriptの強み
開発領域としてフロントエンド・バックエンド両方でTypeScriptを導入・採用すると、多くのメリットが享受できます。
つまり、開発プロジェクト内で使用する言語が1つであることはメリットになります。
開発言語が1つであれば、以下の利点が生まれます。
- モジュール共有
- 開発プロジェクト内のノウハウ共有
- 学習コストパフォーマンス最大化
想像が容易いかと思いますが、開発領域を超えてTypeScriptで統一できれば、開発に利用するモジュールあるいはノウハウが領域間で共有できます。
また、言語2つ以上になれば学習コストが大幅に膨らみます。
そのため、統一言語としてTypeScriptを利用できれば、学習コストが減りパフォーマンスを最大化できます。
TypeScriptの良いところは?
JavaScriptに対してコンパイルし利用する言語を「AltJS」と呼び、TypeScriptもその一種になります。
多くのAltJSの中でもTypeScriptは、最も人気な言語の一つです。(ランキングトップクラス)
実際に、「Stack Overflow」や「The State of JavaScript」など様々なアンケート調査・サイトで人気度の高さを誇っています。
他にも以下のポイントで人気を博しています。
- ネット上における圧倒的な情報量
- エコシステムの充実度
- TypeScriptによる就職採用率
さらに詳しくTypeScriptの人気を知りたい人は、「【TypeScript】難しい理由と解決策を徹底解説!」を一読ください。
コメント