新聞中心
在 TypeScript 中,私有屬性是指只能在類的內(nèi)部訪問的屬性,要實(shí)現(xiàn)私有屬性,可以使用以下方法:

目前創(chuàng)新互聯(lián)公司已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、鶴峰網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
1、使用 private 關(guān)鍵字:在類的屬性名前加上 private 關(guān)鍵字,該屬性將成為私有屬性,只能在類的內(nèi)部訪問。
class MyClass {
private myPrivateProperty: string;
constructor() {
this.myPrivateProperty = "Hello, World!";
}
}
在上面的示例中,myPrivateProperty 是一個(gè)私有屬性,只能在 MyClass 類的內(nèi)部訪問。
2、使用私有字段:從 TypeScript 3.8 開始,可以使用私有字段來實(shí)現(xiàn)私有屬性,私有字段以 # 開頭,只能在類的內(nèi)部訪問。
class MyClass {
#myPrivateField: string;
constructor() {
this.#myPrivateField = "Hello, World!";
}
}
在上面的示例中,#myPrivateField 是一個(gè)私有字段,只能在 MyClass 類的內(nèi)部訪問。
3、使用 getter 和 setter:通過定義 getter 和 setter 方法,可以控制對私有屬性的訪問和修改。
class MyClass {
private myPrivateProperty: string;
get myProperty(): string {
return this.myPrivateProperty;
}
set myProperty(value: string) {
this.myPrivateProperty = value;
}
}
在上面的示例中,myPrivateProperty 是一個(gè)私有屬性,通過定義 getter 和 setter 方法,可以在類的外部訪問和修改該屬性。
4、使用符號(Symbol):通過使用 Symbol 類型創(chuàng)建唯一的標(biāo)識符,可以實(shí)現(xiàn)私有屬性,這種方法比較高級,需要一定的理解。
const myPrivateSymbol = Symbol("myPrivateSymbol");
class MyClass {
[myPrivateSymbol]: string;
constructor() {
this[myPrivateSymbol] = "Hello, World!";
}
}
在上面的示例中,myPrivateSymbol 是一個(gè)唯一的標(biāo)識符,用于實(shí)現(xiàn)私有屬性,通過在類中使用方括號語法和 Symbol 類型,可以在類的外部訪問和修改該屬性。
5、使用閉包:通過將私有屬性封裝在一個(gè)函數(shù)或方法中,可以實(shí)現(xiàn)私有屬性的效果,這種方法比較靈活,但需要一定的理解。
function createMyClass() {
let myPrivateProperty: string;
function setMyProperty(value: string) {
myPrivateProperty = value;
}
function getMyProperty(): string {
return myPrivateProperty;
}
return {
setMyProperty,
getMyProperty,
};
}
在上面的示例中,createMyClass 函數(shù)返回一個(gè)對象,該對象包含 setMyProperty 和 getMyProperty 方法,用于訪問和修改私有屬性 myPrivateProperty,這種方法可以通過閉包來保護(hù)私有屬性的訪問權(quán)限。
當(dāng)前標(biāo)題:typescript屬性為私有屬性,只能在類“default”中訪問
文章網(wǎng)址:http://m.fisionsoft.com.cn/article/ccsdgdj.html


咨詢
建站咨詢
