TypeScriptとJavaScriptの型エラー事例から学ぶ設計の違い
生徒
「TypeScriptとJavaScriptって、何がそんなに違うんですか?同じように書けるって聞きました」
先生
「見た目は似ていますが、エラーの考え方や設計の考え方が大きく違います」
生徒
「エラーって、実行したら出るものじゃないんですか?」
先生
「JavaScriptは実行してから、TypeScriptは実行する前に気づける点が大きな違いです」
1. JavaScriptとTypeScriptの基本的な考え方の違い
JavaScriptとTypeScriptは、とてもよく似た文法を持つプログラミング言語です。しかし、設計思想にははっきりとした違いがあります。JavaScriptは「とりあえず動かすこと」を重視した言語で、多少間違った書き方でも実行時までエラーが分かりません。一方でTypeScriptは「事前にミスを防ぐこと」を重視し、コードを書いた段階で問題点を見つけてくれます。
この違いを理解するためには、型という考え方が重要です。型とは、「この箱には数字だけ入る」「この箱には文字だけ入る」といったルールのようなものです。TypeScriptは、このルールをとても大切にします。
2. JavaScriptで起こりやすい型エラーの例
まずはJavaScriptでよく起こる型エラーの例を見てみましょう。初心者の方がつまずきやすいポイントでもあります。
let price = "100";
let total = price * 2;
console.log(total);
このコードでは、一見すると「100円を2倍する」ように見えます。しかし、priceは文字として扱われています。JavaScriptでは実行してみるまで問題に気づきにくく、結果が予想と違っても原因が分かりにくいことがあります。
200
今回はたまたま動きましたが、他の場面では思わぬ不具合につながることがあります。このようにJavaScriptは自由度が高い反面、設計ミスに気づきにくい特徴があります。
3. TypeScriptではどうなるのか
同じ処理をTypeScriptで書いてみましょう。TypeScriptでは、変数に型を指定できます。これにより、間違った使い方をした時点でエラーを教えてくれます。
let price: number = "100";
let total = price * 2;
このコードは実行する前にエラーになります。「数字として使うと宣言したのに、文字を入れている」という問題を事前に教えてくれるのです。これは、家を建てる前に設計図の間違いを見つけるようなものです。
4. 型エラー事例から分かる設計の違い
JavaScriptでは「動けばOK」という考え方になりやすく、後から不具合が見つかることが少なくありません。一方TypeScriptでは、「どういうデータを扱うのか」を最初に考える必要があります。
これは少し面倒に感じるかもしれませんが、結果的にコードの意味が分かりやすくなります。変数や関数の役割がはっきりし、他の人が読んでも理解しやすい設計になります。
5. 初心者にとってTypeScriptが安心な理由
プログラミング未経験の方は、「エラーが怖い」と感じることが多いです。TypeScriptは、その不安を減らしてくれる言語です。間違った書き方をすると、すぐに教えてくれるため、原因を一つずつ理解しながら学習できます。
JavaScriptでは実行してからエラーが出るため、「なぜ動かないのか分からない」状態に陥りやすいですが、TypeScriptではその前段階で止めてくれます。これは、初心者にとって大きな安心材料です。
6. TypeScriptとJavaScriptの違いを理解することの大切さ
TypeScriptとJavaScriptの違いは、単なる書き方の違いではありません。エラーとの向き合い方、プログラム全体の設計の考え方に直結します。型エラーの事例を通して、「事前に防ぐ設計」の重要性が見えてきます。
TypeScriptは、プログラムを安全に、そして長く使える形で作るための道具です。最初は難しく感じても、型エラーが教えてくれる内容を一つずつ理解していくことで、自然と設計力が身についていきます。