JavaScriptからTypeScriptのClassで追加された機能は

・修飾子が使えるようになった事

修飾子

修飾子を使う事でアクセス出来る範囲を制限する事が出来ます。

またconstructor内で引数に、修飾子を使う事でthis.○○ = ○○という初期化の処理を省略する事が出来ます。

1.public

どこからでも呼び出して使える。デフォルトではコレ

2.private

内側から出ないと呼び出せない。

3.protected

継承先でなら呼び出すことができる。

4.readonly

書き換え出来ないようにする

1.publicとprivateを使ってPersonクラスを作ってみる。

class Person {
	// constructor内で修飾子を付けてnameとprivateを取る。
	constructor(public: name , private: age) {
	// constructor内の記述が省略できる
	}

// メソッド 修飾子を書いてないのでpublic
	incrementAge() {
        this.age++;
				console.log(`I am ${this.age} years old`);
    }
	
	greeting() {
		console.log(`Hello! My name is ${this.name} I am ${this.age} years old`);	
	}
}

const mobA = new Person("Tani" , 35); // new演算子を使って、インスタンスを作成
console.log(mobA); // Person {name: 'Tani', age: 35}
mobA.greeting(); // Hello! My name is Tani 

console.log(mobA.name); // "Tani" publicなので外からでもアクセス出来る
console.log(mobA.age); // Error privateなので内からしかアクセス出来ない
mobA.incrementAge(); // "I am 36 years old"; 内からageにアクセスして+1して

getterとsetter

同じメソッド名にする事ができる