Typescript 跟一般 OOP 的語言寫法相似,所以講到物件一定少不了一些物件的基本觀念,修飾子是用來規定物件屬性(或稱成員) 存取權限的關鍵字,大致有以下三種:
- public 公有屬性,可以被自由存取的屬性
- private 私有屬性,只限於該屬性所屬的類別內可以存取
- protected 受保護屬性,除了該屬性所屬類別,該類別之子類別(繼承該類別的類別)內也能存取。
修飾子使用方式
Typescript 裡面,沒有加上修飾子的屬性,預設都會被認為是public,如果想要加上其他修飾子的話,只要在變數宣告前面加上修飾子就可以了:
class Person {
private name: string;
constructor(name: string) { this.name = name; }
}
Getter / Setter
我們可以透過 getter 以及 setter 來當作統一出入口,來對無法直接存取的私有變數進行操作, getter 及 setter 跟 JS ES6 的使用方式相同。
class Person {
protected name: string;
constructor(name: string) { this.name = name; }
}
class Employee extends Person {
constructor(name:string){
super(name) //把 name 傳給父類別的建構子
}
get nameGetter():string{
return this.name
}
set nameSetter(value){
this.name = value
}
}
let Jack = new Employee('Jack')
console.log(Jack)