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

77 阅读2分钟

前言

TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。TypeScript通过TypeScript编译器或Babel转译为JavaScript代码,可运行在任何浏览器,任何操作系统。 TypeScript扩展了JavaScript的语法,所以任何现有的JavaScript程序可以运行在TypeScript环境中。TypeScript是为大型应用的开发而设计,并且可以编译为JavaScript。 

TypeScript类的使用记录

  • 类的定义和声明:
typescript
class Person {
  private name: string;
  constructor(name: string) {
    this.name = name;
  }
  sayHello() {
    console.log(`Hello, my name is ${this.name}.`);
  }
}
  • 属性和方法的定义和访问修饰符:
typescript
复制代码
class Person {
  private name: string;
  protected age: number;
  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }
  sayHello() {
    console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
  }
}
  • 类的继承和多态性:
typescript
复制代码
class Student extends Person {
  private grade: number;
  constructor(name: string, age: number, grade: number) {
    super(name, age);
    this.grade = grade;
  }
  sayHello() {
    console.log(`Hello, my name is ${this.name}, I'm ${this.age} years old, and I'm in grade ${this.grade}.`);
  }
}

TypeScript泛型的分类

一、泛型函数
  • 定义函数时不预设具体类型,使用泛型参数T代替
  • 调用时传入具体类型,T会被自动替换
  • 灵活适用多种类型,也可以添加多个泛型参数 泛型函数可以定义多种类型的参数和返回值,增加灵活性。
二、泛型接口
  • 接口中使用泛型参数定义结构- 实现该接口的类可以传入不同的具体类型
  • 既定义了通用接口结构,又保证了类型安全 泛型接口定义函数和类结构。
三、泛型类
  • 类中可以使用泛型类型定义成员
  • 创建类实例时可以传入具体的类型
  • 不同的实例可作用于不同类型,提高复用性 泛型类可以定义多种类型的成员变量。
四、泛型约束
  • 使用继承和接口约束泛型- 限制泛型的类型范围
  • 既保证灵活性又增加代码安全性
  • 通常将泛型类型约束为具有共同属性的类型 可以用接口和继承来实现对泛型的约束:

总结

​ 通过TypeScript的类和泛型特性,可以在代码中实现更高的灵活性和安全性。类的继承、多态性、抽象类和接口使得代码更加模块化和可复用,而泛型的使用则增加了代码的通用性和可扩展性。通过使用类型约束,我们可以避免运行时错误和类型错误,提高代码的可维护性。因此,在TypeScript中合理地使用类和泛型,并加以类型约束,有助于提高代码的质量和开发效率。