はじめに
JavaScriptと同じScriptという名称が入った、TypeScriptというものがあるのを調べていく中でよく見かけました。
Scriptと冠するだけあってJavaScriptと何か関係があるのだろうな、と思い調べました。
JavaScriptについて簡単な振り返り
JavaScriptとはオブジェクト指向のスクリプト言語の一つで、主にWebページに動的な要素やインタラクティブな機能を追加するために使用されます。ReactやjQuery、Vue.jsなど様々なライブラリやフレームワークがあります。
JavaScript - MDN Web Docs - Mozilla
TypeScriptとは?
マイクロソフトで開発されたオープンソースのプログラミング言語で、JavaScriptに静的型付けとクラスベースのオブジェクト指向を加えたスーパーセット(既存のものをすべて含んだうえで機能が拡張されている上位互換となるもの)です。なので、TypeScriptで既存のJavaScriptコードをそのまま使用することもできます。また、大規模なアプリケーションの開発のために設計されているようです。
TypeScript: JavaScript With Syntax For Types.
JavaScriptとTypeScriptの比較
TypeScriptはJavaScriptを拡張したものだと分かりました。次に両者を比較します。
JavaScriptは動的型付けに対して、TypeScriptは静的型付けです。JavaScriptは変数の型を明示的に指定する必要がないですが、TypeScriptでは変数の型を明示的に指定することが出来ます。
// 変数textにstring型を定義する場合下記のように書きます。
let text: string = 'Hello';
// 変数textにstring型以外を再代入すると型エラーになります。
text = 40;
また、TypeScriptは型推論機能があり、型を自動で判断してくれます。
// 変数aに10を初期値として入力すると、number型と判断してくれます。
let a = 10;
これにより、コンパイル時にエラーを検出することが出来ます。
ただし、TypeScriptがコンパイル時にエラーを検出出来るということは、TypeScriptではコンパイルの必要があります。JavaScriptはコンパイルの必要がありません。
また、静的型付けであるため、JavaScriptの高い柔軟性が制限されやすい点も考慮に入れるべきでしょう。
JavaScript | TypeScript | |
---|---|---|
型付け | 動的型付け | 静的型付け |
型推論 | なし | あり(自動で判断) |
コンパイル | 必要なし | 必要あり(TypeScriptからJavaScriptにトランスコンパイル) |
柔軟性 | 高い | 静的型付けによって制限されることがある |
まとめ
TypeScriptはJavaScriptをベースにしたプログラミング言語で、JavaScriptとの互換性や、静的型付けなどによってミスによるエラーを極力減らしたい設計思想があることが分かりました。全体的に大規模プロジェクトにフォーカスした作りとなっており、JavaScriptと比べて保守性が高いことが分かりました。
一方、小規模プロジェクトではその恩恵をあまり受けられず、学習コストも相まってあまり使われないことも理解できました。
参考資料
JavaScript - MDN Web Docs - Mozilla
TypeScript: JavaScript With Syntax For Types.
採用拡大中!
アシストエンジニアリングでは一緒に働くフロントエンド、バックエンドのエンジニア仲間を大募集しています!
少しでも興味ある方は、カジュアル面談からでもぜひお気軽にお話ししましょう!
お問い合わせはこちらから↓
https://official.assisteng.co.jp/contact/