返回

Class类–给你敲开TypeScript OOP的大门

前端

类型,一切的起点

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.`);
    }
}

在这个类中,我们定义了两个属性(nameage)和一个方法(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高手!