TypeScriptのオブジェクト指向プログラミング!ClassとInterfaceの使い方を解説

TypeScriptのオブジェクト指向プログラミング!ClassとInterfaceの使い方を解説

2023.02.22
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!

TypeScriptは、JavaScriptを拡張したオブジェクト指向プログラミング言語です。オブジェクト指向プログラミングを行うためには、classを使用します。本記事では、TypeScriptでclassを使用してオブジェクト指向プログラミングを行う方法を解説します。

Classとは

classとは、オブジェクト指向プログラミングで使用する概念です。classは、オブジェクトの設計図のようなもので、オブジェクトを作成するためのテンプレートとなります。classには、プロパティ(変数)とメソッド(関数)を定義することができます。

TypeScriptでclassを使用する

TypeScriptでclassを使用するには、classキーワードを使用します。classキーワードを使用すると、classを定義することができます。classを定義すると、classの中にプロパティやメソッドを定義することができます。

class MyClass {
  // プロパティ
  public myProperty: string;

  // コンストラクタ
  constructor(myProperty: string) {
    this.myProperty = myProperty;
  }

  // メソッド
  public myMethod(): void {
    console.log(this.myProperty);
  }
}

上記のサンプルコードでは、MyClassというclassを定義しています。MyClassには、プロパティとしてmyPropertyを定義しています。また、コンストラクタとしてmyPropertyを受け取るコンストラクタを定義しています。最後に、myMethodというメソッドを定義しています。

Classを使用したプログラミング

classを使用したプログラミングを行うには、classを定義した後に、classをインスタンス化して使用します。classをインスタンス化するには、newキーワードを使用します。

// インスタンス化
let myClass = new MyClass("Hello World!");

// メソッドの呼び出し
myClass.myMethod();

上記のサンプルコードでは、MyClassをインスタンス化しています。インスタンス化したMyClassのmyMethodメソッドを呼び出しています。

Interfaceを使用したプログラミング

以下のようにインターフェースを使用することで、クラスやオブジェクトの構造を定義し、型をチェックすることができます。また、インターフェースは、複数のクラスで共通する構造を定義することができるため、コードの再利用性を高めることができます。

interface Person {
  name: string;
  age: number;
  greet: () => void;
}

class Student implements Person {
  name: string;
  age: number;
  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }
  greet() {
    console.log(`Hello, I'm ${this.name}. I'm ${this.age} years old.`);
  }
}

let john: Person = new Student('John', 20);
john.greet();

この例では、**Personというインターフェースを定義しています。Personインターフェースには、nameageという2つのプロパティと、greet**というメソッドが含まれています。

次に、**Studentというクラスを定義しています。Studentクラスは、Personインターフェースを実装しており、nameageプロパティを持ち、greet**メソッドを実装しています。

最後に、**johnという変数を宣言して、Studentクラスのインスタンスを代入しています。johnPerson型の変数であるため、greet**メソッドを呼び出すことができます。

まとめ

本記事では、TypeScriptでclassを使用してオブジェクト指向プログラミングを行う方法を解説しました。classを定義すると、プロパティやメソッドを定義することができます。また、classをインスタンス化して使用することで、オブジェクト指向プログラミングを行うことができます。TypeScriptを使用してオブジェクト指向プログラミングを行う際には、本記事を参考にしてください。

サーバーレス開発低コストなAWS開発内製化はお気軽にお問い合わせください。