クラスとインスタンス
TypeScriptでは、JavaScriptのクラス構文をベースに、型注釈やアクセス修飾子、抽象クラスといった静的型付けの機能を活用しながら、オブジェクト指向プログラミング(OOP)を行うことができます。
✅ 基本構文
以下は、「ユーザー」を管理するためのクラスのサンプルです。
名前という共通のプロパティを持ち、greet
メソッドを呼び出すことで、ユーザーごとに異なる処理(=挨拶)を実行できます。
class User {
name: string;
constructor(name: string) {
this.name = name;
}
greet() {
console.log(`Hello, I'm ${this.name}`);
}
}
const userA = new User("Alice"); // ← インスタンス生成
userA.greet(); // Hello, I'm Alice
const userB = new User("Taro"); // ← インスタンス生成
userB.greet(); // Hello, I'm Taro
🔍 用語解説
class
:クラス(設計図)の定義constructor
:インスタンス生成時に呼ばれる特別な初期化関数this
:インスタンス自身を指すキーワードnew
:クラスからインスタンスを生成する演算子
💡 インスタンスを生成するとは?
クラス(=設計図)から、具体的なオブジェクト(モノ)を作ることを「インスタンスを生成する」と言います。
const user = new User("Alice"); // ← これがインスタンス生成
この時、new
を使って User
クラスの constructor
が呼び出され、
this.name
に "Alice"
が代入された User
オブジェクトが作られます。
🧱 constructor(コンストラクタ)とは?
constructor(name: string) {
this.name = name;
}
- クラスからインスタンスを作るときに自動的に実行される関数
- 初期値の代入や準備処理を記述できる
- 複数の引数を受け取ることも可能
TypeScriptでは、コンストラクタにも型注釈を追加できるため、より安全で明確な設計が可能です。