スポンサーリンク

【TypeScript】letとconst

記事内に広告が含まれています。

TypeScriptにおける letconst は変数を宣言するために使用されるキーワードです。

これらは従来の var キーワードに代わるものとして導入されました。letconst にはいくつか重要な特徴があり、より安全で読みやすいコードを書くのに役立ちます。

スポンサーリンク

let

let キーワードは、ブロックスコープのローカル変数を宣言するために使用されます。

ブロックスコープとは、変数が宣言されたブロック(例えば if 文や for ループの内部)内でのみアクセス可能であることを意味します。

これは var が関数スコープであるのと対照的です。var で宣言された変数は関数全体で有効です。

function doSomething() {
    if (true) {
        let a = 5;
    }
    console.log(a);  // Error: 'a' is not defined
}

上記の例では、aif 文のブロック内でのみ存在し、その外部で a にアクセスしようとするとエラーが発生します。

スポンサーリンク

const

const キーワードも let と同様にブロックスコープを持ちますが、const で宣言された変数は、その値を再割り当てすることができません。

つまり、一度値が設定されると、その変数は読み取り専用となります。ただし、const で宣言された変数がオブジェクトや配列の場合、オブジェクト自体のプロパティや配列の要素は変更できます(オブジェクトや配列の参照は変更できないが、内容は変更可能)。

const b = 10;
b = 20;  // Error: Assignment to constant variable.

const obj = { key: 'value' };
obj.key = 'new value';  // This is allowed
obj = {};  // Error: Assignment to constant variable.

letとconstの比較

一般的に、変更される予定のない変数は const を使って宣言することが推奨されています。

これはコードをより予測可能にし、バグを減らす助けになります。変数の値が変更される可能性がある場合にのみ let を使用します。

letconst の使用により、コードの意図が明確になり、変数のスコープを小さく保つことができます。コードの保守性が向上し、意図しないエラーやバグの発生を抑制することができます。

varよりもletとconstが推奨される理由

既に書いたとおりの特徴ですが、TypeScriptでletconstvarの代わりに推奨されているのは、主にスコープと再代入に関する問題を解消するためです。

また、ホイスティングの挙動の違いもあります。

var宣言の変数は、その関数全体で先に存在しているように振る舞います(ホイスティング)。これはコードを読みづらくし、バグの原因となることがあります。

一方で、letconstはホイスティングはされますが、宣言前にアクセスしようとするとエラーが発生します(一時死ゾーン)。これにより、より明確なコーディングが可能です。

スポンサーリンク
TypeScript
著者SNS
タイトルとURLをコピーしました