JavaScriptからTypeScriptのClassで追加された機能は
・修飾子が使えるようになった事
修飾子を使う事でアクセス出来る範囲を制限する事が出来ます。
またconstructor内で引数に、修飾子を使う事でthis.○○ = ○○という初期化の処理を省略する事が出来ます。
どこからでも呼び出して使える。デフォルトではコレ
内側から出ないと呼び出せない。
継承先でなら呼び出すことができる。
書き換え出来ないようにする
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して
同じメソッド名にする事ができる