カテゴリ: TypeScript 更新日: 2025/12/08

TypeScriptとJavaScriptでの変数宣言の違い(型注釈あり/なし)

TypeScriptとJavaScriptでの変数宣言の違い(型注釈あり/なし)
TypeScriptとJavaScriptでの変数宣言の違い(型注釈あり/なし)

先生と生徒の会話形式で理解しよう

生徒

「TypeScriptとJavaScriptって似ているって聞いたんですけど、変数の宣言に違いがあるんですか?」

先生

「はい、両方ともletconstを使って変数を宣言できます。しかし、TypeScriptには型注釈という機能があり、これが大きな違いなんです。」

生徒

「型注釈って何ですか?難しそう…」

先生

「大丈夫です。型注釈とは、その変数がどんな種類の値を扱うのか前もって決める仕組みのことです。例え話を使って説明していきますね。」

1. TypeScriptとJavaScriptの基本的な違い

1. TypeScriptとJavaScriptの基本的な違い
1. TypeScriptとJavaScriptの基本的な違い

TypeScript(たいぷすくりぷと)とJavaScript(じゃばすくりぷと)は、どちらもWeb開発で広く使われている人気のプログラミング言語です。しかし、TypeScriptは静的型付けという特徴を持っています。静的型付けとは、変数の種類(数値、文字列など)をあらかじめ決めておく仕組みのことで、プログラムを書いている段階で誤りを発見できるという大きな利点があります。

一方、JavaScriptは動的型付けであり、変数の型を宣言せずに自由に使えます。これは簡単に書けるというメリットがある一方で、意図しない型の値を扱ってしまい、エラーに気づくのが実行時になるという問題もあります。

2. JavaScriptの変数宣言(型注釈なし)

2. JavaScriptの変数宣言(型注釈なし)
2. JavaScriptの変数宣言(型注釈なし)

まずはJavaScriptでの変数宣言の例を見てみましょう。JavaScriptでは、型について何も書かずに変数を宣言します。値を好きなように変えることもできます。


let value = 10;
value = "文字列に変更";  // JavaScriptでは自由に代入できる
console.log(value);

文字列に変更

最初は数値(すうち)だった変数に文字列(もじれつ)を代入しても、JavaScriptではエラーになりません。しかし、大きなプログラムでは、この自由さが原因で重大なバグにつながってしまうことがあります。

3. TypeScriptの変数宣言(型注釈を使う)

3. TypeScriptの変数宣言(型注釈を使う)
3. TypeScriptの変数宣言(型注釈を使う)

TypeScriptでは、変数の型を明確に宣言します。型注釈を使うことで、プログラムを実行する前に誤りを見つけることができます。


let age: number = 18;
age = 20;      // OK
age = "二十歳"; // エラーになる

数値型を意味するnumberという型注釈を指定しています。そのため、文字列を代入しようとすると、TypeScriptは「型が違います」と教えてくれます。

これは、学校でノートと教科書を区別して整理しておくのと似ています。ノートの棚に教科書を入れようとすると違和感がありますよね。それと同じで、TypeScriptは間違ったものを入れようとすると教えてくれるのです。

4. 型注釈が役立つ場面の例

4. 型注釈が役立つ場面の例
4. 型注釈が役立つ場面の例

例えば、ユーザーの年齢を扱う場面を考えてみましょう。年齢は数値であり文字列ではありません。正しい型を強制することで、プログラムの品質と信頼性が大きく向上します。


function showAge(age: number) {
    console.log(`あなたの年齢は${age}歳です`);
}

showAge(25);     // OK
showAge("三十"); // エラー

エラー: string型はnumber型に代入できません

このように、TypeScriptの型注釈はプログラムの安全性を守る重要な役割を持っています。

5. 型注釈は必ず必要?

5. 型注釈は必ず必要?
5. 型注釈は必ず必要?

TypeScriptでは、すべての変数に型注釈を付ける必要はありません。代入する値から自動的に型を推論(すいろん)する、型推論という仕組みがあります。


let score = 80; // 自動的にnumber型と判断される
score = 90;     // OK
score = "高得点"; // エラー

ただし、チーム開発や規模が大きい開発では、より安全性を高めるために型注釈を明示することが推奨されています。

6. TypeScriptとJavaScriptの違いまとめ表

6. TypeScriptとJavaScriptの違いまとめ表
6. TypeScriptとJavaScriptの違いまとめ表

変数宣言の違いをわかりやすく比較してみましょう。

項目 TypeScript JavaScript
型注釈 あり(指定可能) なし
型チェック コンパイル時にチェック 実行時に問題が発生
安全性 高い 低め
学習のしやすさ 少し難しいが安全 簡単で自由
カテゴリの一覧へ
新着記事
New1
JavaScript
JavaScriptの配列から要素を削除する方法(pop, shift, spliceなど)完全ガイド
New2
JavaScript
JavaScriptで配列を作成する方法!リテラル表記とArrayコンストラクタを比較
New3
TypeScript
TypeScriptのUnion型とMapped Typesの活用法!初心者向け解説
New4
JavaScript
JavaScriptのデータ型の違いを表で比較しよう(一覧解説)
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.3
Java&Spring記事人気No3
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptでJSONを文字列に変換する方法を初心者向けに解説!JSON.stringifyの使い方ガイド
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptでJSON操作の注意点を徹底解説!初心者でも安全に扱える方法
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptの配列の一部を切り出す(slice, spliceの使い方)
No.7
Java&Spring記事人気No7
TypeScript
TypeScriptで関数の型を再利用!ParametersとReturnTypeの使い方を初心者向けに徹底解説
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptで使える基本の型一覧(string, number, booleanなど)