TypeScriptでのクラス定数の作成方法と利用法


  1. クラス内での定数の宣言と初期化:

クラス内で定数を宣言するには、readonly修飾子を使用します。readonly修飾子を使用することで、定数の値が一度設定された後に変更できないようになります。

class MyClass {
  readonly MY_CONSTANT: string = "Hello, World!";
  // 他のクラスメンバーやメソッドと同様に、クラス内で定数を使用できます
  myMethod() {
    console.log(this.MY_CONSTANT);
  }
}
  1. 定数の外部アクセス:

クラス定数は、クラスの外部からもアクセス可能です。クラス名を使用してアクセスするか、クラスのインスタンスを作成してアクセスすることができます。

console.log(MyClass.MY_CONSTANT); // クラス名を使用してアクセス
const myInstance = new MyClass();
console.log(myInstance.MY_CONSTANT); // インスタンスを作成してアクセス
  1. クラス定数の値の変更防止:

readonly修飾子を使用することで、定数の値を変更しようとするとエラーが発生します。

const myInstance = new MyClass();
myInstance.MY_CONSTANT = "New Value"; // エラー: Cannot assign to 'MY_CONSTANT' because it is a read-only property.
  1. クラス定数の型推論:

TypeScriptは静的型付けを行うため、クラス定数の型を推論することができます。明示的に型を指定しなくても、初期化時の値から型を推論します。

class MyClass {
  readonly MY_CONSTANT = "Hello, World!"; // 型推論により、string型として扱われる
}
  1. クラス定数の共有:

クラス定数は、同じクラスから生成されたインスタンス間で共有されます。つまり、複数のインスタンスが同じ値を持ちます。

const instance1 = new MyClass();
const instance2 = new MyClass();
console.log(instance1.MY_CONSTANT); // "Hello, World!"
console.log(instance2.MY_CONSTANT); // "Hello, World!"
instance1.MY_CONSTANT = "New Value";
console.log(instance1.MY_CONSTANT); // "New Value"
console.log(instance2.MY_CONSTANT); // "New Value"

これらの方法を使用して、TypeScriptでクラス定数を作成し、活用することができます。クラス定数は、再代入されることのない値や、クラス内で共有される値を表現するために便利です。