【TypeScriptとは?】その特徴を徹底解説!気になる将来性から人気の理由までご紹介します!
近年、Web業界でTypeScriptの人気が急上昇しています。プログラマなら一度は耳にしたことがあるのではないでしょうか?では何故ここまでTypeScriptが人気になったのでしょうか。JavaScriptと何が違うのでしょうか。本記事ではTypeScriptの魅力とJavaScriptの関係性と初めて読む人でもわかりやすく解説します。
目次
TypeScriptとは?
TypeScriptは2012年にマイクロソフト社によって開発された新しいプログラミング言語ですが、Swiftのような全く新しい言語というわけではなく、JavaScriptのトランスパイラにあたります。
トランスパイラというのは、ある言語で書かれたソースコードを別の言語へ変換することです。つまり、TypeScriptで書かれたソースコードは最終的にJavaScriptへ変換されるのです。
TypeScriptを簡単に一言でまとめると、基盤はJavaScriptを採用し、更に使いやすくするための機能や構文を追加された言語です。
誰が使うのか?
JavaScript開発者全般が対象です。JavaScript大規模開発ですと、管理が大変、そもそもデバッグしにくいと感じる方も多いと思います。
TypeScriptはJavaScriptの欠点を補ったより使い勝手の良い機能が多数存在するため、JavaScirptで開発され続けている方には開発効率が何倍にも上がる可能性があります。
TypeScriptの特徴
静的型付け
TypeScriptは静的型付け言語です。(JavaScriptは動的型付け言語)
静的型付け言語は型を事前に定義しないとコンパイル時に未定義エラーが生じます。全て宣言しなければならない手間と引き換えに開発をスムーズに進めるためのメリットが多数ありますので本記事にて後述します。
他の言語でもC++,C,Swif,Java等が静的型付き言語です。
クラスベースオブジェクト指向
TypeScriptはクラスベースオブジェクト指向です。
(JavaScriptはプロトタイプベースのオブジェクト指向スクリプト言語)
クラスベースオブジェクト指向言語の譲渡はクラスの継承関係にもとづいて行ないます。
よって新しいオブジェクトを作成するときは「クラスのインスタンス」を作ります。
対して、プロトタイプベースのオブジェクト指向言語の譲渡は「プロトタイプ」と呼ぶ既存のオブジェクトに投げます。よって新しいオブジェクトを作成するときは、「プロトタイプのクローン」を作ります。
プロトタイプを使用して疑似的にクラスを作成します。
C#のリードアーキテクチャ
「Turbo Pascal」「Delphi」「C#」「VB」の開発者でもあるアンダース・ヘルスバーグ氏がTypeScriptの開発に関わっています。
アンダース・ヘルスバーグ氏の設計方針として
・オブジェクト指向ベース
・優れた開発生産性
・各種言語の良いところを新言語仕様に適応
など、アーキテクチャの鏡のような人物です。実際にTypeScriptにもC#の設計がいくつか取り入れられています。
TypeScriptはJavaScriptのスーパーセット
簡単にいうとJavaScriptの上位拡張仕様です。JavaScriptとの互換性もあり、JavaScriptの機能を100%使える上で、TypeScriptの独自の機能も使えます。
TypeScriptの将来性
今や人気言語の一つ
2019年6月の人気言語ランキングは以下です。
1 JavaScript
2 Java
3 Python
4 PHP
5 C++
5 C#
7 CSS
8 Ruby
9 C
10 TypeScript
引用元:https://redmonk.com/sogrady/2019/03/20/language-rankings-1-19/
見事にTOP10入りを果たし、話題のSwiftよりも上位です。前回は12位でしたので2つ順位を挙げており、近年好調といえます。また、TypeScriptが人気である要因の1つにJavaScriptが不動の1位を獲得していることも挙げられます。
altJSにおいても頭一つ飛びぬけている言語
altJSとは「alternative JavaScript」の略で、代替JavaScript言語のことです。altJSで書かれたプログラムは、コンパイルすることで最終的にJavaScriptコードを生成することができます。
それではaltJSの人気ランキングはこちらです。
1.TypeScript(69.14%)
2.CoffeeScript(41.14%)
3.Dart(16.57%)
4.Haxe(14.86%)
5.JSX(7.43%)
引用元:https://www.buildinsider.net/hub/survey/201404-techtrend-en
TypeScriptは昔から知られるCoffeeScriptを抜かし、頭一つ抜きんでています。つまりaltJSとしてもとても優秀な言語だといえます。
有名企業が多数使っている
数多くの企業が使用しているため、代表してビッグネームの企業を挙げます。
・Microsoft
・BMW
・VMWare
GoogleではライバルのMicrosoft社製であるにもかかわらず、TypeScriptを標準言語として採用した実績があります。
需要があるためTypeScriptの開発がストップするということはないと考えられます。
人気の理由
なぜここまで人気が出たのかをTypeScriptの特徴から分析します。
静的型付けで開発効率アップ
静的型付き言語には多数のメリットがあります。
①エディターやIDE(統合開発環境)のサポートが受けやすいです。
様々なAPIを利用していると、開発中に細かいメソッド名がわからなくことがありますが、そのたびに名前を調べるの効率的ではありません。TypeScirptが対応された環境だとメソッドの候補や引数も入力補完してくれます。
②コンパイル時にエラーを発見することが容易になっています。
動的型付け言語ですと自由度が高い代わりに実行時エラーなど実行しなければ出現しないエラーが存在します。
③JavaScriptのオブジェクトを型として定義することもでき、型が宣言されているため、わざわざキャストする必要もありません。特に大勢の人がアサインされる大規模の開発に有効です。
Classが使える
そもそも、JavaScriptにクラスという概念は存在していません。(プロトタイプベースのため)
JavaScriptでは、クラスの代わりにプロトタイプと関数を駆使して疑似クラスで対応していましたがこの書き方は読みにくく、コードも無駄にたくさん書くため敬遠されがちでした。
そんな中、TypeScriptによるClassの概念が投入されました。クラスベースなのでJavaやC++と同じ概念であり同等の使い方ができます。
多数のIDEやテキストエディタで対応
当初はVisual Studioしかなかった開発環境が今では多数のIDEやエディタが対応しました。
・Microsoft Visual Studio
・Visual Studio Code
・WebMatrix
・IntelliJ IDEA
・WebStorm
・Eclipse
・NetBeans
・Sublime Text
・Emacs
・Vim
・Cloud9 IDE
・Codenvy
・Codeanywhere
・Atom
TypeScriptのコンパイラの設定が簡単
TypeScriptのコンパイラは、npmモジュールとして配布されています。Babelのような複雑な設定やプラグインを入れる必要はありません。
`tsconfig.json`という設定ファイルを作る必要はありますが、最低限の設定でコンパイルすることができます。参考ですが、`tsc`は`jsx`のコンパイラも含んでおり、ReactのコンポーネントもJavaScriptにコンパイルできます。
JavaScriptからTypeScriptの移行時に大きな書き換えが不要
TypeScriptはJavaScriptのスーパーセット(上位拡張仕様)なので、移行するために大きな書き換えをする必要はありません。一度に1モジュールずつ、徐々に実行できます。
更に新しい文法を使っても古い環境で動作させることができます。
ちなみにAngularJSもJavaScriptからTypeScriptに上記の方法で移管したようです。
コードがわかりやすくなるため、大規模開発のスピードが上がる
TypeScriptは静的型付き言語なのでfunctionを呼び出すときにIDEやエディタでコード補完され、第三者がソースコードをみても理解しやすくなります。
また、クラス定義や名前空間といったモジュールの要素がありますのでコードは汚染されることなく切り分けすることができます。
まとめ
TypeScirptはJavaScriptの欠点を補い、更に効率的に開発を進めるための言語です。今までJavaScriptしか使ってこなかった方や少しでも興味がある方は簡単にインストールできるので一度インストールしてみてはいかがでしょうか。
あわせて読みたい関連記事
この記事を読んでいる人におすすめの記事