TypeScript 類訪問修飾符
關於類的基本用法,可以參閱TypeScript class 類介紹一章節。
下面分別介紹一下類的訪問修飾符:
一.public訪問修飾符:
在TypeScript中,成員都預設為public(在C#等語言則需要顯式的規定);可以省略。
程式碼例項如下:
[typescript] 純文字檢視 複製程式碼class Antzone { public webName: string; public constructor(webName: string) { this.webName = webName; } public show(age: number) { console.log(`${this.webName} 成立 ${age}年了.`); } } let antzone=new Antzone("螞蟻部落"); antzone.show(4);
使用public修飾的成員,可以在類的內外自由訪問。
二.private修飾符:
當成員被標記成private時,就不能在宣告它的類的外部訪問。
程式碼例項如下:
[typescript] 純文字檢視 複製程式碼class Antzone { private webName: string; public constructor(webName: string) { this.webName = webName; } public show(age: number) { console.log(`${this.webName} 成立 ${age}年了.`); } } let antzone=new Antzone("螞蟻部落"); antzone.webName;
由於webName是私有型別,所以會報錯,截圖如下:
三.protected訪問修飾符:
protected與private行為相似,但有一點不同,protected成員在派生類中可以訪問。
程式碼例項如下:
[typescript] 純文字檢視 複製程式碼class Person { protected name: string; constructor(name: string) { this.name = name; } } class Employee extends Person { private department: string; constructor(name: string, department: string) { super(name) this.department = department; } public getElevatorPitch() { return `Hello, my name is ${this.name} and I work in ${this.department}.`; } } let howard = new Employee("Howard", "Sales"); console.log(howard.getElevatorPitch()); console.log(howard.name);
由於父類中的name訪問修飾符是protected,所以可以在它的派生類中訪問:
[typescript] 純文字檢視 複製程式碼public getElevatorPitch() { return `Hello, my name is ${this.name} and I work in ${this.department}.`; }
所以上面的程式碼是正確的,但是不能夠在類的外部訪問:
[typescript] 純文字檢視 複製程式碼console.log(howard.name)
所以上面的程式碼會報錯,截圖如下:
四.readonly修飾符:
使用readonly關鍵字將屬性設定為只讀的。
只讀屬性必須在宣告時或建構函式裡被初始化,程式碼例項如下:
[typescript] 純文字檢視 複製程式碼class Antzone { readonly webName: string; public constructor(webName: string) { this.webName = webName; } public show(age: number) { console.log(`${this.webName} 成立 ${age}年了.`); } } let antzone=new Antzone("螞蟻部落"); antzone.webName="螞蟻奮鬥";
由於webName是隻讀的,所以在非宣告或者建構函式裡給它賦值會報錯。
相關文章
- TypeScript入門2:類、繼承、訪問修飾符TypeScript繼承
- 訪問修飾符
- Java的訪問修飾符Java
- Java的“友好的”訪問指示符(修飾符)Java
- c#封裝、訪問修飾符C#封裝
- c#之訪問修飾符internalC#
- C++學習——訪問修飾符C++
- C#基礎訪問修飾符概述C#
- 關於Java中各種修飾符與訪問修飾符的說明 (轉)Java
- PLC結構化文字(ST)——訪問修飾符
- Java入門系列之訪問修飾符作用範圍Java
- #Java教程:訪問修飾符:public、protected、預設、private @FDDLCJava
- Java 訪問許可權修飾符學習筆記Java訪問許可權筆記
- Vue - 按鍵修飾符 && 系統修飾符Vue
- Java入門筆記(六)——訪問許可權修飾符Java筆記訪問許可權
- Java 修飾符順序問題Java 修飾符
- java static修飾符的問題Java
- Java 修飾符Java 修飾符
- java修飾符Java
- vue 事件修飾符Vue事件
- vue sync 修飾符Vue
- 繼承&修飾符繼承
- iOS __block修飾符iOSBloC
- Java 常用修飾符Java
- Java 類與物件(繼承extends super關鍵詞 方法重寫 抽象abstract 訪問修飾符/許可權控制符)Java物件繼承抽象
- java中的修飾符Java
- Java的static修飾符Java
- 許可權修飾符
- 如何獲取java類中的欄位修飾符?Java
- Vue事件修飾符詳解Vue事件
- java修飾符使用指南Java
- 物件與引用,static關鍵字,程式碼塊,包,訪問許可權修飾符物件訪問許可權
- 內部類,類修飾符,上轉型物件,多型,介面回撥物件多型
- v-on 及其事件修飾符事件
- 從實踐認識修飾符
- Kotlin可見性修飾符Kotlin
- java oop 修飾符&關鍵字JavaOOP
- 正規表示式模式修飾符模式