前述的な何か?
お疲れ様です。
最近、JavaScriptとTypeScriptって、違う言語でしょ。とかほざいてるやつがいるので、違いを書いてます。
TypeScriptとは
TypeScriptっていうのは、JavaScriptの拡張言語、スーパーセットというもので、動的型付け言語であるJavaScriptに対し、静的型付け、型付けを強化したものがTypeScriptっていう認識でほぼあってます。
ほかにもTypeScriptのほうが、長期的なアプリケーションに向いてるとかがあります。
TypeScriptで書くとなぜ、問題が少ないといわれるか。
よく、『JavaScriptよりTypeScriptで書いたほうが、バグとかは発生しにくい』とか言われます。
この理由は、先ほど書いたように、JavaScriptが動的型付け言語なのにたいし、TypeScriptは静的型付け言語だからです。
まぁだからですって言われて納得しないと思うので、しっかりした理由を書きます()
例えば以下のJavaScriptのコードがあるとします。
const title = "JSとTSの違い";
const write = 3000;
const all = title*write;
/* "title"は文字列、"write"は数値です。 */
このコード、パッと見たら、文字列に数値掛けたら構文エラー発生するくね?って思うかもしれませんが、実はコードを書くときはエラーが表示されないんです。
なぜなら、JavaScriptは、実行時に、型が決まるからで、書いているときは、何の型かわからないんです、
あ、ちなみに、このコード実行したら普通にエラー発生すると思いますよ。
さっきのコードをTypeScriptにしたらこうなります。
const title:string = "JSとTSの違い";
const write:number = 3000;
const all = title*write;//ここでエラーが発生。
/* "title"は文字列、"write"は数値です。 */
TSをよく知ってる方はわかると思います。
実行(JSにコンパイル)する前に、string(文字列)とnumber(数値)の変数を掛け算しようとしているため、エラーが発生します。
このように、変数に値を入れる際に、型を決めることでエラーを少なくするから、TypeScriptで書いたほうがバグが発生しにくいとか言われるのです。
あ、ちなみにTypeScriptにランタイムはないですよ。