(二)typescript中class类
创始人
2024-11-14 21:34:45
0

在 TypeScript 中,你可以使用类(class)来更加精确地定义属性和方法的访问控制。这些包括静态属性/方法、私有属性/方法、公共属性/方法、保护属性/方法,以及继承。下面通过示例来展示这些概念在 TypeScript 中的使用。

1. 静态属性和方法

静态属性和方法属于类本身而不是类的实例。这意味着你可以在不实例化类的情况下直接访问它们。

class MyClass {   static staticProperty: string = "class level property"; // 静态属性   static staticMethod(): string { // 静态方法     return 'I am a static method';   } }  console.log(MyClass.staticProperty); // 访问静态属性 console.log(MyClass.staticMethod()); // 调用静态方法 

2. 私有属性和方法

私有属性和方法只能在类的内部访问,不允许从外部或任何子类中访问。

class Example {   private privateProperty: string = "I am private"; // 私有属性    private privateMethod(): string { // 私有方法     return 'This is a private method';   }    public getPrivateMethod(): string {     return this.privateMethod(); // 内部访问私有方法   } }  const obj = new Example(); console.log(obj.getPrivateMethod()); // 正确访问 // console.log(obj.privateMethod()); // 错误,外部不能访问私有方法 // console.log(obj.privateProperty); // 错误,外部不能访问私有属性 

3. 公共属性和方法

公共属性和方法是默认的访问级别,在 TypeScript 中不必显式声明为 public,它们可以从类的内部、实例以及子类中自由访问。

class PublicExample {   public publicProperty: string = "I am public"; // 公共属性    public publicMethod(): string { // 公共方法     return 'This is a public method';   } }  const example = new PublicExample(); console.log(example.publicProperty); // 访问公共属性 console.log(example.publicMethod()); // 调用公共方法 

4. 保护属性和方法

保护属性和方法可以在类及其子类中访问,但不能从类的外部访问。

class ProtectedExample {   protected protectedProperty: string = "I am protected"; // 保护属性    protected protectedMethod(): string { // 保护方法     return 'This is a protected method';   } }  class ChildExample extends ProtectedExample {   useProtectedMethod(): string {     return this.protectedMethod(); // 子类访问保护方法   } }  const child = new ChildExample(); console.log(child.useProtectedMethod()); // 正确访问 // console.log(child.protectedMethod()); // 错误,外部不能访问保护方法 

5. 继承

继承允许一个类从另一个类接收属性和方法,这是重用代码的有效方式。

class Parent {   public parentMethod(): string {     return 'Method from Parent';   } }  class Child extends Parent {   public childMethod(): string {     return 'Method from Child';   } }  const childInstance = new Child(); console.log(childInstance.parentMethod()); // 子类实例访问继承的方法 console.log(childInstance.childMethod()); // 子类实例访问自己的方法 

通过上述示例,你可以看到在 TypeScript 中如何利用类的特性来进行更细粒度的访问控制。这有助于构建更安全、可维护和模块化的大型应用程序。

相关内容

热门资讯

绝活儿辅助!广西老友玩老是输怎... 绝活儿辅助!广西老友玩老是输怎么办(辅助挂)都是真的有辅助app(讲解有挂)在进入广西老友玩老是输怎...
法门辅助!福建13水插件(辅助... 法门辅助!福建13水插件(辅助挂)一贯是有辅助技巧(有挂技术)1、许多玩家不知道福建13水插件辅助怎...
办法辅助!潮友会app下载官方... 办法辅助!潮友会app下载官方辅助器(辅助挂)真是真的是有辅助app(有挂教程)该软件可以轻松地帮助...
妙招辅助!邯郸胡乐挂辅助(辅助... 妙招辅助!邯郸胡乐挂辅助(辅助挂)好像存在有辅助插件(有挂方略)1、上手简单,内置详细流程视频教学,...
教程书辅助!乐酷辅助(辅助挂)... 教程书辅助!乐酷辅助(辅助挂)其实存在有辅助脚本(有挂细节)乐酷辅助能透视中分为三种模型:乐酷辅助模...
学习辅助!决战卡五星辅助(辅助... 学习辅助!决战卡五星辅助(辅助挂)本来真的是有辅助软件(有人有挂)学习辅助!决战卡五星辅助(辅助挂)...
绝活辅助!边锋嘉兴麻将辅助器(... 绝活辅助!边锋嘉兴麻将辅助器(辅助挂)真是真的有辅助神器(新版有挂)1、边锋嘉兴麻将辅助器公共底牌简...
举措辅助!枫叶辅助器(辅助挂)... 举措辅助!枫叶辅助器(辅助挂)本来存在有辅助技巧(竟然有挂)1、下载好枫叶辅助器正确养号方法之后点击...
讲义辅助!点我达辅助(辅助挂)... 讲义辅助!点我达辅助(辅助挂)一直存在有辅助技巧(有人有挂)1、点我达辅助辅助器安装包、点我达辅助辅...
模块辅助!威信茶馆有挂的吗(辅... 模块辅助!威信茶馆有挂的吗(辅助挂)一直真的是有辅助脚本(揭秘有挂)1、玩家可以在威信茶馆有挂的吗线...