定数を使おう(const)
値が変わらないデータには const を使って定数として宣言できます。const と let の違いや、使い分けの指針を学びます。
定数とは
定数とは、一度代入したら値を変更しないデータのことです。TypeScript では、定数を宣言するために const キーワードを使います。
const greeting: string = "こんにちは"; console.log(greeting); // => こんにちは
前のレッスンで学んだ let と同じように、名前をつけてデータを保存できます。ただし、const で宣言したデータは後から上書きできないという違いがあります。
const で定数を宣言する
const の書き方は let とほぼ同じです。let の代わりに const と書くだけです。
const language: string = "TypeScript"; console.log(language); // => TypeScript
const で宣言するときは、宣言と同時に値を代入する必要があります。 let のように宣言だけして後から代入することはできません。
const message: string = "Hello"; // OK:宣言と代入を同時に行う
// 宣言だけして値を代入しないとエラーになる const message: string; // => error TS1155: 'const' declarations must be initialized.
const と let の違い
const と let の最大の違いは、後から値を変更できるかどうかです。
let は値を上書きできる
前のレッスンで学んだように、let で宣言した変数は後から別の値を代入し直せます。
let color: string = "赤"; // 新しい値で上書き color = "青"; console.log(color); // => 青
const は値を上書きできない
const で宣言した定数には、後から別の値を代入できません。再代入しようとすると、エラーが発生します。
const color: string = "赤"; // 定数に再代入しようとするとエラーになる color = "青"; // => error TS2588: Cannot assign to 'color' because it is a constant.
このエラーは「定数に値を代入しようとした」という意味です。プログラムのミスを早い段階で見つけられるため、安全にコードを書くことができます。
const と let の使い分け
TypeScript では、基本的に const を使い、値を変更する必要があるときだけ let を使うのがよいとされています。
// 名前は変わらないので const const name: string = "太郎"; // あいさつは後で変わるので let let greeting: string = "おはよう"; // let なので上書きできる greeting = "こんにちは"; console.log(name); // => 太郎 console.log(greeting); // => こんにちは
迷ったときは、まず const で宣言してみましょう。後から値を変更する必要が出てきたら、そのときに let に変えれば大丈夫です。
まとめ
constは値を変更しないデータを宣言するためのキーワードconstで宣言するときは、宣言と同時に値を代入する必要があるconstで宣言した定数に再代入するとエラーになるletは後から値を変更できるが、constはできない- 基本は
constを使い、再代入が必要なときだけletを使う
演習に挑戦