返回

超越限制,探索 TypeScript 世界里的类(Class)类型魅力

前端

在 TypeScript 的世界里,类(Class)类型扮演着至关重要的角色,它是构建复杂应用程序和代码组织的重要基石。类类型允许开发者创建自定义数据类型,这些数据类型包含属性(Property)和方法(Method),并可以通过访问控制修饰符进行访问控制。

类(Class)类型的奥秘:

类的基本结构由属性和方法组成,属性表示类的状态,方法表示类的行为。通过实例化类,可以创建该类的对象(Instance),对象可以访问类的属性和方法。

class Person {
  public name: string;
  private age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  public greet() {
    console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
  }
}

上面的代码定义了一个简单的 Person 类,它包含两个属性 nameage,以及一个方法 greet()name 属性是公有的,这意味着它可以在类的任何地方访问,而 age 属性是私有的,只能在类的内部访问。

访问控制修饰符的妙用:

TypeScript提供了三种访问控制修饰符,即 publicprivateprotected,它们控制着类成员的可见性。

  • public 修饰符:表示该成员在类的任何地方以及子类中都是可见的。
  • private 修饰符:表示该成员只能在类的内部访问。
  • protected 修饰符:表示该成员只能在类的内部以及子类中访问。

通过合理使用访问控制修饰符,可以有效控制类的成员可见性,提高代码的安全性。

类层次结构的构建:

TypeScript 支持类层次结构的构建,通过继承(Inheritance)机制,子类可以继承父类的属性和方法,并可以重写父类的方法。

class Employee extends Person {
  private salary: number;

  constructor(name: string, age: number, salary: number) {
    super(name, age);
    this.salary = salary;
  }

  public getSalary() {
    return this.salary;
  }
}

上面的代码定义了一个 Employee 类,它继承了 Person 类,并添加了 salary 属性和 getSalary() 方法。Employee 类可以访问 Person 类的属性和方法,并可以重写 greet() 方法。

多态性的展现:

在 TypeScript 中,多态性是指子类可以重写父类的方法,并且在调用该方法时,会根据实际的对象类型调用相应的方法。

const person = new Person("John Doe", 30);
const employee = new Employee("Jane Doe", 25, 10000);

person.greet(); // Output: "Hello, my name is John Doe and I am 30 years old."
employee.greet(); // Output: "Hello, my name is Jane Doe and I am 25 years old. I earn 10000."

上面的代码展示了多态性的运用,当调用 greet() 方法时,会根据实际的对象类型调用相应的方法。

TypeScript 中的类(Class)类型是面向对象编程的基础,通过理解类的语法结构、修饰符的运用以及类层次结构的构建,可以掌握 TypeScript 的进阶知识,构建更加复杂和可维护的应用程序。