カテゴリ: 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の条件式におけるnull・undefined判定のコツ!初心者でもわかる判定方法ガイド
New2
JavaScript
JavaScriptの条件式で論理演算子(&&, ||, !)を活用する方法!初心者でもわかる使い方ガイド
New3
TypeScript
TypeScriptでエラー処理を共通関数化して効率的に開発しよう!初心者向け例外処理ガイド
New4
JavaScript
JavaScriptの条件式における比較演算子の使い方まとめ!初心者でもわかる基本ルールと活用法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのtoStringとString関数の違いを初心者向けに解説
No.3
Java&Spring記事人気No3
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptで統一感のあるコードを書くための基本ルール完全ガイド初心者向けコーディング規約入門
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptのonclick・onchangeなどの基本イベントを理解しよう
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptの数値フォーマット(小数点以下の桁数調整)を学ぼう
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptのnever型を使ったエラーハンドリング!例外処理を極める安全なコードの書き方