TypeScriptは、プログラミング言語の中で静的型システムを備えたものになります。
フロントエンド言語としてJavaScriptが存在しますが、JavaScriptを一部強化するために開発されています。
本記事では、そんなTypeScriptとJavaScriptを端的に比較して言語の難易度を中心に解説します。
TypeScriptとは
TypeScriptは、MicroSoftによって開発されたプログラミング言語です。
TypeScriptの応用範囲は幅広く、JavaScriptを用いる新規プロジェクトではTypeScriptが使われるというのが当たり前の光景になりつつあります。
TypeScriptとJavaScriptの違いと難易度
TypeScriptは、”JavaScript + 静的型付け”である言語です。
つまり、端的にTypeScriptとJavaScriptの違いで言えば、静的型付けが利用できるかどうかになります。
TypeScriptとJavaScriptがどのような関係にあるか理解することで、TypeScriptの学習の上で重要になります。
そのため、JavaScriptよりも覚えることが多く、比較すると難易度が高めになります。
TypeScriptの特徴
TypeScriptは、静的型付け以外の部分はJavaScriptそのものです。
そのため、TypeScriptはJavaScriptに類似していますが、JavaScriptと異なる点としていくつかの特徴を持ちます。
以下の内容がTypeScriptの特徴になります。
- TypeScriptはJavaScriptと互換性が高い
- TypeScriptは型定義ができる
それぞれの特徴についてそれぞれ解説します。
TypeScriptはJavaScriptと互換性が高い
上述した通り、TypeScriptはJavaScriptに静的型付けを付与した言語になります。
そのため、基本的に言語同士の互換性は非常に高いです。
また、TypeScriptの利用者はもともとJavaScriptを使用していた人が多く、JavaScript開発をさらに便利に実施するためのツールとしてTypeScriptが用いられます。
今後、開発のクオリティを高めるために、JavaScriptのみを利用している人はぜひTypeScriptに取り組むのをお勧めします。
TypeScriptは型定義ができる
何度も記載しているためくどいかもしれませんが、TypeScriptは静的型付けを備えるプログラミング言語になります。
また、代表的な型として以下の項目があります。
- プリミティブ型
- オブジェクト型
- 関数型
- リテラル型
- ユニオン型
- keyof型
さらに高度な型も存在しますが、基本的に押さえるべき”型”は上記で満たせるでしょう。
TypeScriptのメリット
やはり、TypeScriptのメリットとして静的型付けが欠かせません。
また、以下の項目が詳細なメリットになります。
- 静的型付けのメリット – 型安全性
- 静的型付けのメリット – ドキュメント化
静的型付けのメリットをさらに詳しく理解したい人は、「【TypeScript】特徴やメリット・デメリットを徹底解説!」を一読ください。
TypeScriptはなぜ人気なのか?
JavaScriptに対してコンパイルし利用する言語を「AltJS」と呼び、TypeScriptもその一種になります。
多くのAltJSの中でもTypeScriptは、最も人気な言語の一つです。(ランキングトップクラス)
実際に、「Stack Overflow」や「The State of JavaScript」など様々なアンケート調査・サイトで人気度の高さを誇っています。
他にも以下のポイントで人気を博しています。
- ネット上における圧倒的な情報量
- エコシステムの充実度
- TypeScriptによる就職採用率
さらに詳しくTypeScriptの人気を知りたい人は、「【TypeScript】難しい理由と解決策を徹底解説!」を一読ください。
TypeScriptのデメリット
本来は、JavaScriptと比較した際にコンパイルの役割を持つか持たないかが差異になります。
そのため、静的型システムを持つ言語に精通していない人は強いて言えば以下の項目がデメリットになる、あるいは感じてしまいます。
- TypeScriptのデメリット – コンパイルエラー
- TypeScriptのデメリット – 独自機能の利用
静的型付けのデメリットをさらに詳しく理解したい人は、「【TypeScript】特徴やメリット・デメリットを徹底解説!」を一読ください。
TypeScriptの欠点とは
TypeScriptを利用する上で、TypeScriptで解決できない場面を把握しておくことは重要です。
開発時にTypeScriptの欠点を理解することで、改善策が立てやすいからです。
TypeScriptの言語特性からアプローチできるかどうかを知っておきましょう。
- 実行時の高速化・省メモリ化に影響しない
- TypeScriptランタイムはない
- TypeScriptコンパイラは最適化しない
実行時の高速化・省メモリ化に影響しない
TypeScriptとJavaScriptを比較する中で、次のような議論が見受けられます。
- TypeScriptはJavaScriptで書くより低速になるのでは?
- TypeScriptはJavaScriptよりメモリ消費量が大きいのでは?
結論から言えば、TypeScriptの実行時パフォーマンスはJavaScriptと同等です。
上記を理解するには、2つのポイントを押さえておく必要があります。
TypeScriptランタイムはない
TypeScriptはランタイムがありません。
つまり、TypeScriptを直接実行する環境(エンジン)がないということになります。
TypeScriptで記述したコードの実行時は、JavaScriptにコンパイルして実行する必要があります。
そのため、コンパイル後のJavaScriptコードによってTypeScriptのパフォーマンスが決定します。
TypeScriptコンパイラは最適化しない
基本的に「コンパイラ」は、以下の3つが役割になります。
- ソースコード解析後、エラーチェックする
- ソースコードを別言語に変換する(トランスパイル)
- ソースコードを最適化する
3つのうち、上記2つがTypeScriptコンパイラの役割になります。
TypeScriptコンパイラは型になる記述を消去するだけで、ほぼそのままJavaScriptに変換します。
TypeScriptで利用できるフレームワーク
TypeScriptで利用されるフレームワークは、JavaScriptで利用されるフレームワークになります。
実際に開発現場で活躍する代表的なフレームワークは以下のものになります。
- Angular.js
- Vue.js
- React.js
特に、Meta社(旧:Facebook)が開発したReact.jsが最も開発現場で利用されている印象です。
基本的に、以下の条件下で上記のフレームワークが効率的に利用されています。
- SPA開発
- 大規模なWebアプリ開発
- スマホアプリ開発(クロスプラットフォーム)
それぞれのフレームワークにも特徴はありますが、開発現場で有効になるFWを活用するのがおすすめです。
コメント