実装を含まないクラスを作成したい場合、抽象クラスを使います。

書き方は、クラスの前に、『abstract』を追加します。

abstract class Profile {
  name: string
  age: number

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

試しに、Profile クラスを使ってオブジェクトを作ってみます。

const tanaka = new Profile("田中", 23)

image2

エラーが発生し、『抽象クラスのインスタンスは作成できません。』と指摘されました。

抽象クラスは、自分で実装できないので、必ず継承する必要があります。

class ProfileWithAddress extends Profile {
  address: string

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

オブジェクトを作ってみましょう。

const tanaka = new ProfileWithAddress("田中", 23, "埼玉県")

image3

エラーがなくなりました。

ブログ一覧