返回

TypeScript进阶:探索类和接口的奥秘

前端

TypeScript中的类

在TypeScript中,类是用于创建对象的模板。类包含了一组属性和方法,这些属性和方法定义了对象的结构和行为。

class Person {
  name: string;
  age: number;

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

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

上面的代码定义了一个名为Person的类。这个类有两个属性,name和age,以及一个名为greet的方法。

要创建Person类的对象,可以使用new。

const person = new Person('John', 30);

上面的代码创建了一个名为person的Person类的对象。我们可以使用person对象来访问类的属性和方法。

console.log(person.name); // John
console.log(person.age); // 30
person.greet(); // Hello, my name is John and I am 30 years old.

TypeScript中的接口

在TypeScript中,接口用于定义类的结构。接口包含了一组属性和方法,这些属性和方法定义了类必须实现的结构。

interface Person {
  name: string;
  age: number;

  greet(): void;
}

上面的代码定义了一个名为Person的接口。这个接口有两个属性,name和age,以及一个名为greet的方法。

类可以实现接口。要实现接口,类必须实现接口中定义的所有属性和方法。

class Person implements Person {
  name: string;
  age: number;

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

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

上面的代码定义了一个名为Person的类,该类实现了Person接口。这意味着Person类必须实现Person接口中定义的所有属性和方法。

TypeScript中的继承

在TypeScript中,继承允许一个类从另一个类继承属性和方法。子类可以继承父类的所有属性和方法,并可以添加自己的属性和方法。

class Employee extends Person {
  salary: number;

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

  getSalary() {
    return this.salary;
  }
}

上面的代码定义了一个名为Employee的类,该类继承了Person类。Employee类继承了Person类的所有属性和方法,并添加了自己的属性salary和方法getSalary。

TypeScript中的抽象

在TypeScript中,抽象允许定义一个类或接口,而无需提供其实现。抽象类或接口只能被其他类继承,不能直接创建对象。

abstract class Shape {
  abstract area(): number;
}

上面的代码定义了一个名为Shape的抽象类。Shape类有一个名为area的抽象方法。抽象方法没有实现,必须由子类来实现。

class Rectangle extends Shape {
  width: number;
  height: number;

  constructor(width: number, height: number) {
    super();
    this.width = width;
    this.height = height;
  }

  area() {
    return this.width * this.height;
  }
}

上面的代码定义了一个名为Rectangle的类,该类继承了Shape类。Rectangle类实现了Shape类的area方法。

TypeScript中的类和接口的应用场景

TypeScript中的类和接口可以应用于各种场景,包括:

  • 创建可重用的组件
  • 定义对象的结构
  • 实现继承和抽象
  • 创建模块化代码
  • 提高代码的可读性和可维护性

结论

在本文中,我们了解了TypeScript中的类和接口。我们学习了如何创建类和接口,如何使用类和接口来创建对象,以及如何使用继承和抽象来创建可重用的组件。我们还了解了TypeScript中的类和接口的应用场景。