前回は、TypeScript の Getter を紹介しました。

今回は、TypeScript の Getter を紹介します。

前回作成したProfileクラスにaddressを追加しました。

class Profile {
  public name: string
  private age: number
  private address: string

  constructor(name: string, age: number, address: string) {
    this.name = name
    this.age = age
    this.address = address
  }
}

let tanaka = new Profile("田中", 23, "埼玉県")

addressのアクセス修飾子はprivateなので、外部から呼び出すことができません。

image2

getterでは呼び出すことができても更新ができません。

更新を行うには、setterを使います。

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

class Profile {
  public name: string
  private age: number
  private _address: string

  constructor(name: string, age: number, address: string) {
    this.name = name
    this.age = age
    this._address = address
  }

  set address(address: string) {
    this._address = address
  }
}

tanaka._addressを確認すると、

image3

privateなので、呼び出しができておりません。

試しに呼び出すためのeditAddressメソッドを作ってみます。

class Profile {
  public name: string
  private age: number
  private _address: string

  constructor(name: string, age: number, address: string) {
    this.name = name
    this.age = age
    this._address = address
  }

  set address(address: string) {
    this._address = address
  }

  editAddress() {
    return this._address
  }
}

では、address の『埼玉県』を『千葉県』にしてみます。

let tanaka = new Profile("田中", 23, "埼玉県")

tanaka.address = "千葉県"

image4

エラーが発生していないようです。

console.log();で確認すると、

console.log(tanaka.editAddress())

image5

『埼玉県』から『千葉県』に更新することができました。

ブログ一覧