こんにちは!
TypeScriptは、JavaScriptを拡張したオブジェクト指向プログラミング言語です。オブジェクト指向プログラミングを行うためには、classを使用します。本記事では、TypeScriptでclassを使用してオブジェクト指向プログラミングを行う方法を解説します。
classとは、オブジェクト指向プログラミングで使用する概念です。classは、オブジェクトの設計図のようなもので、オブジェクトを作成するためのテンプレートとなります。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をインスタンス化するには、newキーワードを使用します。
// インスタンス化
let myClass = new MyClass("Hello World!");
// メソッドの呼び出し
myClass.myMethod();
上記のサンプルコードでは、MyClassをインスタンス化しています。インスタンス化したMyClassのmyMethodメソッドを呼び出しています。
以下のようにインターフェースを使用することで、クラスやオブジェクトの構造を定義し、型をチェックすることができます。また、インターフェースは、複数のクラスで共通する構造を定義することができるため、コードの再利用性を高めることができます。
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
インターフェースには、name
とage
という2つのプロパティと、greet
**というメソッドが含まれています。
次に、**Student
というクラスを定義しています。Student
クラスは、Person
インターフェースを実装しており、name
とage
プロパティを持ち、greet
**メソッドを実装しています。
最後に、**john
という変数を宣言して、Student
クラスのインスタンスを代入しています。john
はPerson
型の変数であるため、greet
**メソッドを呼び出すことができます。
本記事では、TypeScriptでclassを使用してオブジェクト指向プログラミングを行う方法を解説しました。classを定義すると、プロパティやメソッドを定義することができます。また、classをインスタンス化して使用することで、オブジェクト指向プログラミングを行うことができます。TypeScriptを使用してオブジェクト指向プログラミングを行う際には、本記事を参考にしてください。
サーバーレス開発、低コストなAWS開発内製化はお気軽にお問い合わせください。
スモールスタート開発支援、サーバーレス・NoSQLのことなら
ラーゲイトまでご相談ください
低コスト、サーバーレスの
モダナイズ開発をご検討なら
下請け対応可能
Sler企業様からの依頼も歓迎