TypeScript(5) 物件屬性的修飾子

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)
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×