MENU

【TypeScript】特徴やメリット・デメリットを徹底解説!

TypeScriptは、JavaScriptに静的型システムを付け加えたプログラミング言語です。

JavaScriptはWebブラウザの中でとどまらず、サーバーサイド開発に拡大しています。

大規模になってきたJavaScriptのシステムを支えるため、開発を効率化するTypeScriptは広く用いられ始めています。

本記事では、TypeScriptの特徴やメリットなどを解説します。

目次

TypeScriptとは

TypeScriptは、MicroSoftによって開発されたプログラミング言語です。

TypeScriptの応用範囲は幅広く、JavaScriptを用いる新規プロジェクトではTypeScriptが使われるというのが当たり前の光景になりつつあります。

TypeScriptの特徴

TypeScriptはJavaScriptに類似していますが、JavaScriptと異なる点としていくつかの特徴を持ちます。

以下の内容がTypeScriptの特徴になります。

TypeScriptの特徴
  • 静的型システムを備えている
  • JavaScriptに対する静的型付け
  • 高い表現力を持つ型システム

上記の内容をそれぞれ解説します。

静的型システムを備えている

改めて、JavaScriptと異なる点として静的型システムを備えていることが特徴の一つになります。

TypeScriptにはコンパイラ(tsc)があり、これによってTypeScriptに対する型チェックを実施することが可能になります。

また、型に関連するプログラムの誤りに対してコンパイルエラーを検出できます。

JavaScriptに対する静的型付け

TypeScriptは”JavaScript + 静的型付け”といった様相の言語です。

そのため、TypeScriptの静的型付け以外の部分は、JavaScriptそのものです。

逆に、JavaScriptといった既存言語に静的型付けの要素を足したものがTypeScriptと言えます。

特に、以下の”型”が特徴的です。

TypeScriptの型
  • 型注釈
  • 型推論

例えば、型注釈は「変数が型を持っている」といった静的型システムの特徴を最も直接的に表す構文と言えます。

また、型推論の機能も充実しており、型注釈がなくても型を決めてくれる機能が同時に存在します。

高い表現力を持つ型システム

静的型付けを備えたプログラミング言語は多々ありますが、その中でもTypeScriptの型システムは類を見ない高い表現力を持っています。

高い表現力とは、端的に言えば”型”で様々なロジックを表せることを指します。

TypeScriptの型の種類(一部)
  • プリミティブ型
  • オブジェクト型
  • 関数型
  • リテラル型
  • ユニオン型
  • keyof型

TypeScriptの独特な設計パターンはこれらの型の存在が大きく、TypeScriptの「高い表現力」の源になります。

TypeScriptのメリット

やはり、TypeScriptのメリットとして静的型付けが欠かせません。

また、以下の項目が詳細なメリットになります。

TypeScriptのメリット
  • 静的型付けのメリット – 型安全性
  • 静的型付けのメリット – ドキュメント化

それぞれのメリットについて解説します。

静的型付けのメリット – 型安全性

型安全性とは、間違ったプログラムをコンパイラが型チェックにより検出してくれる仕組みを指します。

TypeScriptプログラムをコンパイルすると、コンパイルエラーが発生します。

コンパイルエラーは主に、構文が正しくない構文エラー型チェックが失敗した型エラーの2種類です。

特に、コンパイラによって型エラーが検出されるのが静的型付けの恩恵になります。

静的型付けのメリット – ドキュメント化

静的型付けのもう一つのメリットは、ドキュメント化です。

静的型付けがある言語は、型の情報がソースコードに書かれることになります。

型だけで関数等の全容が把握できるわけではありませんが、適切な関数名やコメントを組み合わせることでプログラムの読解時に中身を全て読む必要がなくなります。

とくに、大規模なプログラムにおいて複数人開発がほとんどであり、他者のプログラムを読む機会が増えてしまいます。

その際に、型による補助の効果は絶大になります。

TypeScriptのデメリット

本来は、JavaScriptと比較した際にコンパイルの役割を持つか持たないかが差異になります。

そのため、静的型システムを持つ言語に精通していない人は強いて言えば以下の項目がデメリットになる、あるいは感じてしまいます。

TypeScriptのデメリット
  • TypeScriptのデメリット – コンパイルエラー
  • TypeScriptのデメリット – 独自機能の利用

それぞれのデメリットを解説します。

TypeScriptのデメリット – コンパイルエラー

コンパイルの役割も持つ言語をあまり利用されない人は、コンパイルエラーの手間が厄介だと感じるかもしれません。

しかし、実際はコンパイルエラーは開発において頼もしい機能であり、ミスが発見しやすいバグが少なくなる利点があります。

つまり、開発における成果物のクオリティが高まるわけです。

一長一短ではありますが、大規模開発の中で正しく動作する、ソースコードの可読性等を考慮するとデメリットはメリットにもなります。

TypeScriptのデメリット – 独自機能の利用

TypeScriptは、JavaScriptには存在しない独自機能がいくつか存在します。

具体的なもので言えば、enumnamespaceになります。

開発当初はJavaScriptにない機能を追加していましたが、現在TypeScriptの方針として独自機能を追加しないことになっています。

また、筆者自身も独自機能を使うべきではないと考えます。

独自機能を使わない理由として、独自機能であるがゆえにコード記述の統一性や作成した機能が複雑になる欠点があります。

つまり、JavaScriptの構文に比べて複雑な挙動をする傾向になってしまいます。

そのため、実際は利便性のために独自機能が追加されていますが、複雑な挙動を持つプログラムの理解のしにくさにつながるため、筆者は積極的な利用はお勧めしません。

開発領域におけるTypeScriptの強み

開発領域としてフロントエンド・バックエンド両方でTypeScriptを導入・採用すると、多くのメリットが享受できます。

つまり、開発プロジェクト内で使用する言語が1つであることはメリットになります。

開発言語が1つであれば、以下の利点が生まれます。

TypeScriptを導入・採用するメリット
  • モジュール共有
  • 開発プロジェクト内のノウハウ共有
  • 学習コストパフォーマンス最大化

想像が容易いかと思いますが、開発領域を超えてTypeScriptで統一できれば、開発に利用するモジュールあるいはノウハウが領域間で共有できます。

また、言語2つ以上になれば学習コストが大幅に膨らみます。

そのため、統一言語としてTypeScriptを利用できれば、学習コストが減りパフォーマンスを最大化できます。

TypeScriptの良いところは?

JavaScriptに対してコンパイルし利用する言語を「AltJS」と呼び、TypeScriptもその一種になります。

多くのAltJSの中でもTypeScriptは、最も人気な言語の一つです。(ランキングトップクラス)

実際に、「Stack Overflow」や「The State of JavaScript」など様々なアンケート調査・サイトで人気度の高さを誇っています。

他にも以下のポイントで人気を博しています。

TypeScriptが人気なポイント
  • ネット上における圧倒的な情報量
  • エコシステムの充実度
  • TypeScriptによる就職採用率

さらに詳しくTypeScriptの人気を知りたい人は、「【TypeScript】難しい理由と解決策を徹底解説!」を一読ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次