- クラス内での定数の宣言と初期化:
クラス内で定数を宣言するには、readonly
修飾子を使用します。readonly
修飾子を使用することで、定数の値が一度設定された後に変更できないようになります。
class MyClass {
readonly MY_CONSTANT: string = "Hello, World!";
// 他のクラスメンバーやメソッドと同様に、クラス内で定数を使用できます
myMethod() {
console.log(this.MY_CONSTANT);
}
}
- 定数の外部アクセス:
クラス定数は、クラスの外部からもアクセス可能です。クラス名を使用してアクセスするか、クラスのインスタンスを作成してアクセスすることができます。
console.log(MyClass.MY_CONSTANT); // クラス名を使用してアクセス
const myInstance = new MyClass();
console.log(myInstance.MY_CONSTANT); // インスタンスを作成してアクセス
- クラス定数の値の変更防止:
readonly
修飾子を使用することで、定数の値を変更しようとするとエラーが発生します。
const myInstance = new MyClass();
myInstance.MY_CONSTANT = "New Value"; // エラー: Cannot assign to 'MY_CONSTANT' because it is a read-only property.
- クラス定数の型推論:
TypeScriptは静的型付けを行うため、クラス定数の型を推論することができます。明示的に型を指定しなくても、初期化時の値から型を推論します。
class MyClass {
readonly MY_CONSTANT = "Hello, World!"; // 型推論により、string型として扱われる
}
- クラス定数の共有:
クラス定数は、同じクラスから生成されたインスタンス間で共有されます。つまり、複数のインスタンスが同じ値を持ちます。
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でクラス定数を作成し、活用することができます。クラス定数は、再代入されることのない値や、クラス内で共有される値を表現するために便利です。