変数を使おう(let)
変数は、データを保存しておくための仕組みです。let を使った変数の宣言と、型注釈を付けて値を代入する方法を学びます。
変数とは
変数とは、データを入れておく「箱」のようなものです。箱に名前をつけて、その中にデータを保存できます。
let name: string = "TypeScript"; console.log(name); // => TypeScript
上のコードでは、name という名前の箱を作り、その中に "TypeScript" という文字列を入れています。console.log(name) で箱の中身を出力すると、TypeScript と出力されます。
let で変数を宣言する
TypeScript では、変数を使う前に「この名前の変数を使います」と宣言する必要があります。変数の宣言には let キーワードを使います。
let message;
これで message という名前の変数が作られました。この時点では、変数の中身は空(undefined)です。
undefined については後のレッスンで詳しく学びます。今は undefined とは「まだ何も入っていない状態」のことだと覚えておきましょう。
変数への代入
変数にデータを入れることを代入と呼びます。代入には = を使います。
let message; // 変数 message に "Hello" を代入 message = "Hello"; console.log(message); // => Hello
ここで重要なのは、= は「等しい」という意味ではなく、「右辺の値を左辺の変数に入れる」 という意味だということです。
// 右辺の "こんにちは" を左辺の greeting に代入する let greeting; greeting = "こんにちは"; console.log(greeting); // => こんにちは
宣言と代入を同時に行う
変数の宣言と代入は、1行で書くこともできます。
let fruit = "りんご"; console.log(fruit); // => りんご
このように書くと、変数の宣言と同時に値を代入できます。実際のプログラムでは、この書き方がよく使われます。
型注釈をつける
TypeScript では、変数に型を指定できます。型とは、その変数にどんな種類のデータが入るかを示すものです。
型を指定するには、変数名の後ろにコロン(:)と型名を書きます。
let 変数名: 型 = 値;
例えば、文字列を入れる変数には string 型を指定します。string はダブルクォーテーション(")やシングルクォーテーション(')で囲んだ文字列を表す型です。
// string 型の変数を宣言して文字列を代入 let greeting: string = "こんにちは"; console.log(greeting); // => こんにちは
string 型について詳しくは後のレッスンで学びます。
型注釈をつけると、型が合わない値を代入したときにエラーになります。例えば、string 型の変数に数値を入れようとするとエラーになります。
// string 型の変数に数値を代入しようとするとエラーになる let name: string = 100; // => error TS2322: Type 'number' is not assignable to type 'string'.
このように、型注釈をつけておくと間違った種類のデータを入れてしまうミスを防げます。
型注釈を省略した場合、TypeScript が代入された値から自動的に型を判断します。これを型推論と呼びます。型推論については後のレッスンで詳しく学びます。
変数名のルール
TypeScript の変数名には以下のルールがあります。
使える文字
- 英字(a-z, A-Z)
- 数字(0-9)
- アンダースコア(_)
- ドル記号($)
let name: string = "太郎"; // OK let userName: string = "花子"; // OK let item1: string = "りんご"; // OK(数字を含められる) let _private: string = "秘密"; // OK(アンダースコアで始められる)
使えない文字・形式
- 数字で始まる名前
- 英字、数字、アンダースコア、ドル記号以外の文字(例:スペース、ハイフン、記号など)
- 予約語(TypeScript が使う特別な単語)
// 以下はすべてエラーになります let 1name = "太郎"; // 数字で始まっている let user-name = "花子"; // ハイフンを含んでいる let let = "hello"; // let は予約語
良い変数名のつけ方
変数名は、中身がわかりやすい名前をつけましょう。
// 良い例:何が入っているかわかる let userName: string = "田中"; let message: string = "こんにちは"; // 悪い例:何が入っているかわからない let x: string = "田中"; let a: string = "こんにちは";
変数の上書き
let で宣言した変数には、後から別の値を代入し直すことができます。
let color: string = "赤"; console.log(color); // => 赤 // 新しい値で上書き color = "青"; console.log(color); // => 青
上書きすると、前の値は消えて新しい値に置き換わります。
上書きするときは let を付けません。let は最初の宣言時にだけ使います。
まとめ
- 変数はデータを入れておく「箱」のようなもの
letキーワードで変数を宣言する=を使って変数に値を代入する(=は「代入」の意味)- 型注釈をつけると、変数に入るデータの種類を指定できる(構文:
let 変数名: 型 = 値;) - 変数名は英字・アンダースコア・ドル記号で始め、英数字・アンダースコア・ドル記号が使える
letで宣言した変数は後から上書きできる
演習に挑戦