まえがき
SEとしての新人研修の中でTypeScriptについて学んだので忘れないためのメモ書きです。「TypeScript」を学ぶつもりなのに、講師やサイト、教本でJavaScriptについて触れることも多く、ごっちゃになることがあるので整理したいと思う。
JavaScriptとTypeScriptの同じこと
どちらも言語の特徴として、インタプリタ型であること。
・インタプリタ型とは...
コードを1行1行ごとに実行するプログラミング言語。プログラムの実行速度よりも効率性や柔軟にコードを書いていくことに重きを置かれている。動的言語、軽量級言語、スクリプト系言語と呼ばれることもある。
・「コードが1行ずつ実行」(コンパイル(後述)しない)
・実行速度 < 効率性、柔軟性
(柔軟性については、コードを書いているときにエディタの方が臨機応変に対応しながらコードを実行してくれている感じがする)
Perl,Ruby,PHP,Python,JavaScript,TypeScript
インタプリタ型と比較されるのが、コンパイル型。
・コンパイル型とは...
コンパイラ型ともいう。書いたコードを保存して実行するまえに、コンパイルという処理を挟む。(コンパイルとは、人間が理解できるプログラミングコードを機械が理解できる言葉に"翻訳"する作業)実行速度が速い。
Java,Scala,Kotlin,C#,Go,Rust
ここからが本題、JavaScriptとTypeScriptの違いについて
JavaScriptとは、、、
LiveScriptと呼ばれるプログラミング言語だったが、Java人気にのっかって後からJavaScriptに名称変更した
バージョンの変更するごとに仕様が頻繁に変わる
フロントエンドだけでなく、バックエンドもこなすので、広く使われる言語のひとつになった。
コードファイルの拡張子は「.js」
JavaScriptの略称をJSと表記することもある。
TypeScriptとは、、、
一般的に言うAltJS言語(Alternative JavaScript言語,代替JavaScript言語)。TypeScriptでコードを書き「トランスコンパイル」することで、JavaScriptにj変換される。
JSの上位互換…充実した型サポートと方推論でVScode上で実装できる。
コードファイルの拡張子は「.ts」
TypeScriptの略称をTSと表記することもある。
まとめ
要は、JSの上位互換として、TSがあるので、調べ物の際に「TypeScriptについて実装の仕方を知りたいから、JavaScriptの内容が出てくるのはなんで??」という不安は気にしなくてもよい。
参考
https://speakerdeck.com/iwasiman/history-of-programming-languages-with-gopher?slide=14