オブジェクト指向プログラミング(OOP)
- 現実世界の物に見立ててプログラミングする
- 実装者にとってわかりやすくロジックを分割する
Class
- オブジェクトの設計図
- Classから生成されたオブジェクトはインスタンスと呼ぶ
- typescriptではClassも型になる
ex)
// Classメソッド greeting(this: { name: string }) { console.log(`Hello! My name is ${this.name}`) }
- 下記のようにメソッドにclassを型として指定すると厳格なチェックが行える
greeting(this: Person) { console.log(`Hello! My name is ${this.name}`) }
- 初期化の処理を省略する
ex)
name: string; // privateが指定された変数はClassの外からアクセスできない private age: number; // Class初期化時に実行される constructor(initName: string, initAge: number) { this.name = initName this.age = initAge }
- 下記のようにconstructorを記述することで初期化をスマートに記述することができる
Classサンプル
class Person { constructor(public name: string, private age: number) { } incrmentAge() { this.age += 1 } // Classメソッド //greeting(this: { name: string }) { greeting(this: Person) { console.log(`こんんちは、わたしのなまえは ${this.name}. ${this.age}才です `) } } const taro = new Person('Yamada Taro', 42) taro.incrmentAge() taro.greeting()
実行結果
# tsc # node class.js こんんちは、わたしのなまえは Yamada Taro. 43才です