【TypeScript】Getterとは何ですか?
TypeScript

【TypeScript】Getterとは何ですか?

作成日:2021年08月13日
更新日:2021年08月13日

次のProfileクラスがあったとします。

ts
class Profile {
public name: string;
private age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
}

Profileクラスを使ってみます。

ts
let tanaka = new Profile("田中", 23);
tanaka.name;
tanaka.age;

image2

namepublicなので呼び出しができるのですが、ageprivateなので呼び出しができません。

ageを外部から呼び出し可能にするには、getter を使います。

方法は、Profile クラス内に getter メソッドを作成します。

ts
class Profile {
public name: string;
private age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
get age(): number {
return this.age;
}
}

このままでは、age()に『識別子 'age' が重複しています。』のエラーが発生しています。

image3

こちらのエラーを解除するために、変数の前にアンダースコア『_』をつけます。

ts
class Profile {
public name: string;
private _age: number;
constructor(name: string, age: number) {
this.name = name;
this._age = age;
}
get age(): number {
return this.age;
}
}

image4

エラーが解除されました。

tanaka.age も見てみます。

image5

無事、呼び出せています。

また、tanaka.name を『佐藤』、tanaka.age を『25』に代入してみましょう。

ts
tanaka.name = "佐藤";
tanaka.age = 25;

image6

tanaka.name は代入できましたが、tanaka.age は読み取り専用プロパティなので代入できませんでした。

つまり getter は、呼び出すためのメソッドということです。

© 2024あずきぱんウェブスタジオ