Typescriptのclassの使い方とアクセスアクセス修飾子(public/private/protected)について解説

typescript class

Classとは

typescriptは ES6から導入されたclassキーワードを完璧にサポートします。
new演算子を利用してinstanceして使われます。

readonly

readonlyを使用すればnameを読み込み専用に作りますので修正・削除するのが不可能です。

class People {
	readonly name: string;
  age: number;
	constructor(readonly n: string, age: number) {
		this.name = n;
    this.age = age;
  }
}

let kobayashi = new People('kobayashi', 30);
kobayashi.age = 20; // ok
kobayashi.name = 'jinyoung'; // error

アクセス修飾子(public/private/protected)

typescriptではアクセス修飾子があります。
public: 外部から使われる変数です。
private: 自分のClass内のみアクセス可能 protected: 継承されたクラス内でアクセス可能(継承extendsを使います。) 下記のようにmember variableを書かなくてもconstructorに書くとmember variableとして使われます。

class People {
//	name: string;
//  age: number;
	constructor(protected name: string,public age: number) {}
}

class SoccerPeople extends People {
  constructor(name: string, age: number, private speed: number) {
		super(name, age);
	}
}

let kobayashi = new SoccerPeople('kobayashi', 30, 15);
kobayashi.age = 20; // ok
kobayashi.name = 'jinyoung'; // error
kobayashi.speed = 20; // error