返回
Class类–给你敲开TypeScript OOP的大门
前端
2023-10-18 02:55:06
类型,一切的起点
TypeScript中的一切事物都是由类型组成的,最基本的数据类型包括:
- string :文本字符串
- number :数字
- boolean :布尔值(true或false)
此外,TypeScript还支持更复杂的数据类型,比如:
- Array :数组(一个有序的数据列表)
- Object :对象(一个包含键值对的数据结构)
- Function :函数(一段可以被调用的代码块)
Class类,对象工厂
Class类在TypeScript中扮演着重要角色,它就像一个蓝图,规定了对象应该具备哪些属性和行为。
定义Class类
定义一个名为Person
的类:
class Person {
// 属性
name: string;
age: number;
// 方法
greet() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
在这个类中,我们定义了两个属性(name
和age
)和一个方法(greet()
)。
创建对象
使用Person
类可以创建对象:
const person1 = new Person();
person1.name = "John";
person1.age = 30;
person1.greet(); // 输出: "Hello, my name is John and I am 30 years old."
通过这种方式,我们可以创建多个具有相同属性和行为的对象。
Class类继承与多态
继承是TypeScript中另一个重要的概念。它允许你创建一个新的类,该类具有另一个类的所有属性和行为,同时还可以添加自己的新属性和行为。
定义子类
例如,我们可以创建一个Student
类,它继承自Person
类:
class Student extends Person {
// 属性
school: string;
// 方法
study() {
console.log("I am studying.");
}
}
在这个子类中,我们添加了一个新的属性(school
)和一个新的方法(study()
)。
多态性
多态性是指子类对象可以像父类对象一样被使用。这意味着,如果我们有一个父类类型的变量,我们可以将子类对象赋值给它,并仍然可以调用父类的方法。
const person: Person = new Student();
person.greet(); // 输出: "Hello, my name is John and I am 30 years old."
person.study(); // 错误: "Property 'study' does not exist on type 'Person'."
在上面的示例中,我们创建了一个Person
类型的变量person
,并将一个Student
对象赋值给了它。然后,我们调用greet()
方法,它正常工作。但是,当我们调用study()
方法时,就会出现错误,因为Person
类没有这个方法。
结语
Class类是TypeScript中面向对象编程的基础。通过理解类、对象、OOP三要素,掌握封装、继承、多态三大特性,我们就能构建出更加灵活、易于维护的应用程序。
如果你想成为TypeScript高手,那么Class类是一个你必须掌握的概念。所以,让我们一起学习,一起进步,一起成为TypeScript高手!