概要: このチュートリアルでは、クラスのプロパティを不変のプロパティとしてマークするために 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 error
Code 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
プロパティは、宣言の一部として、または同じクラスのコンストラクタで初期化する必要があります。
このチュートリアルは役に立ちましたか?