フリーランス 技術調査ブログ

フリーランス/エンジニア Ruby Python Nodejs Vuejs React Dockerなどの調査技術調査の備忘録

TypeScriptのClass ①

オブジェクト指向プログラミング(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才です