TypeScriptにおけるprivate修飾子
修飾子privateは、クラスの外部からプロパティやメソッドへのアクセスを制限したい場合に使用します。
この場合、派生クラスであっても、これらのプロパティにアクセスすることはできません。
例を見てみましょう。クラスUserにプライベートプロパティnameを作成します:
class User {
private name: string;
constructor(name: string) {
this.name = name;
}
}
コンストラクタにプロパティの値を渡して、クラスのオブジェクトを作成します:
let user: User = new User('john');
クラスの外部でこのプライベートプロパティを読み取ろうとすると、エラーになります:
console.log(user.name); // エラー
同様に、クラスの外部からこのプロパティに値を書き込もうとしてもエラーになります:
user.name = 'eric'; // エラー
一方、クラスのメソッド内では、プライベートプロパティの値を読み取ったり変更したりすることができます:
class User {
private name: string;
constructor(name: string) {
this.name = name;
}
public getName() {
return this.name; // プロパティを読み取る
}
public setName(name: string) {
this.name = name; // プロパティに新しい値を書き込む
}
}
名前と年齢のプライベートプロパティを持つクラスUserを作成してください。
初期値はコンストラクタを通じて設定されるようにします。
作成したクラスUserに、対応するプライベートプロパティの値を取得できる公開メソッドgetNameとgetAgeを追加してください。
作成したクラスUserに、対応するプライベートプロパティの値を変更できる公開メソッドsetNameとsetAgeを追加してください。