TypeScriptってなんやねん
TL;DR
TypeScriptは静的型付けなJavaScriptで、保守性向上に貢献
TypeScriptとは
TypeScriptとはなんでしょうか。
とりあえず、Wikipediaを見てみましょう。
TypeScript はマイクロソフトによって開発され、メンテナンスされているフリーでオープンソースのプログラミング言語である。TypeScriptはJavaScriptに対して、省略も可能な静的型付けとクラスベースオブジェクト指向を加えた厳密なスーパーセットとなっている。
TypeScript - Wikipedia
TypeScriptとはプログラミング言語です。
Wikipediaを見る限り次のような特徴があります。
- マイクロソフトによって開発、メンテナンスが行われている
- フリー・オープンソース
- 省略可能な静的型付け
- クラスベースオブジェクト指向
- JavaScriptのスーパーセット
つまり、TypeScriptは静的型付けとオブジェクト指向を取り入れたJavaScriptの拡張だということです。
続いて、公式HPを見てみましょう。
次のように、書かれています。
"TypeScript is JavaScript with syntax for types."
"TypeScriptは、型構文をもつJavaScriptである."
ということで、やっぱりTypeScriptはJavaScriptに型を追加したものであることがわかります。
TypeScriptはオープンソースです。
GitHubにリポジトリがあります。
使われている言語を見てみると、TypeScript 100%となっており、TypeScript自体がTypeScriptで書かれていることが確認できます。
TypeScriptはコンパイラ!?
TypeScriptは型構文をもつJavaScriptであるということはわかりました。
では、TypeScriptはどのように実行するのでしょうか。
JavaScriptの場合は、ブラウザやNode.jsが実行します。
それは、各ブラウザはJavaScriptを実行できるようになっているからです。
(バージョンの話とかありますが割愛)
TypeScriptの実装は、TypeScriptからJavaScriptへのコンパイラとなっています。
つまり、TypeScriptで書かれたプログラムは、コンパイルされてJavaScriptへと変換されます。
そして、変換されたJavaScriptがブラウザやNode.jsで実行されます。
TypeScriptコンパイラはそのコンパイル時に、型チェックやエラーチェックを行います。
これにより、明らかなエラーを先に見つけることができます。
例えば、JavaScriptの場合、実行時にエラーとなるため、次のようなエラーが続発することがあります。
Uncaught TypeError: Cannot read property *** of undefined
TypeScriptを利用している場合、コンパイル時にこのようなエラーを見つけることができます。
どうしてTypeScriptが必要?
JavaScriptに変換されるのに、どうしてTypeScriptを使うのでしょうか。
主な理由は、保守性を高めることができるから、です。
TypeScriptは、静的型付け言語でコンパイル時に、型チェック・エラーチェックが行われます。
先に述べたUncaught TypeError: Cannot read property *** of undefined
のようなエラーもコンパイル時にわかります。
これにより保守性を高めることができます。
また、コードを読むときにも、型が分かっているほうが読みやすいです。
動的型付けだと、実行時にコンピュータが自動で型を判断してくれます。
ただし、コーディングしてるときは、エンジニアが脳内で型を判断しながらコードを読む必要があります。
そのため、静的型付けで型がはっきりと書かれているとコードが読みやすくなります。
ほかにも、TypeScriptを使っていると、VSCodeなどのエディタの入力補完が協力になります。
JavaScriptを書いているときよりも、TypeScriptを書いているほうが強力な入力補完を使うことができ、タイポを減らしたり、楽にコーディングが可能になります。