1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JavaScriptとTypeScriptって、違う言語ではなく、なんなら、ほぼ同じまである。

Posted at

前述的な何か?

お疲れ様です。
最近、JavaScriptTypeScriptって、違う言語でしょ。とかほざいてるやつがいるので、違いを書いてます。

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にランタイムはないですよ。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?