在 TypeScript 中,类是面向对象编程的基础,它允许你创建具有属性和方法的对象。以下是 TypeScript 类的基本概念和用法:

1. 类的基本语法:
   使用 class 关键字来定义一个类,类可以包含属性(成员变量)和方法(成员函数)。
   class Person {
       // 属性
       firstName: string;
       lastName: string;

       // 构造函数
       constructor(firstName: string, lastName: string) {
           this.firstName = firstName;
           this.lastName = lastName;
       }

       // 方法
       getFullName(): string {
           return `${this.firstName} ${this.lastName}`;
       }
   }

   // 创建类的实例
   let person = new Person("John", "Doe");
   console.log(person.getFullName()); // 输出: John Doe

2. 访问修饰符:
   TypeScript 提供了 public、private 和 protected 三种访问修饰符,用于控制类的成员的访问权限。
   class BankAccount {
       private balance: number;

       constructor(initialBalance: number) {
           this.balance = initialBalance;
       }

       deposit(amount: number): void {
           this.balance += amount;
       }

       withdraw(amount: number): void {
           if (amount <= this.balance) {
               this.balance -= amount;
           } else {
               console.log("Insufficient funds");
           }
       }
   }

   let account = new BankAccount(1000);
   account.deposit(500);
   account.withdraw(200);
   // account.balance; // 错误,balance 是私有属性,不能在外部访问

3. 继承:
   类可以通过 extends 关键字来继承另一个类的属性和方法。
   class Student extends Person {
       studentId: number;

       constructor(firstName: string, lastName: string, studentId: number) {
           super(firstName, lastName); // 调用父类的构造函数
           this.studentId = studentId;
       }
   }

   let student = new Student("Alice", "Johnson", 12345);
   console.log(student.getFullName()); // 通过继承获得父类的方法

4. 抽象类:
   使用 abstract 关键字定义抽象类,抽象类不能被实例化,通常用于定义其他类的基类。
   abstract class Shape {
       abstract calculateArea(): number;
   }

   class Circle extends Shape {
       radius: number;

       constructor(radius: number) {
           super();
           this.radius = radius;
       }

       calculateArea(): number {
           return Math.PI * this.radius ** 2;
       }
   }

5. 接口实现:
   一个类可以实现一个或多个接口,通过 implements 关键字。
   interface Printable {
       print(): void;
   }

   class Document implements Printable {
       print(): void {
           console.log("Document is being printed");
       }
   }

这些是 TypeScript 中类的一些基本概念。类提供了一种结构化的方式来组织代码,使其更具可维护性和可扩展性。类的特性,如继承和多态,有助于更好地组织和抽象代码,使其更符合面向对象编程的原则。


转载请注明出处:http://www.zyzy.cn/article/detail/4696/TypeScript