超越限制,探索 TypeScript 世界里的类(Class)类型魅力
2023-09-03 13:30:26
在 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
类,它包含两个属性 name
和 age
,以及一个方法 greet()
。name
属性是公有的,这意味着它可以在类的任何地方访问,而 age
属性是私有的,只能在类的内部访问。
访问控制修饰符的妙用:
TypeScript提供了三种访问控制修饰符,即 public
、private
和 protected
,它们控制着类成员的可见性。
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 的进阶知识,构建更加复杂和可维护的应用程序。