TypeScript 类、泛型的使用实践记录 | 青训营

44 阅读2分钟

引言

在前端开发中,TypeScript在大型项目中越来越常见,这得益于TypeScript的类和泛型的存在,它们的存在让前端开发越来越正规化,标准化,现在我们就来探讨下TypeScript 类、泛型的使用实践记录

TypeScrpit类

在 TypeScript 中,我们可以使用 class 关键字来定义一个类。让我们来看一个简单的例子:

typescript
复制代码
class Animal {
  name: string;

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

  sayHello() {
    console.log(`我是 ${this.name}`);
  }
}

上面的代码定义了一个名为 Animal 的类,它有一个名为 name 的属性和一个名为 sayHello 的方法。构造函数 constructor 用于初始化类的属性。

创建对象

通过类可以创建对象的实例。我们可以使用 new 关键字来创建类的实例,然后访问对象的属性和方法。下面是一个例子:

typescript
复制代码
const cat = new Animal("喵喵");
cat.sayHello(); // 输出:我是喵喵

上面的代码创建了一个名为 catAnimal 类的实例,并调用了它的 sayHello 方法。

类的继承

继承是面向对象编程的一个重要特性,它允许我们创建一个新类,并从现有的类中继承属性和方法。在 TypeScript 中,我们可以使用 extends 关键字来实现继承。

让我们创建一个 Cat 类,它继承自 Animal 类:

typescript
复制代码
class Cat extends Animal {
  // 可以添加 Cat 类特有的属性和方法
}

通过继承,Cat 类继承了 Animal 类的属性和方法,我们还可以在 Cat 类中添加特定于猫的属性和方法。

泛型

泛型是一种在代码中使用类型参数的方式,它增强了代码的灵活性和重用性。在 TypeScript 中,我们可以使用泛型来创建泛型类。

让我们来看一个简单的例子,实现一个泛型的堆栈类:

typescript
复制代码
class Stack<T> {
  private items: T[] = [];

  push(item: T) {
    this.items.push(item);
  }

  pop(): T {
    return this.items.pop();
  }
}

上面的代码中,Stack 类使用了类型参数 T,用于表示堆栈中的元素类型。这样,我们可以在使用 Stack 类时指定元素的具体类型。