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

63 阅读2分钟

当涉及到实际的使用场景时,TypeScript的类和泛型可以发挥出强大的作用。下面是两个例子:

  1. 类的使用示例 - 电子商务网站的商品管理:
typescriptCopy Code
class Product {
  private id: number;
  private name: string;
  private price: number;

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

  displayDetails() {
    console.log(`ID: ${this.id}, Name: ${this.name}, Price: ${this.price}`);
  }
}

const product1 = new Product(1, "iPhone", 999);
const product2 = new Product(2, "Headphones", 99);

product1.displayDetails();
product2.displayDetails();

使用class关键字来定义一个类,可以包含属性和方法,使用constructor方法来初始化类的实例,可以使用publicprivateprotected来控制属性和方法的访问权限。在这个示例中,Product类表示一个商品,具有idnameprice等属性,以及displayDetails方法用于显示商品的详细信息,也使用private表示私人信息权限。

通过使用类,我们可以方便地封装相关数据和行为,并将其组织成逻辑上的单元。这样做可以增加可读性、可维护性和重用性,同时也提供了更好的代码组织结构。

  1. 泛型的使用示例 - 容器类的通用性:
typescriptCopy Code
class Container<T> {
  private items: T[] = [];

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

  getItems(): T[] {
    return this.items;
  }
}

const numberContainer = new Container<number>();
numberContainer.addItem(1);
numberContainer.addItem(2);
const numbers = numberContainer.getItems();
console.log(numbers); // 输出: [1, 2]

const stringContainer = new Container<string>();
stringContainer.addItem("Hello");
stringContainer.addItem("World");
const strings = stringContainer.getItems();
console.log(strings); // 输出: ["Hello", "World"]

在这个示例中,Container类是一个通用的容器,可以存储任意类型的数据。通过使用泛型参数T,我们可以在编译时指定容器中存储的数据类型,并且保持类型安全。这种使用方式使得我们可以编写通用的代码,减少了重复的工作量。无论是存储数字、字符串还是其他类型的数据,我们都可以使用相同的Container类,只需简单地更改存储的数据类型。

这只是类和泛型在TypeScript中的一些基本用法,你可以根据具体的需求和场景,灵活运用它们来提高代码的可重用性和灵活性。

总结来说,TypeScript的类和泛型提供了强大的工具,可以使我们的代码更加模块化、可读性更强、可维护性更高。类和泛型的使用可以帮助我们构建可扩展和可复用的代码,并提高开发效率。