概要: このチュートリアルでは、クラスのプロパティを不変のプロパティとしてマークするために TypeScript の readonly アクセス修飾子を使用する方法について説明します。
TypeScript には readonly 修飾子が用意されており、クラスのプロパティを不変にマークできます。readonly プロパティへの代入は、次の 2 か所のいずれかでしか発生しません
- プロパティ宣言
- 同じクラスのコンストラクタ
プロパティを不変にマークするには、readonly キーワードを使用します。以下の例は、Person クラスに readonly プロパティを宣言する方法を示しています
class Person {
readonly birthDate: Date;
constructor(birthDate: Date) {
this.birthDate = birthDate;
}
}Code language: JavaScript (javascript)この例では、birthdate プロパティは、Person クラスのコンストラクタで初期化される readonly プロパティです。
以下は、birthDate プロパティの再割り当てを試行していますが、エラーになります
let person = new Person(new Date(1990, 12, 25));
person.birthDate = new Date(1991, 12, 25); // Compile errorCode language: JavaScript (javascript)エラー
Cannot assign to 'birthDate' because it is a read-only property.Code language: JavaScript (javascript)他の アクセス修飾子 と同様に、次のようにコンストラクタで readonly プロパティの宣言と初期化を統合できます
class Person {
constructor(readonly birthDate: Date) {
}
}Code language: JavaScript (javascript)readonly と const
以下は、readonly と const の違いを示しています
readonly | const | |
| 用途 | クラスのプロパティ | 変数 |
| 初期化 | 宣言時または同じクラスのコンストラクタ内 | 宣言時 |
概要
readonlyアクセス修飾子を使用して、クラスのプロパティを不変にマークします。readonlyプロパティは、宣言の一部として、または同じクラスのコンストラクタで初期化する必要があります。
このチュートリアルは役に立ちましたか?