カテゴリ: 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
TypeScript
TypeScriptとESNextの連携を完全ガイド!最新機能を使いこなす設定と対応法
New2
JavaScript
JavaScriptの正規表現で任意の1文字(.)や文字クラスを使う方法
New3
TypeScript
TypeScriptで非同期イテレーター(for await of)を活用する
New4
TypeScript
TypeScriptで「Hello World」を出力する手順と解説
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptの日時操作Tips!実務で役立つテクニック集
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.4
Java&Spring記事人気No4
TypeScript
TypeScriptのif文の使い方を完全ガイド!初心者でもわかる条件分岐
No.5
Java&Spring記事人気No5
TypeScript
TypeScriptでESLintとPrettierを導入!コード整形ルールを自動で統一する方法
No.6
Java&Spring記事人気No6
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptの配列の要素にアクセスする方法(インデックス番号の使い方)
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptの正規表現で文字列を置換する方法(replaceメソッド)